加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
webpack.config.js 2.40 KB
一键复制 编辑 原始数据 按行查看 历史
scriptRui 提交于 2021-09-03 17:23 . 提供支持webpack打包
const { CleanWebpackPlugin } = require('clean-webpack-plugin') // 这里需要把CleanWebpackPlugin写在{}里
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { VueLoaderPlugin } = require('vue-loader')
const path = require('path')
function resolve(dir) {
return path.join(__dirname, dir)
}
module.exports = {
mode: 'production', // 模式
entry: './src/main.ts', // 入口
output: {
// 出口
path: resolve('dist-web'), // 打包文件
filename: '[contenthash].bundle.js', // 每个输出 bundle 的名称
chunkFilename: (pathData) => {
// 未被列在入口的代码
return pathData.chunk.name === 'main' ? '[name].js' : '[name]/[name].js'
}
},
module: {
rules: [
{
test: /\.vue$/,
use: 'vue-loader',
exclude: /node_modules/
},
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: /\.ts$/,
exclude: /node_modules/,
use: [
{
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/]
}
}
]
},
{
test: /\.(css|scss)$/,
use: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /\.less$/,
use: ['style-loader', 'css-loader', 'less-loader']
},
{
test: /\.(svg|otf|ttf|woff2?|eot|gif|png|jpe?g)(\?\S*)?$/,
loader: 'url-loader',
// todo: 这种写法有待调整
options: {
limit: 10000,
name: path.posix.join('static', '[name].[hash:7].[ext]')
}
}
]
},
// 配置模块如何解析
resolve: {
// 需要解析的文件后缀名
extensions: ['.ts', '.tsx', '.js', '.vue'],
// 别名配置
alias: {
'/@': resolve('src')
}
},
plugins: [
// 删除之前的打包文件
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns: ['./dist-web']
}),
// 模板
new HtmlWebpackPlugin({
template: './src/assets/index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
}
}),
new VueLoaderPlugin()
]
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化