MD5 ファイル名を生成するには、 md5 grunt タスクを使用します。ここで、タスクのコールバックで HTML ファイル内のソースの名前を新しいファイル名に変更したいと考えています。これを行う最も簡単な方法は何だろうか。
質問する
248788 次
14 に答える
384
簡単な正規表現を使用できます。
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);
});
});
于 2013-01-06T10:12:07.440 に答える
42
おそらく、「置換」モジュール ( 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,
});
于 2014-08-01T02:39:36.823 に答える
31
ShellJS の一部である「sed」関数を使用することもできます...
$ npm install [-g] shelljs
require('shelljs/global');
sed('-i', 'search_pattern', 'replace_pattern', file);
完全なドキュメント ...
于 2014-07-16T07:33:11.763 に答える
5
ストリームを使用して、読み取り中にファイルを処理できます。バッファを使用するのと同じですが、より便利な 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');
于 2016-06-23T14:53:16.487 に答える
0
代わりに二重ストリームを使用します。ここに文書化されているようにnodejs doc 二重ストリーム
変換ストリームは、入力から何らかの方法で出力が計算される Duplex ストリームです。
于 2016-08-28T09:06:13.683 に答える