我使用md5 grunt task生成MD5文件名。现在,我想用任务回调中的新文件名来重命名HTML文件中的源代码。我想知道做这件事最简单的方法是什么。
发布于 2013-01-06 18:12:07
您可以使用简单的正则表达式:
var result = fileAsString.replace(/string to be replaced/g, 'replacement');
所以..。
var fs = require('fs')
fs.readFile(someFile, 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
var result = data.replace(/string to be replaced/g, 'replacement');
fs.writeFile(someFile, result, 'utf8', function (err) {
if (err) return console.log(err);
});
});
发布于 2014-08-01 10:39:37
也许“替换”模块(www.npmjs.org/package/replace)也适用于您。它不要求您先读后写文件。
改编自文档:
// install:
npm install replace
// require:
var replace = require("replace");
// use:
replace({
regex: "string to be replaced",
replacement: "replacement string",
paths: ['path/to/your/file'],
recursive: true,
silent: true,
});
发布于 2016-06-23 22:53:16
您可以在使用streams读取文件时对其进行处理。这就像使用buffers,但使用了更方便的API。
var fs = require('fs');
function searchReplaceFile(regexpFind, replace, cssFileName) {
var file = fs.createReadStream(cssFileName, 'utf8');
var newCss = '';
file.on('data', function (chunk) {
newCss += chunk.toString().replace(regexpFind, replace);
});
file.on('end', function () {
fs.writeFile(cssFileName, newCss, function(err) {
if (err) {
return console.log(err);
} else {
console.log('Updated!');
}
});
});
searchReplaceFile(/foo/g, 'bar', 'file.txt');
https://stackoverflow.com/questions/14177087
复制相似问题