如何使用CopyWebpackPlugin

时间:2018-03-01 09:09:59

标签: webpack file-copying

作为构建过程的一部分,我已经使用CopyWebpackPlugin将一些文件从源复制到构建目录。 虽然复制我也想改变一些文件名。 例如,从test.tsx.snaptest.js.snap。 看起来这应该可以从文档中获得,因为它们path parameters for the templates但是它不清楚。 我想为一个文件目录这样做,所以也需要这么多。

目前这不起作用:

const config = {
  plugins: [
    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, './test/snapshots/[name].tsx.[ext]'),
        to: path.resolve(__dirname, './test/snapshots/[name].js.[ext]')
      }
    ])
  ]
}

2 个答案:

答案 0 :(得分:2)

您可以使用test option来捕获RegEx群组,然后您可以在to中使用这些群组。

[
  new CopyWebpackPlugin([
    {
      from: path.resolve(__dirname, './test/snapshots/*.tsx.*'),
      to: '[2].js.[ext]',
      test: /(.+\/)?(.+)\.tsx\.snap/
    }
  ], options)
]

答案 1 :(得分:0)

我对此可能有点晚了,但是我认为可能更简单的解决方案是使用toType选项来指定'to'选项是模板

const config = {
  plugins: [
    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, './test/snapshots'),
        to: path.resolve(__dirname, './test/snapshots/[name].js.[ext]'),
        toType: 'template',
      }
    ])
  ]
}