我有很多不同的Git仓库,每个仓库都有一个React应用程序。每个应用程序都应该使用相同的vendors块文件,并包含外部包(例如React、ReactDOM等)。
项目设置:
Project 1 (git)
/dist/...
/src/...
webpack.config.js
Project 2 (git)
/dist/...
/src/...
webpack.config.js
Project N (git)
...
每个
webpack.config.js
文件都包含这个配置,但是库的名称不同:module.exports = {
entry: {
app: './src/App.ts',
vendor: ['react', 'react-dom', 'react-redux', 'redux', 'redux-thunk']
},
output: {
path: path.resolve(__dirname, "dist"),
filename: '<Name>.bundle.js',
library: "<Name>",
libraryTarget: "umd"
},
module: { /* ... */ },
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: 'vendor.bundle.js'
})
]
}
问题:
Webpack为当前库/项目构建了一个vendor.bundle.js
,而不是为全局使用构建,是否有选项可以让webpack创建一个vendor.bundle.js
,该文件可包含在单个页面中,从而基于此文件加载两个应用程序:
示例:
<html>
<head>
<script src="/vendor.bundle.js"></script>
</head>
<body>
<script src="/app1.bundle.js"></script>
<script src="/app2.bundle.js"></script>
</body>
</html>