angular-cliはwebpack.config.jsファイルです-新しいangular6はng排出をサポートしていません


132

更新:2018年12月(「Aniket」の回答を参照)

Angular CLI 6を使用する場合は、ng排出が非推奨であり、8.0で間もなく削除されるため、ビルダーを使用する必要があります。

更新:2018年6月:Angular 6はngの取り出しをサポートしていません**

更新:2017年2月:NGイジェクトを使用

更新:2016年11月:angular-cliはwebpackのみを使用するようになりました。通常はnpm install -g angular-cliを使用してインストールするだけです。「私たちはビルドシステムをbeta.10とbeta.14の間でSystemJSからWebpackに変更しました。」しかし、実際には構造とフォルダーの最初だけにangular-cliを使用し、その後、手動でwebpack configを使用しています

私はこれでangular cliをインストールしました:

npm install -g angular-cli@webpack

angular1とweb packを使用していたときに、「webpack.config.js」ファイルを変更してすべてのタスクとプラグインを実行していましたが、angular-cliを使用して作成されたこのプロジェクトで、誰が機能するのかわかりません。魔法です?

私が行うときにWebpackが機能しているのがわかります:

ng serve 

"Version: webpack 2.1.0-beta.18"

しかし、私はangular-cli構成が機能する方法を理解していません...


組み込みのangular2 cliアドオンです。単純化された魔法はありません。
Jorawar Singh

3
@MrJSinghに感謝しますが、設定ファイルはまだありますか?または単にangular-cli.jsonで動作しますか?追加の設定プラグインは必要ありませんか?
stackdave

ATです:node_modules \ @ngtools
bharatpatel

1
Angular 6.0.8は現在サポートされていませんng eject
Robert Love

4
OPが投稿からほぼ1年後に正解を更新するのが好きです。
ルミナス

回答:


34

Angular CLI 6を使用する場合は、ngjectが非推奨になり、8.0で間もなく削除されるため、ビルダーを使用する必要があります。それは私がNGイジェクトをしようとするとそれが言うことです

ここに画像の説明を入力してください

angular- builders パッケージ(https://github.com/meltedspark/angular-builders)を使用して、カスタムWebpack構成を提供できます。

私は自分のブログの1つのブログ投稿にすべてをまとめようとしました-Angular CLI 6でカスタムwebpack構成を使用してビルド構成をカスタマイズする方法

しかし基本的には次の依存関係を追加します-

  "devDependencies": {
    "@angular-builders/custom-webpack": "^7.0.0",
    "@angular-builders/dev-server": "^7.0.0",
    "@angular-devkit/build-angular": "~0.11.0",

angular.json次のように変更します-

  "architect": {
    "build": {
      "builder": "@angular-builders/custom-webpack:browser",
      "options": {
        "customWebpackConfig": {"path": "./custom-webpack.config.js"},

ビルダーの変更と新しいオプションcustomWebpackConfigに注意してください。また変更

    "serve": {
      "builder": "@angular-builders/dev-server:generic",

サーブターゲットのビルダーの変更に再度注目してください。これらの変更を投稿すると、同じルートディレクトリにcustom-webpack.config.jsというファイルを作成し、そこにwebpack設定を追加できます。

ただし、ここで提供されているngの排出構成とは異なり、デフォルトの構成とマージされるため、編集/追加したいものを追加するだけです。


4
いいね。ウェブパックの設定を調整する方法は、角度のドキュメントで言及されるべきです。それは私のような初心者を助けます。
Wajahath、2018

このangular-buildersセットアップは私にとっては機能しません、ng serve出力なしで5秒後に終了します。私のプロジェクトでは、angular cli 7とangular core 5を使用しています
。– tedw

package.jsonのscriptsプロパティで行う必要がある変更はありますか?
クリシュナプラシャット

Angular 8のangular-buildersのバージョンでは、@angular-builders/dev-server:generic非推奨になりました。@angular-builders/custom-webpack:dev-server代わりに使用してください。」それを反映するためにこの回答を更新できますか?
ブライアンマッカッション

1
github.com/just-jeb/angular-builders/tree/master/packages/…-このための非常に簡単な手順...- Angular 9 Universal Ivyで動作します
Jonathan

153

angular-cliからwebpack.config.jsを取り出すための良い方法があります。とにかく走れ:

$ ng eject

これにより、プロジェクトのルートフォルダーにwebpack.config.jsが生成され、自由に構成できます。これの欠点は、package.json内のビルド/開始スクリプトが新しいコマンドに置き換えられ、代わりに

$ ng serve

あなたは次のようなことをしなければならないでしょう

$ npm run build & npm run start

この方法は、angular-cliの最近のすべてのバージョンで機能するはずです(個人的にいくつか試してみましたが、最も古いものは1.0.0-beta.21で、最新のものは1.0.0-beta.32.3です)。


1
唯一のフラストレーションは、開発環境の構成のみを排出することです。代わりに本番構成を使用するためにngjectに
jtsnr

@bebebe github.com/angular/angular-cli/issues/4907確認をお願いしました。
Kunepro


@AntonNikiforovイジェクト後のWebpackの構成方法は?webpack設定ファイルはとても複雑に見えます。プロジェクトでpostcssを使用したいのですが、現在cliでサポートされていないためです。
Ng2-Fun 2017

ng build -wを実行する方法 npm run build -wが機能しません。ngbuild --prodおよびng build -d "something"でも同じです
Victor Bredihin

49

この問題によると、ユーザーがWebpack構成を変更して学習曲線を短縮できないようにするのは設計上の決定でした。

Webpackの便利な構成の数を考えると、これは大きな欠点です。

angular-cli非常に評判が高いため、本番アプリケーションでの使用はお勧めしません。


8
アーキテクチャのすべてのフローを理解するまで、ブラックボックスを入力することはお勧めしません。プロジェクトの開発中にサポートされていないものやカスタマイズできないものがあると、非常にコストがかかる可能性があります。
Ignatius Andrew

11

これで、CLIのwebpack設定を取り出すことができます。アントン・ニキフォロフの回答を確認してください。


時代遅れ:

で構成テンプレートをハックできangular-cli/addon/ng2/modelsます。現在のところ、webpackの設定を変更する正式な方法はありません。

これについては、githubにクローズされた「wont-fix」の問題がありますhttps : //github.com/angular/angular-cli/issues/1656


1
最後にこのスケルトンを使用します。angular-cliはwebpackで実際に作業する準備ができていません。多くの問題があります。私はこれを使用することをお勧めします: github.com/webpack/webpack-dev-server
stackdave

5
悲しいことに、この問題は「実装されない」としてクローズされています。:-(
monnef

1
npmjs.com/~ngtoolsもあり、スタンドアロンのCLIを実行するWebpackを取得できます。youtu.be/uBRK6cTr4Vk?t=7m57sを
Mikeumus


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.