如何在Symfony项目中使用webpack在copyfiles方法中设置目标路径?

tgabmvqs  于 2023-01-21  发布在  Webpack
关注(0)|答案(1)|浏览(205)

these instructions之后,我已经能够将文件从它们的位置复制到相对输出目录中。

.setOutputPath('public/assets/@BUILDNUMBER@')
.copyFiles({
    from: './assets/images/favicon',
})

文档继续解释说,有一个可选的“到”目标路径,我想成为“/images/favicon”(这样整个输出路径将是public/assets/@BUILDNUMBER@/images/favicon),但我希望写出来的方式在我运行webpack时会产生错误。

.setOutputPath('public/assets/@BUILDNUMBER@')
.copyFiles({
    from: './assets/images/favicon',
    to: 'images/favicon'
})

Conflict: Multiple assets emit different content to the same filename images/favicon. Original source assets/images/favicon/ms-icon-150x150.png

我会注意到,当前自动生成的@BUILDNUMBER@目录有一个images子目录,但没有favicons子目录,我也尝试过指向已经存在的images目录,但它产生了这个错误:

Error: EISDIR: illegal operation on a directory, open '/opt/my-site/public/assets/@BUILDNUMBER@/images'

那么,如何将copyFiles的“to”路径设置为指向public/assets/@BUILDNUMBER@/images或public/assets/@BUILDNUMBER@/images/favicon呢?

dsekswqp

dsekswqp1#

我想你漏掉了“to”参数里的占位符。
查看错误消息:

  • 冲突:多个资源向同一文件名images/favicon***发出不同的内容

Webpack认为“images/favicon”是文件名。
或许试试这个:

.copyFiles({
    from: './assets/images/favicon',
    to: 'images/favicon/[path][name].[ext]'
})

以下是支持的占位符列表:https://github.com/webpack-contrib/file-loader#placeholders
例如,如果您使用版本控制(.enableVersioning()),您还必须添加哈希值:

.copyFiles({
    from: './assets/images/favicon',
    to: 'images/favicon/[path][name].[hash:8].[ext]'
})

相关问题