Javascript 如何重用Web包供应商包
我假设我可以实现我试图用webpack做的事情,但仍然无法理解。下面是用例 我有两个Angular应用程序(将在同一个浏览器窗口中加载),它们将重用完全相同的供应商包。目前,webpack在每个应用程序中生成两个文件app.[app\u module\u name].js和vendor.js。因此理论上,我应该能够在html页面中只包含一个vendor.js文件,然后加载几个应用程序模块。但是,这不起作用,因为供应商中lib的网页包内部引用彼此不同 以下是我目前的配置。如果有人能帮我,那就太好了Javascript 如何重用Web包供应商包,javascript,angularjs,webpack,code-splitting,Javascript,Angularjs,Webpack,Code Splitting,我假设我可以实现我试图用webpack做的事情,但仍然无法理解。下面是用例 我有两个Angular应用程序(将在同一个浏览器窗口中加载),它们将重用完全相同的供应商包。目前,webpack在每个应用程序中生成两个文件app.[app\u module\u name].js和vendor.js。因此理论上,我应该能够在html页面中只包含一个vendor.js文件,然后加载几个应用程序模块。但是,这不起作用,因为供应商中lib的网页包内部引用彼此不同 以下是我目前的配置。如果有人能帮我,那就太好了
entry: {
bootstrap: './src/app/init/bootstrap.js',
tradingApp: './src/app/app.js'
},
output: {
filename: '[name].bundle.js',
publicPath: '/',
path: path.join(projectRoot, 'dist')
},
plugins:[
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module) {
return module.resource && module.resource.indexOf(path.join(projectRoot, 'src')) === -1
}
}),
]
这就是为什么要一起构建应用程序,以便它们可以重用“供应商”块。@estus每个应用程序都在不同的时间线中构建。例如,应用程序A将每月部署到生产中,应用程序B将每周部署到生产中。然而,不管时间表如何,供应商包始终是相同的,这取决于您如何管理您的项目,但是您可以每次从其“发布”分支构建一个包(它仍然必须每周部署一次)。我猜替代方案是修复模块ID(使用or),因此在构建时只会更改B。我不认为有办法“在html页面中只包含一个vendor.js文件”,除非将vendor模块导出到globals,否则Webpack不会这样工作。@estus谢谢你的建议。我已经更改了构建管道,它构建了所有模块,不管是否有更改。然后,构建过程验证每个文件的校验和,如果有更改,则仅将文件部署到Production是否可以使用Angular CLI在Angular的最新版本中重用捆绑包,如提到的vendor.js?