開發過程當中引用的第三方模塊,開發者每每不會去修改源碼,而每次打包時又會從新打包引用的第三方模塊,所以採用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' }),