gpt4 book ai didi

javascript - 使用 Nodejs 创建/更新 JavaScript 文件/代码

转载 作者:行者123 更新时间:2023-12-02 23:30:33 25 4
gpt4 key购买 nike

我需要创建一个 JavaScript 文件,其中应包含这样的代码。

const students= require('students');
const lecturers = require('lecturers');

const people = [
{
name: 'student',
tag: 'student',
libName: 'students'
},
{
name: 'lecturer',
tag: 'lecturer',
libName: 'lecturers '
}
]

module.exports = people;

目前我设法使用nodejs中的fs模块创建这个文件。像这样

let peoples = {
name: 'student',
tag: 'student',
libName: 'students'
};

let data = `
const ${peoples.libName} = require('${peoples.libName}');
const people = [
${providers}
]
module.exports = people;
`;

fs.writeFile(".pep.config.js", data, function(err) {
if (err) {
console.log('Fail')
}
console.log('Success')
});

如何将值(人员对象)添加到人员数组中并将 require 语句添加到现有文件中?使用当前方法,我一次只能添加一个数据。像这样。

const students= require('students');

const people = [
{
name: 'student',
tag: 'student',
libName: 'students'
}
]

module.exports = people;

最佳答案

根据您的设置,最简单的方法,恕我直言:使用 anchor 作为注释来了解数组的边界:

   const providers = [
//ANCHOR_PROVIDERS_START
${providers}
//ANCHOR_PROVIDERS_END
]

然后更新,例如:

fileContent.replace(
'//ANCHOR_PROVIDERS_END',
`,${moreProviders}\n//ANCHOR_PROVIDERS_END`
);

您还可以创建一个函数来使用起始 anchor 覆盖现有内容。

但是,也许使用 JSON 更灵活:

   const providers = JSON.parse(
${providersAsJsonArray}
);//ANCHOR_PROVIDERS_END

因此,您可以检索数组,按照您喜欢的方式更改它,然后将其设置回文件,如下所示:

fileContent.replace(
/(const providers = JSON.parse\(\n)(.+)(\n\s*\);\/\/ANCHOR_PROVIDERS_END)/m,
(match, starting, sjson, closing) => {
const json = JSON.parse(sjson);
// do something with json, which represents the existing array
json.push({ some: 'new', value: 'is now inserted' });
// inject the new content
return `${starting}${JSON.stringify(json)}${closing}`;
}
);

本着这种精神,并且因为这变得有点乏味,您还可以在相邻的 .json 文件中声明您的数据,并从 .pep.config.js 读取它以填充您的变量。您甚至可以 require 它,但要小心 requirecache不会为您提供过时版本的 JSON。

关于javascript - 使用 Nodejs 创建/更新 JavaScript 文件/代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56523887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com