Vue Cli 中 Webpack 配置的3种写法

本文介绍如何通过vue.config.js中的configureWebpack和chainWebpack修改Vue项目的Webpack配置,包括自定义loader解析markdown文件及修改目录别名。

很多时候,vue-cli默认的webpack配置并不能满足项目需求,比如需要解析markdown文件为页面。这时,便可以在vue.config.js中设置webpack。

参考vue-cli的官方教程,我们可以看到有2种方式可以对webpack进行修改:

  • configureWebpack 简单配置
  • chainWebpack 链式操作

使用自定义loader解析markdown文件并修改@别名目录为例

configureWebpack 简单配置

有2中写法,一种是直接按照webpack基本配置设置一个JSON对象;另一种是设置一个函数,在函数内,你可以直接修改配置,或者返回一个将会被合并的对象。

写法一:

configureWebpack: {
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'examples'),
    }
  },
  module: {
    rules: [
      {
        test: /\.md$/,
        use: [
          'vue-loader',
          path.resolve(__dirname, "./webpack/markdown-loader.js"),
        ],
      }
    ]
  }
},

写法二:

configureWebpack: config => {
  config.resolve.alias['@'] = path.resolve(__dirname, 'examples');
  config.module.rules.push({
    test: /\.md$/,
    use: [
      'vue-loader',
      path.resolve(__dirname, "./webpack/markdown-loader.js"),
    ],
  });
},

chainWebpack 链式操作

链式操作可以更细粒度的控制其内部配置。

chainWebpack: config => {
  config.resolve.alias
    .set('@', path.resolve(__dirname, 'examples'))
  config.module
    .rule("md")
    .test(/\.md/)
      .use("vue")
        .loader("vue-loader")
        .end()
      .use("markdown")
        .loader(path.resolve(__dirname, "./webpack/markdown-loader.js"))
        .end();
},

以上两种写法达到的效果完全相同,其中链式操作里的use可以理解为在基本配置中的use数组中,给对应的数据项命名,可以任意描述,而不是代表使用的loader。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值