使用NodeJS编辑JavaScript文件
如何使用nodeJS在JavaScript文件中查找和编辑属性值 例如:如果我有一个名为app.js的文件,其中包含以下代码使用NodeJS编辑JavaScript文件,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,如何使用nodeJS在JavaScript文件中查找和编辑属性值 例如:如果我有一个名为app.js的文件,其中包含以下代码 let title = "hello world"; document.getElementById("arr").innerHTML = title; 如何更改title let title=hello world的值;或者使用nodeJS的任何其他属性。与其尝试解析/编辑JS文件,为什么不使用类似JSON的易于序列化的东西呢 gulp任务可以将所需的任何值写入文件
let title = "hello world";
document.getElementById("arr").innerHTML = title;
如何更改title let title=hello world的值;或者使用nodeJS的任何其他属性。与其尝试解析/编辑JS文件,为什么不使用类似JSON的易于序列化的东西呢 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;
我能够使用正则表达式编辑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;
问题不是clearRead NodeJS文件文档,请尝试使用fs模块为什么要以编程方式更改JavaScript文件?当然这是可能的,但存在更好的方法。例如,使用配置文件,将其导入app.js,然后编辑/生成配置。或者,因为您无论如何都要使用gulp,所以在编译步骤中替换一些变量。另外,这个问题读起来像是一个典型的否定的例子。问题是我的吞咽文件监视js文件上的更改,而不仅仅是一个文件。因此,我不能使用单独的JSON文件来存储值,因为从上面看,它只会更改JSON文件的值:/。那么修改gulp watch?正如@pawel所提到的,请在问题中详细说明您试图实现的实际过程。以编程方式编辑javascript可能不是解决问题的最佳方法。@DilakshanSooriyanathan-这个答案应该解释如何让gulp监视对不同文件的更改