当前位置: 首页 > news >正文

Webpack 常见配置项

1. entry

指定一个或多个入口点,Webpack 从这里开始构建依赖图。

entry: {main: './src/index.js',admin: './src/admin.js'
}

2. output

指定输出文件的路径和名称。

output: {filename: '[name].bundle.js',path: path.resolve(__dirname, 'dist'),publicPath: '/assets/' // 用于生成的资源 URL
}

3. module

配置如何处理不同类型的模块。

module: {rules: [{test: /\.js$/,exclude: /node_modules/,use: {loader: 'babel-loader'}},{test: /\.css$/,use: ['style-loader', 'css-loader']},{test: /\.(png|jpe?g|gif)$/i,use: [{loader: 'file-loader',options: {outputPath: 'images'}}]}]
}

4. resolve

配置模块解析规则,例如别名、扩展名等。

resolve: {extensions: ['.js', '.json', '.jsx'],alias: {'@': path.resolve(__dirname, 'src')}
}

5. plugins

配置插件,用于执行更复杂的任务,如优化、压缩、生成 HTML 文件等。

const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');plugins: [new HtmlWebpackPlugin({template: './src/index.html'}),new MiniCssExtractPlugin({filename: '[name].css'})
]

6. optimization

配置优化选项,如代码分割、懒加载、Tree Shaking 等。

optimization: {splitChunks: {chunks: 'all',minSize: 10000,maxSize: 0,minChunks: 1,maxAsyncRequests: 10,maxInitialRequests: 5,automaticNameDelimiter: '~',name: true,cacheGroups: {vendors: {test: /[\\/]node_modules[\\/]/,priority: -10,filename: 'vendors~[name].js'},default: {minChunks: 2,priority: -20,reuseExistingChunk: true,filename: 'common~[name].js'}}},usedExports: true, // 启用 Tree Shakingminimize: true, // 启用压缩minimizer: [new TerserPlugin()] // 使用 TerserPlugin 进行压缩
}

7. devServer

配置开发服务器,用于热重载、实时重新加载等。

devServer: {contentBase: path.join(__dirname, 'dist'), // 指定开发服务器提供静态文件的目录compress: true, // 启用 gzip 压缩port: 9000, // 指定开发服务器监听的端口号hot: true, // 启用热模块替换(Hot Module Replacement, HMR)open: true // 启动开发服务器后自动打开浏览器
}

8. mode

设置构建模式,development 或 production。

mode: 'production'

9. externals

排除某些模块,使其不在打包结果中,通常用于全局变量或 CDN 引入的库。

externals: {jquery: 'jQuery'
}

10. performance

配置性能提示,例如文件大小限制等。

performance: {hints: 'warning', // 可以是 'error' 或 'warning'maxAssetSize: 200000, // 单个文件的最大体积(字节)maxEntrypointSize: 400000, // 入口点的最大体积(字节)assetFilter: assetFilename => !/(\.map$)/.test(assetFilename) // 过滤文件
}

11. stats

配置构建输出的详细程度。

stats: 'errors-only' // 只显示错误信息

12. target

指定打包的目标环境,如 web、node 等。

target: 'web'

13. devtool

配置源映射(source map),用于调试。

devtool: 'source-map'

http://www.mrgr.cn/news/34331.html

相关文章:

  • apply、call和bind的作用和区别
  • 装饰器模式
  • Vue使用Vue Router路由:开发单页应用
  • 【网络协议栈】传输层的意义 和 UDP协议结构的解析(内含逻辑图解通俗易懂)
  • yolo自动化项目实例解析(四)ui页面整理1 (1.85)
  • kafka负载均衡迁移(通过kafka eagle)
  • 独立站崛起:2024全球商家共谋增长新蓝图
  • Kibana中突然看不到日志ElasticSearch突然采集不到日志问题解决分析
  • Linux——虚拟机和Windows间的文件传输方式
  • 【运维监控】influxdb 2.0 + grafana 11 监控jmeter 5.6.3 性能指标(1)
  • 9.23-部署项目
  • 基于深度学习的竞争性对抗学习
  • 场景题面试题——第一篇
  • freemobus阅读笔记
  • 比亚迪技术面试(测试、测开)
  • 公测两次延期、被网易拉黑,乙游《米修斯之印》能“活”下来吗?
  • python对文件的写入和追加
  • 基于QT的C++中小项目软件开发架构源码
  • 【Centos 8安装VNC及多用户配置详细教程】
  • docker安装及使用