首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue CLI 4.x,如何更改在babel-loader之前和ts-loader之后的规则加载器?

Vue CLI 4.x,如何更改在babel-loader之前和ts-loader之后的规则加载器?
EN

Stack Overflow用户
提问于 2020-11-20 11:35:53
回答 1查看 223关注 0票数 0

我想为我的代码添加自动注入try catchasync-catch-loader。我的项目是基于Vue CLI和TypeScript的。所以我需要使用webpack链来修改webpack的ts规则,如下图所示:

代码语言:javascript
复制
{
  test: /\.m?jsx?$/,
  enforce: 'pre',
  use: [
    {
      loader: '/Users/wjc/Documents/company/project/demos/async-test/node_modules/cache-loader/dist/cjs.js',
      options: {
        cacheDirectory: '/Users/wjc/Documents/company/project/demos/async-test/node_modules/.cache/ts-loader',
        cacheIdentifier: '41bf2514'
      }
    },
    {
      loader: '/Users/wjc/Documents/company/project/demos/async-test/node_modules/babel-loader/lib/index.js'
    },
    {
      loader: 'async-catch-loader',
      options: {
        catchCode: 'console.error(\'wujingchang\')'
      }
    }
    {
      loader: '/Users/wjc/Documents/company/project/demos/async-test/node_modules/ts-loader/index.js',
      options: {
        transpileOnly: true,
        appendTsSuffixTo: [
          '\\.vue$'
        ],
        happyPackMode: false
      }
    },
  ]
},

但是,我不知道如何在babel-loader之前和ts-loader之后的ts规则中添加async-catch-loader。是不是webpack链有功能可以做到呢?

EN

回答 1

Stack Overflow用户

发布于 2020-11-25 09:46:55

我已经有了答案。webpack-chain还没有提供实现它的方法。因此,我重写了ts规则,如下所示:

代码语言:javascript
复制
chainWebpack: (config) => {
  const tsRule = config.module.rule("ts");
  tsRule.uses.clear();
  tsRule
    .use("cache-loader")
      .loader("cache-loader")
      .end()
    .use("babel-loader")
      .loader("babel-loader")
      .end()
    .use("auto-inject-async-catch-loader")
      .loader("auto-inject-async-catch-loader")
      .tap(() => {
        return {
          catchCode: 'console.error(e)'
        }
      })
      .end()
    .use("ts-loader")
      .loader("ts-loader")
      .tap(() => {
        return {
                  transpileOnly: true,
                  appendTsSuffixTo: [
                    '\\.vue$'
                  ],
                  happyPackMode: false
                }
      })
      .end()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64923426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档