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

相关文章:

  • Git Bash
  • 导轨焊接机器人:重塑高效精准焊接的新标杆
  • VUE3中的内置 API
  • amis表单较验
  • SpringCloud(1)
  • 从“存得对”到“存得准”:MySQL 数据类型与约束全景指南
  • opencv:直方图
  • Java pdf工具
  • 想要PDF翻译保留格式?用对工具是关键
  • java中数组和list的区别是什么?
  • 双屏加固笔记本电脑C156-2:坚固与高效的完美融合
  • 如何在 Ubuntu 24.04 LTS Noble Linux 上安装 FileZilla Server
  • Prompt工程师基础技术学习指南:从入门到实战
  • 为什么要使用消息队列呢?
  • STM32学习笔记10—DMA
  • 408每日一题笔记 41-50
  • 2023 年全国硕士研究生招生考试真题笔记
  • C语言零基础第15讲:字符函数和字符串函数
  • 一个接口多个实现类,如何动态调用
  • 长篇音频制作(小说自动配音)完整教程
  • 15.卷积神经网络
  • 【题解】[CQOI2006] 洛谷P4196 凸多边形 /【模板】半平面交
  • 钻井泥浆搅拌机的设计cad1张三维图+设计说明书
  • 【Abp.VNext】Abp.Vnext框架模块学习
  • 服务器如何应对SYN Flood攻击?
  • 如何管理需求文档的版本历史
  • 【嵌入式电机控制#31】FOC:霍尔安装误差的补偿
  • MyBatis 中 XML 与 DAO 接口的位置关系及扫描机制详解
  • 深度学习——03 神经网络(2)-损失函数
  • Flutter网络请求实战:Retrofit+Dio完美解决方案