如何使用webpack-chain向ts-loader添加appendTsSuffixTo选项?

时间:2019-01-14 05:56:29

标签: javascript typescript vue.js webpack webpack-chain

简而言之,我如何使用webpack-loader向ts-loader插件添加以下选项:

options: {
  appendTsSuffixTo: [/\.vue$/]
}

目前,我已经为ts-loader设置了此设置(顶部是上下文)。底部config.plugin通话是给我麻烦的地方。

    chainWebpack: config => {
      config.module
        .rule('typescript')
        .test(/\.tsx?$/)
        .exclude
          .add(/node_modules/)
          .end()
        .use('ts-loader')
          .loader('ts-loader'),

      config
        .plugin('ts-loader')
        .tap( args => { return { appendTsSuffixTo: [/\.vue$/] } }
        )
    }

但这会引发异常:

  

无法读取未定义的属性'__expression'

webpack-loader docs并未确切描述添加选项时应该做什么。

添加该选项需要做什么?

1 个答案:

答案 0 :(得分:1)

查看doc上有关装载机的部分:

config.module
  .rule('typescript')
  .use('ts-loader')
    .tap(options => merge(options, {
      appendTsSuffixTo: [/\.vue$/]
    }));

更新

以下是modifying options对象的相关文档。

merging线程提供了很好的示例。

// preserve existing options
config.module
  .rule('typescript')
  .use('ts-loader')
    .tap(options => { ...options, {
      appendTsSuffixTo: [/\.vue$/]
    }});