この記事では、Angular CLI を使用した Build と Serve の詳細な説明を中心に紹介しますので、参考にしてください。
Build.
Buildは主に以下の動作を行います:
プロジェクトファイルをコンパイルし、特定のディレクトリに出力します
出力結果を決定するビルドターゲット
バンドルパッケージ
本番環境のビルドでは、uglify と Tree-shaking (無駄なコードの削除) も実行されます
ng build.
最初にヘルプを確認できます:
ng build --help
開発環境の場合、コマンド ng build を使用するだけです。
デフォルトでは、出力ディレクトリは .angular-cli.json ファイルの ourDir 属性で構成されます。デフォルトは /dist ディレクトリです。
ビルド後、これらのファイルが表示されます。 in dist:
inline.bundle.js これはwebpackのランタイムです
main.bundle.jsはブラウザのPollyfills.jsです。
styles.bundle.js スタイルExecute ng build:
これらのファイルが生成されることがわかります。dist でindex.html をフォーマットして見てください。 :
生成された 5 つの js ファイルが参照されています
main.bundle.js を開くと、私が書いたコードが表示されます:
以下のプログラムを実行します: ngserve -o:
上記のファイルがロードされていることが ngserve で確認できます
ng build は開発ビルドであるため、最適化は行われておらず、ファイルは非常に大きいです
このファイル ディレクトリを見てください。現時点では、dist ディレクトリはありません:
それでは、これらのファイルはどのように提供されるのでしょうか?
これは、現時点では webpack がメモリ内で提供されるためです
以下の分析には、source-map-explorer を使用してください。
npm install --save-dev source-map-explorer
.\node_modules\.bin\source-map-explorer dist\main.bundle.js
vendor.bundle の状況を見てください:
.\node_modules\.bin\source-map-explorer dist\vendor.bundle.js
中身はかなり異なります。詳細
ビルドターゲットと環境環境は、どの環境ファイルが使用されるかを指します:そして、ターゲットはプロジェクトファイルがどのように構成されるかを決定するために使用されます。最適化されました。
開発と運用ビルドの比較を見てください。
ng build | ng build --prod | |
環境 | environment.ts | 環境..prod.ts |
キャッシュ | CSSで参照される画像のみをキャッシュ | すべてのビルドファイル |
ソースマップ | 生成しない | |
jsファイルへのグローバルCSS出力 | 生成されたCSSファイル | uglify |
ではありません | ツリー-シェイク | では無駄なコードは削除されません |
無駄なコードを削除 | AOT | いいえ |
はい | バンドルバンドル | |
は | -- build-optimizer | いいえ |
はい (AOT と Angular5 を使用) | --named-chunks | はい |
いいえ | --出力 - ハッシュ | メディア |
すべて | 下面命令都是针对开发时的build, 它们的作用是一样的: ng build ng build --dev ng build --dev -e=dev ng build --target=development --environment=dev ログイン後にコピー 下面则是生产build: ng build --prod ng build --prod -e=prod ng build --target=production --environment=prod ログイン後にコピー 其它常用的参数还有:
Production Build. 先使用--aot: ng build --aot ログイン後にコピー 使用aot之后可以看到 vendor.bundle的大小降了很多, 只有1.5m左右了. 执行aot会去掉一些程序执行不需要的代码, 例如angular的compiler这时就不在build输出的文件里了(可以使用source-map-explorer查看). 试试生产环境: ng build --prod ログイン後にコピー 可以看到所有的文件都非常小了, 并且没有vendor了(因为prod下--build-optimizer起作用所以vendor没有了, 但可以使用--vendor-chunk true给弄出来). Serve. ng serve. 已经一直在用了, 下面看看它常用的参数:
试试 --prod: ng serve --prod ログイン後にコピー 通过文件大小可以看出确实是prod build的. ng eject. 为项目生成webpack配置和脚本. 执行该命令试试: 看看有哪些变化: .angular-cli.json: package.json: 命令脚本都变了 还多出来一个webpack.config.js文件: 为什么要这么做呢? 可以对项目更深入的配置.... 这时运行程序就是 npm start了. 我还是把reject恢复回去吧, 使用git来恢复吧. 如果需要Serve 其他js/css/assets文件: 放在.angular-cli.json就行, 例如jquery就应该放在scripts里面. 上面是我整理给大家的,希望今后会对大家有帮助。 相关文章: 以上がAngular CLI を使用したビルドと提供の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。 このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
Angular 7 は SCSS の重複した属性を削除します
AngularSASS (.scss) はプロパティを削除します。ブラウザ間の互換性のために重複した属性を埋め込むことができるように、この問題の発生を防ぐにはどうすればよいですか?...
から 2024-04-04 23:28:54
0
1
1382
Ajax を使用したコンテンツの生成 - ID までスクロールできない
ajax経由で取得したデータに基づいてページコンテンツを生成します。私が抱えている問題は、特定の ID までスクロールしたいときに、スクロールが起こらないか、間違った場所にスクロー...
から 2024-04-04 09:29:39
0
1
397
Angular で円形の SVG 温度ドラッガーを作成しますか?
これは、Angular で作成しようとしている円形の親指ドラッガーの静的なデモンストレーションです。これは、rinkle-dashoffset="-260" 設...
から 2024-04-03 09:33:29
0
1
376
関連トピック
詳細>
|