ๅ่จ
ไนๅๅฏซ้้็ฏ webpack,ๅฎไธ่จญๅฎ webpack ็ๆนๅผ,ไธ่ฌไพ่ชช็บไบๆธๅฐ request,ๆไปฅๆๅธๆๅฐ js ๆชๆก compile ๆไธๅ,้็จฎๆขไปถไฝ ไธๆฏๅพ้ ญๅฐๅฐพๆ้ ้ๅ็ถฒ็ซ็ไฝ่ ,ไบ่งฃๆฏๅ้ ้ข dom ๅธๅฑ็่ฉฑๆฏ็ธ็ถๅฐ้ฃ็,่ไธๅพ HTTP/2 ็ๆฐๆจๆบๅบ็พไปฅๅพ,้ๆๅทฒ็ถๆฒๆๆ้กฏ็ๅชๅขไบ,ๅฏไปฅๅ่ 「ไฝ ็็ถฒ็ซๅ็ดๅฐ HTTP/2 ไบๅ?」้็ฏๆ็ซ 。
ๆไปฅ้็ฏๆ็ซ ๆ้ๆฐๆๅญธๆ้บผ่จญๅฎ,่ฎไฝ ๆฏๅ็ถฒ้ ๆๅฑฌๆผ่ชๅทฑ็ js ๆชๆก,ไฝๅ ฑ็จ็ๅฅไปถๅฆ jQuery ๆ bootstrap ๅปๅฏไปฅ็จ็ซ,ๆธๅฐ็จ็ซๆชๆก็ๅคงๅฐ。
ๅฎ่ฃ็ธ้ๅฅไปถ
npm i --save-dev webpack babel-core babel-loader babel-preset-es2015
npm i --save jquery bootstrap
็ฎๅไธป่ฆ้ๆฏ็จ babel ็ทจ่ญฏ่ผๆฐ็ฉ็ JavaScript ่ชๆณ。
ๆชๆกๅธๅฑ
webpack.config.js
const webpack = require('webpack');
const path = require('path');
module.exports = {
entry: {
a: path.resolve(__dirname, 'js/src/a'),
b: path.resolve(__dirname, 'js/src/b'),
vendor: ['jquery', 'bootstrap']
},
output: {
path: path.resolve(__dirname, 'js/build/'),
filename: '[name].js'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.bundle.js'),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
],
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
]
}
};
้ๅ่จญๅฎๆช้ ่จ่ฆๅฐ js/src/ ไธ็ a.js ไปฅๅ b.js compile ๅฐ js/build/,ไธฆๅฐ jQuery ไปฅๅ bootstrap ๆฝๅบไพๆ็บ vendor,่จญๅฎๅฎๆๅพ,ๅจๆ น็ฎ้ๅท่ก webpack,็ทจ่ญฏๅพๅจ js/build/ ไธๆ็ๅฐ a.js, b.js, vendor.bundle.js ไธๅๆชๆก。
.babelrc
{
"presets": ["es2015"]
}
้ๆฏ babel ็่จญๅฎๆช。
js/src/a.js
$(function() {
$('body').append('this is a');
});
js/src/b.js
$(function() {
$('body').append('this is a');
});
js/src/b.js
$(function() {
$('body').append('this is b');
});
a.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>webpack page a</title>
<script src="js/build/vendor.bundle.js"></script>
<script src="js/build/a.js"></script>
</head>
<body>
<h3>this is a</h3>
</body>
</html>
b.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>webpack page b</title>
<script src="js/build/vendor.bundle.js"></script>
<script src="js/build/b.js"></script>
</head>
<body>
<h3>this is b</h3>
</body>
</html>
ๅท่ก a.htmlไปฅๅ b.html ๅฐฑๆ็ๅฐๅ่ช็ๆๆไบ。