CC 4.0 协议
本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
CopyRspackPlugin
将已存在的单个文件或整个目录拷贝到产物目录。
示例
- 拷贝一个文件。如果文件不存在,则插件会抛出错误。
patterns配置可以是一个字符串,或是一个包含多个对象的数组。
- 拷贝一个目录。如果目录中没有文件,则插件会抛出错误。
- 使用 glob pattern 来匹配并拷贝文件。
- 使用
to指定目标路径。
选项
from
- 类型:
string - 默认值:
undefined
拷贝的源路径,可以是绝对路径、相对路径、glob pattern,可以是文件或目录。
若传入相对路径,则是相对于 context 选项。
to
- 类型:
- 默认值: output.path
拷贝的输出路径,可以是绝对路径、相对路径或者是 Rspack 的模版字符串,例如 '[name].[hash][ext]'。当不指定 to 时,则相当于是 Rspack 的 output.path。
context
- 类型:
string - 默认值: context
context 是一个路径,它会被添加到 from 路径的前面,并从结果路径中移除。
context 可以是一个绝对路径或相对路径。如果它是一个相对路径,则基于 Rspack 的 context 转换为绝对路径。
只有当 from 包含 glob 时,context 才应该被显式设置。否则,context 会根据 from 是文件还是目录来自动设置:
- 如果
from是一个文件,则context是它的目录。输出路径将是文件名。 - 如果
from是一个目录,则context等于from。输出路径将是目录内容的相对路径(包括嵌套内容)。
toType
- 类型:
'dir' | 'file' | 'template' - 默认值:
undefined
指定 to 的类型,可以是目录,文件或 Rspack 的模版名,若不指定则会自动推断。
自动推断的规则:
dir:如果to没有扩展名,或以/结尾。file:如果to不是一个目录,并且不是一个模版。template:如果to包含一个 template pattern。
示例:
dir:
file:
template:
noErrorOnMissing
- 类型:
boolean - 默认值:
false
当没有找到对应的文件或目录时,是否忽略错误。
force
- 类型:
boolean - 默认值:
false
当产物中已经有同名的文件时,是否覆写该文件。
priority
- 类型:
number - 默认值:
0
指定同名文件的优先级。
当设置 force 为 true 时,如果匹配到同样的文件,优先级高的会覆写优先级低的。
globOptions
- 类型:
- 默认值:
undefined
设置拷贝时 glob 匹配的选项。
transform
- 类型:
- 默认值:
undefined
允许修改文件内容。
copyPermissions
- 类型:
boolean - 默认值:
false
是否将源文件的权限复制到目标文件。
这对于复制可执行文件、脚本或任何权限重要的文件特别有用。当设置为 true 时,插件将尝试在目标文件上设置与源文件相同的权限。
info
- 类型:
- 默认值:
undefined
允许你为拷贝的文件添加一些 assets info,这些信息可能会影响构建流程中的某些行为。
例如,默认情况下,被拷贝的 JS、CSS 文件会经过 Rspack 的 minimizer 进行压缩,如果你希望被拷贝的文件跳过压缩,可以设置 info.minimized 为 true。

