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

How to use webpack-chain to add appendTsSuffixTo options to ts-loader?

简单地说,我如何使用 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$/] } }
        )
    }

但这会引发异常:

Cannot read property '__expression' of undefined

webpack-loader docs 没有准确描述添加选项时应该做什么。

我需要做什么才能添加这个选项?

查看有关 modifying options 加载程序的部分:

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

更新

这是 merging 对象的相关文档。

这个 GitHub 话题提供了很好的例子。

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