Javascript 如何在my vendor.js(CommonChunkPlugin)中导出捆绑库?
我有两个Javascript 如何在my vendor.js(CommonChunkPlugin)中导出捆绑库?,javascript,webpack,Javascript,Webpack,我有两个webpack2项目 第一个,我们称之为lib1是一个可重用组件库。在webpack配置中,它被导出为名为lib1的库。项目将react和react dom列为外部依赖项 第二个,我们称之为proj1是一个使用lib1的应用程序。因为lib1是在cdn上提供的,所以它被列为外部依赖项。该项目还依赖于react和react-dom。使用commonchunkpluginI generare创建一个vendor.js,其中包括react和react dom(最终还有其他依赖项) 在浏览器
webpack2
项目
- 第一个,我们称之为
是一个可重用组件库。在webpack配置中,它被导出为名为lib1
的库。项目将lib1
和react
列为外部依赖项react dom
- 第二个,我们称之为
是一个使用proj1
的应用程序。因为lib1
是在cdn上提供的,所以它被列为外部依赖项。该项目还依赖于lib1
和react
。使用react-dom
I generare创建一个commonchunkplugin
,其中包括vendor.js
和react
(最终还有其他依赖项)react dom
proj1
时,lib1
中的代码失败,因为它找不到react
。按以下顺序加载库:
<script src="dist/vendor.js"></script>
<script src="http://cdn.com/lib1/lib1.js"></script>
<script src="dist/bundle.js"></script>
但它会创建window.vendor
而不是window.React
和window.ReactDOM
我该怎么做
lib1配置 proj1配置
你应该发布你的网页配置我添加了网页配置
library: "[name]",
libraryTarget: "umd"
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, "dist"), // string
filename: "bundle.js",
publicPath: "/dist/",
library: "lib1",
libraryTarget: "umd",
},
module: {
rules: [{
test: /\.js$/,
loader: 'babel-loader',
exclude: path.resolve(__dirname, "node_modules"),
}]
},
externals: ["react", "react-dom"],
};
var webpack = require('webpack');
const path = require('path');
module.exports = {
entry: {
bundle : './src/index.js',
vendor : ['react', 'react-dom']
},
output: {
path: path.resolve(__dirname, "dist"),
filename: "[name].js",
publicPath: "/dist/",
library: "[name]",
libraryTarget: "umd",
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor'
})
],
module: {
rules: [{
test: /\.js$/,
loader: 'babel-loader',
exclude: path.resolve(__dirname, "node_modules"),
}]
},
externals: ["lib1"],
devtool: "source-map"
};