7

私の React アプリは、GraphQL API、Storage、Auth、Functions、Hosting - すべての楽しいもの - を使用しているため、aws-exports.jsファイルを利用できる必要があります。Amplify Backend リソースを使用して React フロント エンドを増幅します。

レポは基本的に次のように設定されます。

package.json
src/
   - aws-exports.js
   - app.js
   - ...etc

各ディレクトリで実行するとls、ビルド時にaws-exports.jsファイルが生成されていないことが示されました。

多くの異なる構成で、私は次のように遭遇しました:

[INFO]: # Executing command: yarn run build
[INFO]: yarn run v1.16.0
[INFO]: $ react-scripts build
[INFO]: Creating an optimized production build...
[INFO]: Failed to compile.
[INFO]: ./src/App.js
                                 Cannot find file './aws-exports' in './src'.
2020-04-30T00:52:34.883Z [WARNING]: error Command failed with exit code 1.

これは、チェックインしており、Web コンソールでamplify.yml構成している場合も同様です。.yml

私は試してみましamplify push;たが、期待どおりに会いました

An error occured during the push operation: Current environment cannot be determined
Use 'amplify init' in the root of your app directory to initialize your project with Amplify

またしようとしている:amplify pull;またはExecuting command: amplify pull --appId abc123abc123 --envName dev

 # Starting phase: preBuild
# Executing command: amplify pull
For more information on AWS Profiles, see: https://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html
? Do you want to use an AWS profile? (Y/n)
.[43D.[43C

ハングして入力を期待するだけです。このように手動でクレジットを入力することは、これを行うためのすべての方法だとは思いません。

aws-exports.jsすべてのバックエンド統合を考慮すると、増幅はこの世代自体を処理する必要があるようです。ls違う時。これに関しては、非常に最新の質問がたくさんありますが、本当の答えはありません. 御時間ありがとうございます

4

6 に答える 6

5

私の解決策は、「npm run build」ステップの前にスクリプトを介して単純に aws-exports.js を生成することでした。

aws-exports.js のコンテンツを「secretfile」という環境変数に保存し、次のようにamplify.yml 内で使用します。

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - echo $secretfile > ./src/aws-exports.js
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

理由:

  1. aws-exports.js をリポジトリにコミットすることは、API キーやその他のシークレットが含まれているため、もちろん大したことではありません。
  2. 毎回バックエンドのビルドを開始したくもありませんでした。バックエンドの構築は、ビルドごとにバックエンド用の新しいスタックを作成するため、非生産的です。これにより、より多くの費用がかかり、処理がさらに遅くなり、エラーが発生しやすくなります。

ありがとう。

于 2020-09-23T08:53:34.137 に答える
3

ここにたどり着いた人のために、Amplify コンソールは、ビルド時に aws-exports ファイルを自動生成できる方法をリリースしたばかりで、フルスタック CI/CD を有効にして Git リポジトリ ( https://docs.aws.amazon) にチェックインする必要はありません。 com/amplify/latest/userguide/amplify-config-autogeneration.html

于 2021-07-06T16:53:03.493 に答える