Angular 2/4:scripts.bundle.js和vendor.bundle.js有什么区别?

时间:2017-09-25 06:24:10

标签: angular angular-cli

Angular 4:运行命令后:ng build我有这个结构

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包含所有已创建的模块。

修改

  

但我可以将.js中的node_modules个文件导入vendor.bundle.jsscripts.bundle.js。最好的方法是:将.js个文件导入模块或将其添加到.angular-cli.json s scripts对象中?

〜非常感谢你的帮助!

1 个答案:

答案 0 :(得分:6)

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

  

更好的方法来确定捆绑包内的内容是使用   webpack-bundle-analyzer

"analyze": "ng build --prod --stats-json && webpack-bundle-analyzer dist/stats.json",添加到package.jsonnpm 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

上的脚本部分的更多详细信息