我有一个build.config.xml
像这样的字符串$FABRIC_API_KEY
。我想用process.env.FABRIC_API_KEY
一个新文件替换它config.xml
(build.config.xml
应该保持不变)。我尝试使用CopyWebpackPlugin
,但似乎无法执行任何操作。
var CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
...
resolve: {
extensions: ['.ts', '.js', '.json', '.xml'],
...
plugins: [
ionicWebpackFactory.getIonicEnvironmentPlugin(),
new CopyWebpackPlugin([{
from: 'build.config.xml',
to: 'config.xml',
transform: function (content) {
content = content
.replace('$FABRIC_API_SECRET', process.env.FABRIC_API_SECRET)
.replace('$FABRIC_API_KEY', process.env.FABRIC_API_KEY);
return content;
},
}]),
],
};
该文件会执行其他操作(生成离子文件),并且其他所有操作都会按预期进行。没有错误或任何东西,config.xml
也不会创建。
如何复制文件并替换其中的字符串?我愿意使用其他插件。
也许因为OP许多事情发生了变化,但transform
该功能复制的WebPack-插件确实允许修改文件内容。不过,content
传递给函数的参数是一个缓冲区,因此可以像这样实现一个简单的字符串替换(注意对的调用toString()
):
new CopyWebpackPlugin([{
from: 'build.config.xml',
to: 'config.xml',
transform(content) {
return content
.toString()
.replace('$FABRIC_API_SECRET', process.env.FABRIC_API_SECRET)
.replace('$FABRIC_API_KEY', process.env.FABRIC_API_KEY);
},
}])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句