webpack 之(12) 生产环境 <9-11汇总>
未测试,只是记录下来而已
const {resolve} = require('path') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin') /* 关于js 正常来讲,一个文件只能被一个loader处理 当一个文件要被多个loader处理,那么一定要指定loader执行的先后顺序 先执行eslint 在 执行 babel */ //定义nodejs环境变量:决定使用browserslist的哪个环境 process.env.NODE_ENV = 'production' const commonCssLoader = [ MiniCssExtractPlugin.loader, 'css-loader', { //还需要在package.js中定义browserslist loader:'post-loader' } ] module.exports ={ entry:'./src/js/index.js', output:{ filename:'js/built.js', path:resolve(__dirname,'build') }, module:{ rules:[ { test:/\.css$/, //use 从下到上执行 use:[ ...commonCssLoader ] }, { test:/\.less$/, use:[ ...commonCssLoader, 'less-loader' ] }, { /* 在package.json中eslintConfig -->airbnb*/ test:/\.js$/, exclude:/node_modules/, // 优先执行 enforce:'pre', loader:'eslint-loader', options:{ fix:true } }, { test:/\.js$/, exclude:/node_modules/, loader:'babel-loader', options:{ presets:[ '@babel/preset-env', { userBuiltIns:'usage', corejs:{version:3}, targets:{ chrome:'60', firefox:'50' } } ] } }, { test:/\.(jpg|png|gif)/$, loader:'url-loader', options:{ limit:8*1024, name:'[hash:10].[ext]', outputPath:'imgs', esModule:false } }, { test:/\.html$/, loader:'html-loader' }, { exclude:/.(js|css|html|jpg|png|gif)/, loader:'file-loader', options:{ outputPath } } ] }, plugins:[ new HtmlWebpackPlugin({ template:'./src/index.html', minify:{ collapseWhitespace:true, removeComments:true } }), new MiniCssExtractPlugin({ filename:'css/built.css' }), new OptimizeCssAssetsWebpackPlugin() ], mode:'development' }
{ "name": "12webpackproduction", "version": "1.0.0", "description": "", "main": "postcss.config.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "css-loader": "^5.2.4", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^1.5.0", "postcss-loader": "^5.2.0", "postcss-preset-env": "^6.7.0", "style-loader": "^2.0.0", "url-loader": "^4.1.1" }, "browserslist": { "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ], "production": [ ">0.2%", "not dead", "not op_mini all" ], "eslintConfig": { "extends": "airbnb-base" } } }
分类:
webpack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2019-04-28 HTML 转 PDF的两种实现方式