使用CopyWebpackPlugin复制静态资源路径不符预期,求排查
CopyWebpackPlugin 路径配置问题解决
你的问题出在路径匹配时保留了完整的源路径层级:当设置 from: src/assets/static/**/* 时,CopyWebpackPlugin 会将匹配到的文件的完整相对路径(包括 src/ 前缀)作为输出路径的一部分,导致最终输出到 dist/src/assets/static/...。
下面是两种可行的修复方案:
方案一:使用 context 指定基础目录
通过 context 字段设置源文件的基础目录,让 from 路径相对于这个基础目录,输出时就会自动去掉 src/ 前缀:
new CopyWebpackPlugin({ patterns: [{ context: 'src', // 源文件的基础目录 from: 'assets/static/**/*', // 相对于context的路径 to: 'dist/[path][name][ext]', // 保留原有的子目录结构输出到dist下 }] })
方案二:调整 from 和 to 的匹配规则
如果不想设置 context,可以通过调整 from 的匹配范围,并使用占位符控制输出路径:
new CopyWebpackPlugin({ patterns: [{ from: 'src/assets/static', // 匹配整个目标目录 to: 'dist/assets/static/[path][name][ext]', // 直接指定输出根目录为dist/assets/static }] })
这两种方案都能让 src/assets/static/images 下的文件输出到 dist/assets/static/images 目录中,符合预期。
内容的提问来源于stack exchange,提问作者psop
相关产品推荐
相关产品推荐

