You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.0 KiB
37 lines
1.0 KiB
const path = require('path')
|
|
const webpack = require('webpack')
|
|
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
|
|
|
|
// dll文件存放的目录
|
|
const dllPath = 'public/vendor'
|
|
|
|
module.exports = {
|
|
entry: {
|
|
// 需要提取的库文件
|
|
vendor: ['vue', 'vue-router', 'vuex', 'axios', 'vue-resource']
|
|
},
|
|
output: {
|
|
path: path.join(__dirname, dllPath),
|
|
filename: '[name].dll.js',
|
|
// vendor.dll.js中暴露出的全局变量名
|
|
// 保持与 webpack.DllPlugin 中名称一致
|
|
library: '[name]_[hash]'
|
|
},
|
|
plugins: [
|
|
// 清除之前的dll文件
|
|
new CleanWebpackPlugin(),
|
|
// 设置环境变量
|
|
new webpack.DefinePlugin({
|
|
'process.env': {
|
|
NODE_ENV: JSON.stringify('production')
|
|
}
|
|
}),
|
|
// manifest.json 描述动态链接库包含了哪些内容
|
|
new webpack.DllPlugin({
|
|
path: path.join(__dirname, dllPath, '[name]-manifest.json'),
|
|
// 保持与 output.library 中名称一致
|
|
name: '[name]_[hash]',
|
|
context: process.cwd()
|
|
})
|
|
]
|
|
} |