web-dev-qa-db-ja.com

`ng serve`で環境を設定する方法 Angular 6

Angular 5.2アプリをAngularに更新しようとしています6. Angular更新ガイドの指示(angular-cliからv6への更新を含む)に従ったところ、問題ありません。経由でアプリを提供

ng serve --env=local

しかし、これは私にエラーを与えます:

未知のオプション: '--env'

私は複数の環境(dev/local/prod)を使用していますが、これがAngular 5.2で機能していた方法です。 Angular 6で環境を設定するにはどうすればいいですか?

105
Martin Adámek

新しいconfigurationオプションを使用する必要があります(これはng buildおよびng serveにも機能します)

ng serve --configuration=local

または

ng serve -c local

angular.jsonファイルを見ると、各構成(aot、オプティマイザー、環境ファイルなど)の設定をより細かく制御できることがわかります。

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": true,
    "vendorChunk": false,
    "buildOptimizer": true,
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
      }
    ]
  }
}

詳細情報を取得できます こちら 環境固有の設定を管理します。

以下の他の応答で指摘したように、新しい「環境」を追加する必要がある場合は、buildタスクに新しい構成を追加する必要があります。必要に応じて、serveおよびtestタスクにも。

新しい環境の追加

Edit:明確にするために、buildセクションでファイルの置換を指定する必要があります。したがって、特定のenvironmentファイルでng serveを使用する場合(たとえばdev2)、buildセクションを変更して、新しいdev2設定

"build": {
   "configurations": {
        "dev2": {

          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.dev2.ts"
            }
            /* You can add all other options here, such as aot, optimization, ... */
          ],
          "serviceWorker": true
        },

次に、serveセクションを変更して、新しい構成も追加し、宣言したdev2build構成を指すようにします

"serve":
      "configurations": {
        "dev2": {
          "browserTarget": "projectName:build:dev2"
        }

その後、ng serve -c dev2を使用できます。これは、dev2構成ファイルを使用します

219
David

https://stackoverflow.com/a/50174679/1484847 答えは良いようです。ただし、ビルド中にConfiguration 'xyz' could not be found in project ...エラーが発生したため、エラーになりました。更新された build 設定だけでなく serve onesも必要です。

混乱しないように。

  1. --envangular 6ではサポートされていません
  2. --env--configuration ||に変更されました-c(そして今ではより強力になりました)
  3. 新しい環境ファイルを追加することに加えて、さまざまな環境を管理するために、angular.jsonファイルにいくつかの変更を加える必要があります。
    • build { ... "build": "configurations": ...プロパティに新しい設定を追加する
    • new build configurationfileReplacementsの部分のみを含むことができます(しかしもっと多くのオプションが利用可能です)
    • serve { ... "serve": "configurations": ...プロパティに新しい設定を追加する
    • new serve configurationbrowserTarget="your-project-name:build:staging"を含みます
33
garfunkel61

あなたは試すことができます:ng serve --configuration=dev/prod

Useをビルドするには:ng build --prod --configuration=dev

あなたが異なる種類の環境を使っていることを願っています。

4
amku91

Angular 2 - 5については記事 角度付きの複数環境 を参照してください。

Angular 6にはng serve --configuration=devを使います

注:角度6についても同じ記事を参照してください。しかし、--envが見つかった場合は、代わりに--configurationを使用してください。それは角度6のためによく働きます。

3

このコマンドをAngular 6に使用してビルドします。

ng build --prod --configuration=dev
1
Sateesh

開発環境にはng serve -c devコマンドを、運用環境にはng serve -c prodコマンドを使用できます。

構築中にも同じが適用されます。開発ビルドにng build -c devを使用できます

1

Angularは--envをサポートしなくなりました代わりに使用する必要があります

ng serve --c dev

開発環境のため

ng serve --c prod 

生産用です。お役に立てれば。

0
Shilpa Soni