增加配置文件oneOf优化,和babel及EsLint缓存优化
This commit is contained in:
parent
d372292b6a
commit
1e89d44664
@ -24,6 +24,7 @@ Babel:
|
||||
- babel-loader;
|
||||
- @babel/core;
|
||||
- @babel/preset-env;
|
||||
- @babel/plugin-transform-runtime;
|
||||
|
||||
Less & CSS资源:
|
||||
|
||||
|
@ -31,35 +31,53 @@ module.exports = {
|
||||
// 指定要加载的规则
|
||||
rules: [
|
||||
{
|
||||
// 指定规则生效的文件
|
||||
test: /\.ts$/,
|
||||
// 要使用的loader
|
||||
use: [
|
||||
"babel-loader",
|
||||
"ts-loader"
|
||||
],
|
||||
// 要排除的文件
|
||||
exclude: /node_modules/
|
||||
},
|
||||
|
||||
// 设置less文件的处理
|
||||
{
|
||||
test: /\.less$/,
|
||||
use: [
|
||||
"style-loader",
|
||||
"css-loader",
|
||||
// 引入postcss
|
||||
// 使用oneOf去优化打包速度,当文件对应的处理loader被检测到,就不用再去遍历其他的loader,提升打包速度
|
||||
oneOf: [
|
||||
{
|
||||
loader: "postcss-loader",
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [
|
||||
"postcss-preset-env"
|
||||
]
|
||||
}
|
||||
}
|
||||
// 指定规则生效的文件
|
||||
test: /\.ts$/,
|
||||
// 要使用的loader
|
||||
use: [
|
||||
// 配置babel
|
||||
{
|
||||
// 指定加载器
|
||||
loader: "babel-loader",
|
||||
// 设置babel
|
||||
options: {
|
||||
// 开启babel缓存
|
||||
cacheDirectory: true,
|
||||
// 关闭缓存文件压缩
|
||||
cacheCompression: false,
|
||||
// 减少代码体积
|
||||
plugins: ["@babel/plugin-transform-runtime"],
|
||||
}
|
||||
},
|
||||
"ts-loader"
|
||||
],
|
||||
// 要排除的文件
|
||||
exclude: /node_modules/
|
||||
},
|
||||
"less-loader"
|
||||
|
||||
// 设置less文件的处理
|
||||
{
|
||||
test: /\.less$/,
|
||||
use: [
|
||||
"style-loader",
|
||||
"css-loader",
|
||||
// 引入postcss
|
||||
{
|
||||
loader: "postcss-loader",
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [
|
||||
"postcss-preset-env"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"less-loader"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -73,6 +91,12 @@ module.exports = {
|
||||
new ESLintWebpackPlugin({
|
||||
// 指定检查文件的根目录
|
||||
context: path.resolve(__dirname, "../src"),
|
||||
// 排除检查目录
|
||||
exclude: "node_modules",
|
||||
// 开启缓存
|
||||
cache: true,
|
||||
// 缓存输出文件路径
|
||||
cacheLocation: path.resolve(__dirname, "../node_modules/.cache/eslintcache")
|
||||
})
|
||||
],
|
||||
|
||||
|
@ -37,35 +37,53 @@ module.exports = {
|
||||
// 指定要加载的规则
|
||||
rules: [
|
||||
{
|
||||
// 指定规则生效的文件
|
||||
test: /\.ts$/,
|
||||
// 要使用的loader
|
||||
use: [
|
||||
"babel-loader",
|
||||
"ts-loader"
|
||||
],
|
||||
// 要排除的文件
|
||||
exclude: /node_modules/
|
||||
},
|
||||
|
||||
// 设置less文件的处理
|
||||
{
|
||||
test: /\.less$/,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
"css-loader",
|
||||
// 引入postcss
|
||||
// 使用oneOf去优化打包速度,当文件对应的处理loader被检测到,就不用再去遍历其他的loader,提升打包速度
|
||||
oneOf: [
|
||||
{
|
||||
loader: "postcss-loader",
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [
|
||||
"postcss-preset-env"
|
||||
]
|
||||
}
|
||||
}
|
||||
// 指定规则生效的文件
|
||||
test: /\.ts$/,
|
||||
// 要使用的loader
|
||||
use: [
|
||||
// 配置babel
|
||||
{
|
||||
// 指定加载器
|
||||
loader: "babel-loader",
|
||||
// 设置babel
|
||||
options: {
|
||||
// 开启babel缓存
|
||||
cacheDirectory: true,
|
||||
// 关闭缓存文件压缩
|
||||
cacheCompression: false,
|
||||
// 减少代码体积
|
||||
plugins: ["@babel/plugin-transform-runtime"],
|
||||
}
|
||||
},
|
||||
"ts-loader"
|
||||
],
|
||||
// 要排除的文件
|
||||
exclude: /node_modules/
|
||||
},
|
||||
"less-loader"
|
||||
|
||||
// 设置less文件的处理
|
||||
{
|
||||
test: /\.less$/,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
"css-loader",
|
||||
// 引入postcss
|
||||
{
|
||||
loader: "postcss-loader",
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [
|
||||
"postcss-preset-env"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"less-loader"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -79,15 +97,28 @@ module.exports = {
|
||||
new ESLintWebpackPlugin({
|
||||
// 指定检查文件的根目录
|
||||
context: path.resolve(__dirname, "../src"),
|
||||
// 排除检查目录
|
||||
exclude: "node_modules",
|
||||
// 开启缓存
|
||||
cache: true,
|
||||
// 缓存输出文件路径
|
||||
cacheLocation: path.resolve(__dirname, "../node_modules/.cache/eslintcache")
|
||||
}),
|
||||
// 提取css成单独文件
|
||||
new MiniCssExtractPlugin({
|
||||
// 定义输出文件名和目录
|
||||
filename: "static/css/main.css",
|
||||
}),
|
||||
new CssMinimizerPlugin()
|
||||
filename: "static/css/main.css"
|
||||
})
|
||||
],
|
||||
|
||||
// 配置压缩插件,webpack5官方建议使用这种方式
|
||||
optimization: {
|
||||
minimizer: [
|
||||
// css压缩
|
||||
new CssMinimizerPlugin()
|
||||
]
|
||||
},
|
||||
|
||||
// 设置引用模块
|
||||
resolve: {
|
||||
extensions: [".ts", ".js"]
|
||||
|
@ -13,6 +13,7 @@
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.18.2",
|
||||
"@babel/plugin-transform-runtime": "^7.18.2",
|
||||
"@babel/preset-env": "^7.18.2",
|
||||
"any-touch": "^2.2.0",
|
||||
"babel-loader": "^8.2.5",
|
||||
|
Loading…
Reference in New Issue
Block a user