webpack生产环境配置(3)
提取css成单独文件#
默认情况下css会打包到js中,如果css代码过多会导致js文件过大;并且在页面加载时是先加载JS,再创建style标签引入css样式,导致页面会出现"闪屏"现象。如果有一种可以将css从js代码中提取出来,这样就可以减小文件的体积。
步骤:
- 创建src目录,用于存放源码
- 创建
css/index.css
和src/index.js
文件,并在index.js
文件中引入css。webpack在分析有依赖的资源才会加入打包文件中 - 创建
index.html
。使用html-webpack-plugin插件自动引入打包生成的资源,查看效果 - webpack配置
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
plugins:[
new MiniCssExtractPlugin({
// 对输出的css文件进行重命名
filename: 'css/built.css'
})
],
module:{
rules:[
{
test:/\.css$/,
use:[
// 取代style-loader。作用:提取js中的css成单独文件
MiniCssExtractPlugin.loader,
'css-loader'
]
}
]
}
}
- 安装开发依赖
npm i mini-css-extract-plugin@0.9.0 -D
- 打包
webpack
总结:mini-css插件是通过link标签引入,而不是通过style标签引入,不会出现闪屏现象;
CSS压缩#
https://www.npmjs.com/package/optimize-css-assets-webpack-plugin
步骤:
- 安装开发时依赖
npm i optimize-css-assets-webpack-plugin@5.0.3 -D
- webpack配置
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
module.exports = {
plugins:[
new OptimizeCssAssetsWebpackPlugin()
]
}
- 打包
webpack
JS语法检查#
Airbnb,团队合作时进行代码的规范
步骤:
- 安装开发时依赖
npm i eslint-loader@3.0.3 eslint@6.8.0 eslint-config-airbnb-base@14.0.0 eslint-plugin-import@2.20.1 -D
- webpack.config.js配置
module.exports = {
module:{
rules:[
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
options: {
// 自动修复eslint的错误
fix: true
}
}
]
}
}
package.json
中设置检查规则
{
"eslintConfig": {
"extends": "airbnb-base"
}
}
- 在入口文件中编写js不符合规范的代码进行测试
var a = 10;
console.log('hello');
- 打包测试
注意:
- 默认情况下Airbnb遇到
console.log(xx)
也会报出警告,如果想要忽略警告的话则需在输出的前一行添加// eslint-disable-next-line
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)