如何使用nodeJS在JavaScript文件中查找和编辑属性值。
例如:如果我有一个名为app.js的文件,其中包含以下代码。
let title = "hello world";
document.getElementById("arr").innerHTML = title;
如何使用nodeJS更改 title let title = "hello world";
或任何其他属性的值。
答案 0 :(得分:0)
为什么不使用易于序列化的JSON之类的东西,而不是试图解析/编辑JS文件?
您的gulp任务可以写入文件所需的任何值:
const fs = require('fs')
fs.writeFileSync('./blah.json', JSON.stringify({ title: "whatever" }))
然后您的代码引用JSON文件
const title = require('./blah.json').title
document.getElementById("arr").innerHTML = title;
答案 1 :(得分:0)
我能够使用正则表达式编辑JavaScript文件。我的代码如下:
function updateFile(filename, replacements) {
return new Promise(function(resolve) {
fs.readFile(filename, 'utf-8', function(err, data) {
var regex, replaceStr;
if (err) {
throw (err);
} else {
regex = new RegExp("(\\" + 'let' + "\\s* ]*" + replacements[0].rule + "\\s*=\\s*)([^\\n;}]+)([\\s*;}])");
replaceStr = "$1" + replacements[0].replacer + "$3";
data = data.replace(regex, replaceStr);
}
fs.writeFile(filename, data, 'utf-8', function(err) {
if (err) {
throw (err);
} else {
resolve();
}
});
});
})
}
用法:
var file = src/app.js
var myNewValue = "Hello";
updateFile(file, [{
rule: 'newApp',
replacer: myNewValue
}], function (err) {
sails.log.info((err));
});
这将编辑,
let newApp = lol; to let newApp = Hello;