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

Vue Cli的配置中configureWebpack和chainWebpack的主要作用及区别是什么?

直接区别:

configureWebpack项直接覆盖同名配置;chainWebpack项直接修改默认配置。

configureWebpack配置:

// vue.config.js
module.exports = {configureWebpack: {plugins: [new MyAwesomeWebpackPlugin()]}
}

该代码段中的对象将会被webpack-merge合并入最终的Webpack配置中。
如果需要基于环境有条件地配置,或者想要直接修改配置,可以将configureWebpack配置成一个函数方法。代码如下:

// vue.config.js
module.exports = {configureWebpack: config => {if(process.env.NODE_ENV === 'production') {// 为生产环境进行配置} else {// 为开发环境进行配置}}
}

采用configureWebpack的方式会直接覆盖同名的配置,如果只想修改某个配置的某一个子项,例如loader或plugin的选项,则很可能会覆盖掉不想要覆盖的默认配置,除非把这些默认配置再写一遍。

chainWebpack配置:

// vue.config.js
module.exports = {chainWebpack: config => {config.module.rule('vue').use('vue-loader').tap(options => {// 修改选项return options})// 替换一个规则的loaderconst svgRule = config.module.rule('svg')svgRule.uses.clear() // 清除已有的所有loader// 添加要替换的loadersvgRule.use('use-svg-loader').loader('use-svg-loader')}
}

chainWebpack项是一个函数,会接收一个基于webpack-chain的实例,该配置项提供了一个Webpack原始配置的上层抽象,使得可以定义具名的loader规则和具名的插件,并在后期对它们的选项进行修改。
chainWebpack提供了颗粒度更细的配置修改。

比起直接修改configureWebpack配置,chainWebpack的表达能力更强,也更为安全。
根据自己的场景自己选择。

http://www.lryc.cn/news/480720.html

相关文章:

  • ubuntu主机搭建sysroot交叉编译环境
  • Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码...
  • 实验三 JDBC数据库操作编程(设计性)
  • 各种环境换源教程
  • Rust项目中的Labels
  • Jmeter的安装和使用
  • 初识Electron 进程通信
  • go语言中的通道(channel)详解
  • 【JS】内置类型的相关问题
  • Mac上无法访问usr/local的文件
  • http 常见状态码
  • 代码训练营 day59|并查集
  • Node.js——fs模块-路径补充说明
  • 华为ENSP--ISIS路由协议
  • 论软件可靠性设计及其应用
  • Android中桌面小部件framework层使用到的设计模式
  • 【JavaEE进阶】HTML
  • ElasticSearch 添加IK分词器
  • 可视化建模与UML《顺序图实验报告》
  • Mac的极速文件搜索工具,高效管理文件
  • 公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
  • 工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置
  • window下安装rust 及 vscode配置
  • 【数据结构】【线性表】单链表1—概念即创建(附C语言源码)
  • centos7的maven配置
  • day57 图论章节刷题Part08(拓扑排序、dijkstra(朴素版))
  • 【Steam登录】protobuf协议逆向
  • git 对已提交的说明进行编辑
  • CTF —— 网络安全大赛
  • 【大数据测试spark+kafka-详细教程(附带实例)】