为什么要提取公共代码
将项目中的公共模块提取出来,可以减少代码的冗余度,提高代码的运行效率和页面的加载速度。
使用CommonsChunkPlugin提取公共代码
- 初始化工程
1、创建工程空目录Test
2、进入Test目录
3、使用npm初始化工程 npm init
4、创建webpack.config.js文件 - 安装webpack
npm install webpack --save-dev
因为CommonsChunkPlugin是webpack内置插件,所以要将webpack装在项目中。 - 配置webpack.config,js,主要在plugins属性中配置参数
1、引入webpack模块,需要在项目环境中安装webpack
2、在plugins节点中新建一个CommonsChunkPlugin实例
new webpack.optimize.CommonsChunkPlugin(options);
3、CommonsChunkPlugin方法中参数是一个对象,对象属性有:
name:提取公共代码的js文件名,如:common
names:字符串数组,打包的文件名称
minChunks: 指定重复代码几次之后就提取出来
chunks:// 指定提取范围
var webpack = require('webpack');
var path = require('path');
module.exports = {
entry: {
'subPageA': './src/subPageA', // 公共代码提取是针对多entry的,在单一entry下是体现不出来的
'subPageB': './src/subPageB'
},
output: {
path: path.resolve(__dirname, './dist'), //__dirname 代表当前目录
filename: "[name].bundle.js"
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'common', // 如果还要提取公共代码,在新建一个实例
minChunks: 2, //重复两次之后就提取出来
chunks: ['subPageA', 'subPageB'] // 指定提取范围
})
]
}
代码示例
- 新建js公共模块文件module.js,并添加代码
export default 'module';
- 新建subPageA.js文件,并添加代码
import './module'
export default 'subPageA';
- 新建subPageB.js文件,并添加代码