开发过程当中引用的第三方模块,开发者每每不会去修改源码,而每次打包时又会从新打包引用的第三方模块,所以采用dllplugin生成动态连接库。html
// import {ToastPlugin} from 'vux' import ToastPlugin from 'vux/src/plugins/toast/index.js'
//webpack.dll.conf.js const path = require('path'); const webpack = require('webpack'); const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin') // 将动态连接库放到/dist/dll/下 const dllConfig = { entry: { vendor: [ 'vue/dist/vue.esm.js', 'vue-router', 'vuex', 'axios', ] }, output: { path: path.join(__dirname, '../dist/dll'), filename: '[name].dll.js', library: '[name]_library', libraryTarget: 'umd' }, plugins: [ new webpack.DllPlugin({ // 生成映射文件 path: path.join(__dirname, '../dist/dll/manifest.json'), name: '[name]_library', // context: path.resolve(__dirname,'../') }), // ParallelUglifyPlugin可实现多线程代码压缩 new ParallelUglifyPlugin({ cacheDir: '.cache/', uglifyJS: { output: { comments: false }, compress: { warnings: false } } }), ], }
new webpack.DllReferencePlugin({ // context: path.resolve(__dirname,'../'), manifest: './dist/dll/manifest.json' }),