Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用NodeJS编辑JavaScript文件_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

使用NodeJS编辑JavaScript文件

使用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任务可以将所需的任何值写入文件

如何使用nodeJS在JavaScript文件中查找和编辑属性值

例如:如果我有一个名为app.js的文件,其中包含以下代码

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监视对不同文件的更改