当前位置: 首页 > 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.xdnf.cn/news/1294381.html

相关文章:

  • 单片机启动流程详细介绍
  • 高防CDN和高防IP的各自优势
  • RabbitMQ:Windows版本安装部署
  • STM32H743开发周记问题汇总(串口通讯集中)
  • golang语言和JAVA对比
  • 一条n8n工作流
  • SVN提交服务器拒绝访问的问题
  • Linux 桌面到工作站的“性能炼金术”——开发者效率的 6 个隐形瓶颈与破解方案
  • 服务器硬件电路设计之 I2C 问答(五):I2C 总线数据传输方向如何确定、信号线上的串联电阻有什么作用?
  • 【MCP开发】Nodejs+Typescript+pnpm+Studio搭建Mcp服务
  • 从零到一:TCP 回声服务器与客户端的完整实现与原理详解
  • 基于UniApp的智能在线客服系统前端设计与实现
  • 人工智能入门①:AI基础知识(上)
  • 18.10 SQuAD数据集实战:5步高效获取与预处理,BERT微调避坑指南
  • InnoDB如何解决脏读、不可重复读和幻读的?
  • 公司项目用户密码加密方案推荐(兼顾安全、可靠与通用性)
  • HiSmartPerf使用WIFI方式连接Android机显示当前设备0.0.0.0无法ping通!设备和电脑连接同一网络,将设备保持亮屏重新尝试
  • antdv Modal的简单使用
  • Hive 创建事务表的方法
  • 18. parseInt 的参数有几个
  • 开源工具can-utils的使用
  • Docker 在 Linux 中的额外资源占用分析
  • 云计算-实战 OpenStack 私有云运维:服务部署、安全加固、性能优化、从服务部署到性能调优(含数据库、内核、组件优化)全流程
  • OpenCV常见问题汇总
  • Java JDK8环境配置
  • 基于Java的Markdown转Word工具(标题、段落、表格、Echarts图等)
  • 药房智能盘库系统:基于CV与时间序列预测的库存革命
  • 《算法导论》第 22 章 - 基本的图算法
  • Kubernetes-03:Service
  • Notepad++插件开发实战