我的项目有多个JS-Files,它们包含没有任何导出的函数声明,并使用jquery,jquery-ui和其他需要全局访问的库。
函数通常由html元素中的内联JavaScript 调用(<button onclick="doStuff()">...
)
我的目标是将应用程序文件捆绑到bundle.js,将供应商文件捆绑到vendor.js中。我设法完成了第二项任务,但第一项任务并没有像我希望的那样正常工作。
bundle.js文件应该只包含连接+缩小的所有.js文件,然后在全局上下文中执行。
到目前为止我尝试了什么:
为了便于讨论,我给出了一个简化的方案:
function doStuffA() {
alert("A");
}
function doStuffB() {
alert("B");
}
require("script!./a");
require("script!./b");
<body>
<button onclick="doStuffA()">A</button>
<button onclick="doStuffB()">B</button>
<script src="bundle.js"></script>
<script src="vendor.js"></script>
</body>
var webpack = require("webpack");
module.exports = {
entry: {
app: "./src/index.js",
vendor: [
"jquery",
"jquery-ui"
]
},
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{test: /\.json$/, loader: "json"},
{test: /\.css$/, loader: "style!css"}
]
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
"jQuery": "jquery",
"window.jQuery": "jquery"
}),
new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: 'vendor.bundle.js', minChunks: Infinity }),
]
}