configureWebpack与chainWebpack

前端精髓

共 1372字,需浏览 3分钟

 ·

2021-12-30 12:28


vue.config.js 中 configureWebpack 与 chainWebpack 区别


configureWebpack 和 chainWebpack的作用相同,唯一的区别就是它们修改 webpack 配置的方式不同:


configureWebpack 通过操作对象的形式,来修改默认的 webpack 配置,该对象将会被 webpack-merge 合并入最终的 webpack 配置。


chainWebpack 通过链式编程的形式,来修改默认的 webpack 配置。

configureWebpack

如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中。


如果这个值是一个函数,则会接收被解析的配置作为参数。该函数既可以修改配置并不返回任何东西,也可以返回一个被克隆或合并过的配置版本。


如果你需要基于环境有条件地配置行为,或者想要直接修改配置,那就换成一个函数 (该函数会在环境变量被设置之后懒执行)。该方法的第一个参数会收到已经解析好的配置。在函数内,你可以直接修改配置,或者返回一个将会被合并的对象。


configureWebpack 不支持 vue cli 的语法糖或者说是不支持链式编程配置形式。只能通过操作对象的形式,来修改默认的 webpack 配置。


下面来看一下 configureWebpack 配置方式:

configureWebpack: {  resolve: {    // 别名配置    alias: {      'assets': '@/assets',      'common': '@/common',      'components': '@/components',      'network': '@/network',      'configs': '@/configs',      'views': '@/views',      'plugins': '@/plugins',    }  }},

chainWebpack

Vue CLI 内部的 webpack 配置是通过 webpack-chain 维护的。这个库提供了一个 webpack 原始配置的上层抽象,使其可以定义具名的 loader 规则和具名插件,并有机会在后期进入这些规则并对它们的选项进行修改。


config  .plugin(name)  .use(WebpackPlugin, args)


参数说明:

name 是 webpack-chain 里的key,就是要加入的插件在 webpack-chain 配置里的 key ,就是我们自定义插件的名字,一般我们都保持跟插件名称相同。


WebpackPlugin 使用的 webpack 插件名,在这里,可以直接使用插件,无需进行实例化,就是不需要 new WebpackPlugin()


args 插件的参数信息。特别注意,args是一个数组,例如 [{},{}] 这种方式,可以配置多个插件实例。


浏览 36
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报