当前位置:   article > 正文

webpack.prod.js(webpack生产环境配置文件)

webpack.prod.js(webpack生产环境配置文件)

生产环境:只打包不运行本地服务器


对于在config目录下的webpack.prod.js    

1.在根目录下运行

npx webpack --config ./config/webpack.prod.js

2.在package.json文件中配置

"build":"npx webpack --config ./config/webpack.prod.js"

  1. const path =require('path')
  2. const ESLintPlugin = require('eslint-webpack-plugin');
  3. const HtmlWebpackPlugin = require('html-webpack-plugin');
  4. module.exports={
  5. //入口
  6. //输出
  7. //加载器
  8. //插件
  9. //模式
  10. entry:"./src/main.js",//相对路径
  11. output:{
  12. //文件的输出路径 __dirname:当前文件的文件夹目录
  13. path:path.resolve(__dirname,"../dist"),//绝对路径 path是所有文件的输出路径
  14. //入口文件打包输出的文件名
  15. filename:"static/js/main.js",
  16. clean: true,//每次打包前清理上一次打包的内容
  17. },
  18. module:{
  19. rules:[
  20. //loader的配置
  21. {
  22. test: /\.css$/, //只检测.css文件
  23. use: [//执行顺序从右到左,从下到上
  24. 'style-loader', //将js中的css通过创建style标签添加到html文件中生效
  25. 'css-loader'],//将css资源编译成common.js到webpack中
  26. },
  27. {
  28. test: /\.less$/i,
  29. //loader:"xxx" 只能使用一个loader use可以使用多个
  30. use: [
  31. // compiles Less to CSS
  32. 'style-loader',
  33. 'css-loader',
  34. 'less-loader',
  35. ],
  36. },
  37. {
  38. test: /\.s[ac]ss$/i,
  39. use: [
  40. // 将 JS 字符串生成为 style 节点
  41. 'style-loader',
  42. // 将 CSS 转化成 CommonJS 模块
  43. 'css-loader',
  44. // 将 Sass 编译成 CSS
  45. 'sass-loader',
  46. ],
  47. },
  48. {
  49. test: /\.styl$/,
  50. // loader: 'stylus-loader', // 将 Stylus 文件编译为 CSS
  51. use: [
  52. // compiles Less to CSS
  53. 'style-loader',
  54. 'css-loader',
  55. 'stylus-loader',
  56. ],
  57. },
  58. {
  59. test: /\.(png|jpe?g|gif|webp|svg)$/,
  60. type: 'asset',
  61. parser: {
  62. dataUrlCondition: {
  63. //小于10kb的图片转base64 减少请求数量 但是体积会大一点
  64. maxSize: 10 * 1024 // 10kb
  65. }
  66. },
  67. generator: {
  68. filename: 'static/images/[hash:10][ext][query]'
  69. //图片命名有点长 [hash:10]只取十位
  70. }
  71. },{
  72. test: /\.(ttf|woff2?)$/,
  73. type: 'asset/resource',
  74. generator: {
  75. filename: 'static/fonts/[hash:10][ext][query]'
  76. }
  77. },{
  78. test: /\.(mp3|mp4|avi)$/,
  79. type: 'asset/resource',
  80. generator: {
  81. filename: 'static/media/[hash:10][ext][query]'
  82. }
  83. }, {
  84. test: /\.js$/,
  85. exclude: /(node_modules)/,//排除node_modules中的js文件
  86. use: {
  87. loader: 'babel-loader',
  88. // options: {
  89. // presets: ['@babel/preset-env'],
  90. // },
  91. },
  92. }
  93. ]
  94. },
  95. //插件需要引用才能使用
  96. plugins:[
  97. //插件的配置
  98. new ESLintPlugin({
  99. //检测哪些文件
  100. context: path.resolve(__dirname,'../src'),
  101. }),
  102. new HtmlWebpackPlugin({
  103. //模版 新的html文件结构与原来一致 会自动引入打包的资源
  104. template:path.resolve(__dirname,'../public/index.html')
  105. })
  106. ],
  107. //模式
  108. mode:"production",
  109. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/334010
推荐阅读
相关标签
  

闽ICP备14008679号