2017-09-25 150 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脚本,但我想要使用它们时,我加载某些页面///// –