webpack - Webpack - 在开发和生产中复制文件
问题描述
我编写了一个类似于copy-webpack-plugin 的插件,但提供了一些我需要的扩展功能。本质上,它只是将文件从复制src
到dist
其中并对它们执行一些操作。
当我运行生产构建时它工作正常,但在我的开发构建中,因为我正在使用devServer
并且所有内容都在内存中,所以这不起作用。
我该如何解决这个问题?
解决方案
事实证明,解决方案非常简单。您需要做的就是使用compliation.assets
添加更多文件,而不是像fs.writeFile
. 无论您是从内存还是从文件系统提供文件,这都将起作用。
例如,下面的代码将在path/to/file.ext
其中创建一个文件Hello World!
:
class MyCoolPlugin {
apply(compiler) {
compiler.hooks.emit.tapAsync('MyCoolPlugin', (compilation, done) => {
compilation.assets['path/to/file.ext'] = {
source: () => 'Hello World!', // The file's content
size: () => 10 // Should be the byte size of the content
};
done();
});
}
}
推荐阅读
- vue.js - Vue:Stripe 未定义 - 是否需要在任何地方都包含 Stripe?
- javascript - 如何处理异步/等待格式的回调函数的多个参数?
- pandas - 如何加速 Pandas 的“iterrows”
- linux - 使用与主机上不同的用户启动 Docker 容器
- plot - “BarLegend”蜱干扰
- python - 使用 Pytorch 和 PyInstaller 打包的 EXE 无法在另一台 PC 上运行
- javascript - 从 JSON 文件中删除未使用的密钥
- typescript - 如何以最少的反应将 TypeScript 常量传递给 Vue 模板
- c# - 如何使用 ARSoft.Tools.Net.Core DNSClient、IPAddress 和端口号连接到 DNS 服务器
- python - 在python中用指定的函数数据填充数据框