web-dev-qa-db-ja.com

プロジェクト 'my-lib'で構成 'production'が見つかりませんでした

Angular 6.1.0でライブラリを構築しています

  • ng new lib-demo
  • ng generate library my-lib

すべての記事は、次のような--prodフラグを使用してライブラリのビルドを実行することを推奨しています。

ng build my-lib --prod

ただし、これはエラーをスローします

Configuration 'production' could not be found in project 'my-lib'.

angular.jsonを見ると、ライブラリプロジェクトにproduction build configurationの定義がないため、これはおそらく正しいでしょう。アプリケーションプロジェクトのみに存在します。

以下は、ng-packagrを使用するライブラリプロジェクトのビルド構成の下にあるものです

"build": {
      "builder": "@angular-devkit/build-ng-packagr:build",
      "options": {
        "tsConfig": "projects/my-lib/tsconfig.lib.json",
        "project": "projects/my-lib/ng-package.json"
      }
    }

ここでの質問は、--prodフラグはもう必要ではなく、ng build m-libを実行するだけでprodビルドが生成されるということです。

Distフォルダーの内容を見るとそう見えますが、100%確信はありません。誰かがこれを検証できれば、それは素晴らしいことです。

13
Himanshu Arora

バージョン6.1以降では、Angularは常にライブラリの製品ビルドを行います。つまり、Angularの必要はありません--prodフラグを作成すると、ライブラリは常にAOTモードでビルドされます。確認するために、Angular-CLIリポジトリで次の問題を確認できます。

https://github.com/angular/angular-cli/issues/1229

https://github.com/angular/angular-cli/issues/12226

そしてこの記事( "Building the Library"セクション):

https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5

バージョン6.0.x(またはそれ以前)を使用している場合は、ライブラリをビルドするときに--prodフラグを使用します。

13

Angular 6+それはng build --configuration=production

次に、実稼働構成をangle.jsonに配置します

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

アーキテクトセクションの下で、「構成」を探します(お持ちでない場合)。以下のようなものを追加してみてください。

"configurations": {
      "production": {
      "project": "projects/PROJECT-NAME/ng-package.json"
    }
}

your architect section should like this



"architect": {
    "build": {
      "builder": "@angular-devkit/build-ng-packagr:build",
      "options": {
        "tsConfig": "projects/PROJECT-NAME/tsconfig.lib.json",
        "project": "projects/PROJECT-NAME/ng-package.json"
      },
      "configurations": {
        "production": {
          "project": "projects/PROJECT-NAME/ng-package.json"
        }
      }
    }
0
user2306594