2017-09-25 96 views
4

角4:運行命令後:ng build我有這樣的結構角2/4:scripts.bundle.js之間差異vendor.bundle.js

0.chunk.js  favicon.ico   polyfills.bundle.js.map 
0.chunk.js.map index.html   scripts.bundle.js 
1.chunk.js  inline.bundle.js  scripts.bundle.js.map 
1.chunk.js.map inline.bundle.js.map styles.bundle.js 
2.chunk.js  main.bundle.js  styles.bundle.js.map 
2.chunk.js.map main.bundle.js.map vendor.bundle.js 
assets   polyfills.bundle.js vendor.bundle.js.map 

是什麼scripts.bundle.jsvendor.bundle.js之間的區別?

我覺得不同的是,這scripts.bundle.js持有所有外部.js文件和vendor.bundle.js擁有所有創建的模塊。

編輯

,但我可以導入從node_modules.js文件到vendor.bundle.jsscripts.bundle.js。什麼是最好的方法:將.js文件導入模塊或將它們添加到.angular-cli.json s scripts對象???

〜非常感謝您的幫助!

+1

我剛剛更新的答案ADRESS你的問題的更新 – Kuncevic

回答

3

scripts.bundle.js表示您在.angular-cli.json
vendor.bundle.js配置scripts部分包含npm modules你在你的app.module引用。

更好的方式來弄清楚什麼是你的包裏面是用 webpack-bundle-analyzer

添加"analyze": "ng build --prod --stats-json && webpack-bundle-analyzer dist/stats.json",package.json,一旦你npm install webpack-bundle-analyzer只運行npm run analyze

scripts節的目的.angular-cli.json是處理遺留腳本,但也可以使用它來改善您的懶加載故事。只說你的塊依賴於一些特定的npm module。在這種情況下,不需要將npm模塊放置到vendor.bundle.js中,因爲它可以在加載相關塊之前加載。在腳本部分

更多細節上https://github.com/angular/angular-cli/wiki/stories-global-scripts

+0

如果我添加'.js'文件到'角cli.json''scripts'文件將在應用程序啓動加載,但是我想在延遲加載模塊中使用'.js'文件? –

+0

@SalimIbrogimov如果你想排除在index.html中加載的任何特定'腳本',你必須設置''lazy':true' https://github.com/angular/angular-cli/wiki/ stories-global-scripts,同時查看這個問題https://github.com/angular/angular-cli/issues/6018瞭解更多關於這個問題的細節。 – Kuncevic

+0

是的,它的工作,它懶惰地加載thous腳本,但我想要使用它們時,我加載某些頁面///// –