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

更改webpack默认配置项

vue.config.js

vue.config.js代码中,解释这段代码
const webpack = require('webpack')module.exports = {chainWebpack: config => {config.plugin('provide').use(webpack.ProvidePlugin, [{$: 'jquery',jquery: 'jquery',jQuery: 'jquery','window.jQuery': 'jquery'}])},configureWebpack: {resolve: {alias: {'form-urlencoded': require.resolve('form-urlencoded'),},},},
}

这段代码用于在 Vue.js 项目中自定义 Webpack 配置,导出了一个包含两个主要属性的对象:chainWebpack 和 configureWebpack,分别以不同方式修改 Webpack 配置。

1. chainWebpack 部分

chainWebpack: config => {config.plugin('provide').use(webpack.ProvidePlugin, [{$: 'jquery',jquery: 'jquery',jQuery: 'jquery','window.jQuery': 'jquery'}])
}
  • 作用:通过 chainWebpack 函数以链式方式修改 Webpack 配置,利用 Vue CLI 提供的 API。
  • 具体功能:
    • config.plugin('provide'):引用 Webpack 的 ProvidePlugin 插件,该插件可以将指定的模块自动注入到每个模块中,无需显式导入。
    • use(webpack.ProvidePlugin, [{...}]):配置 ProvidePlugin,将 jquery 模块绑定到多个变量名:
      • $:将 jquery 模块映射到全局 $ 变量。
      • jquery:映射到 jquery 变量。
      • jQuery:映射到 jQuery 变量。
      • 'window.jQuery':将 jquery 模块绑定到全局的 window.jQuery。
    • 效果:在项目的任何 JavaScript 文件中,可以直接使用 $, jquery, jQuery 或 window.jQuery 来访问 jQuery 库,无需手动 import 或 require jQuery。例如,写 $('.selector') 即可直接调用 jQuery 方法。

2. configureWebpack 部分

configureWebpack: {resolve: {alias: {'form-urlencoded': require.resolve('form-urlencoded'),},},
}
  • 作用:通过 configureWebpack 对象直接修改 Webpack 的配置,适合添加或覆盖配置项。
  • 具体功能:
    • resolve.alias:用于设置模块解析时的别名,方便在代码中引用模块时使用简化的路径或名称。
    • 'form-urlencoded': require.resolve('form-urlencoded'):
      • 创建一个别名 'form-urlencoded',指向 form-urlencoded 模块的精确路径。
      • require.resolve('form-urlencoded') 会解析 form-urlencoded 模块的实际文件路径(通常是 node_modules 中的路径)。
    • 效果:在项目代码中,可以通过 import formUrlEncoded from 'form-urlencoded' 直接引入 form-urlencoded 模块,而无需写完整的路径。别名确保 Webpack 正确解析到该模块,特别是在模块路径可能不明确或需要特定版本时。

总结

  • chainWebpack:通过链式 API 配置 ProvidePlugin,使 jQuery 自动注入到全局变量 $, jquery, jQuery 和 window.jQuery,方便在代码中直接使用 jQuery。
  • configureWebpack:通过别名配置简化 form-urlencoded 模块的引用路径。
  • 应用场景:这段配置适用于需要在 Vue 项目中全局使用 jQuery(例如使用某些依赖 jQuery 的插件)以及需要引入 form-urlencoded 模块(常用于处理表单数据的 URL 编码)。

http://www.dtcms.com/a/328689.html

相关文章:

  • 第二十二天:指针与内存
  • 【C++详解】用红黑树封装模拟实现mymap、myset
  • 代码随想录刷题Day30
  • UnityWeb打包注意事项及与网页端通信
  • 初识c语言————排序方法
  • 【游戏开发记录】一款网游+修仙为背景的游戏
  • 美国英语 8 You‘re Going to Be Fine 早日康复
  • Dify 从入门到精通(第 32/100 篇):Dify 的日志分析与监控
  • 1688跨境寻源通API接入||跨境寻源通有哪些具体的功能和优势?
  • 反射的详解
  • CAP理论深度解析与工程实践指南
  • USB基础 -- USB2.0设备插入的过程
  • 陕西西安一家IPO四年亏损近25亿负债率攀升,控制权稳定性遭质疑
  • 力扣121:买卖股票的最佳时机
  • 100、【OS】【Nuttx】【构建】cmake 配置保存
  • Xsens惯性动作捕捉系统
  • 数据库事务隔离:详解及Java面试题
  • MyBatis-Plus 分页失效问题解析:@Param 注解的影响与解决方案
  • amis表单较验
  • Datawhale AI夏令营第三期多模态RAG方向 Task3
  • AAAI论文速递 | NEST:超图小世界网络让自动驾驶轨迹预测更精准
  • 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估计、贝叶斯回归、贝叶斯计算实践过程
  • 从聚合到透视:SQL 窗口函数的系统解读
  • 谷歌、facebook、tiktok广告账户多开怎么安全?亚马逊、ebay、shopee多店铺怎么做好?看看adspower工具,注册免费试用及实用技巧分享
  • SQL详细语法教程(一)--数据定义语言(DDL)
  • 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估计、贝叶斯回归、贝叶斯计算)实践
  • 4G模块 ML307A通过MQTT协议连接到阿里云
  • 数据科学与爬虫技术学习笔记
  • 基于机器学习的自动驾驶汽车新型失效运行方法
  • Win11和Mac设置环境变量