alg*_*hms 5 javascript jquery bundle bundling-and-minification webpack
我的项目有多个JS-Files,其中包含不进行任何导出的函数声明,并使用jquery,jquery-ui和其他需要全局访问的库。函数通常由html元素()中的内联JavaScript调用<button onclick="doStuff()">...
我现在的目标是将应用程序文件捆绑到bundle.js中,将供应商文件捆绑到vendor.js中。我已经设法完成了第二项任务,但是第一个任务没有按我希望的那样工作。
bundle.js文件应仅包含所有已串联+缩小的.js文件,然后在全局上下文中执行。
到目前为止我尝试过的是:
为了便于讨论,我给出了一个简化的方案:
function doStuffA() {
alert("A");
}
Run Code Online (Sandbox Code Playgroud)
function doStuffB() {
alert("B");
}
Run Code Online (Sandbox Code Playgroud)
require("script!./a");
require("script!./b");
Run Code Online (Sandbox Code Playgroud)
<body>
<button onclick="doStuffA()">A</button>
<button onclick="doStuffB()">B</button>
<script src="bundle.js"></script>
<script src="vendor.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
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 }),
]
}
Run Code Online (Sandbox Code Playgroud)