我的生成器中具有以下标准文件夹结构。我目前正在苦苦挣扎的任务是,我目前有一个模板化的_package.json,我已将其写入主流磁盘。我要合并的package.json中有一个变量,它是生成器项目的实际版本。基本上,我希望能够通过新生成的api项目的package.json来确定使用哪个版本的生成器来构建项目,以便我可以定位较旧的版本并将其标记为要更新。
我试图通过以下提示代码在生成器的各个步骤(例如,prompting.js和Writing.js)中实现这一目标:
var fs = require('fs');
let pkgGeneratorAPIVersion = JSON.parse(fs.readFileSync('../../package.json', 'utf8'));
但是它不起作用。我不断收到以下错误:
Error: ENOENT: no such file or directory, open 'package.json'
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at module.exports.prompt.answers
我尝试了各种相对路径都无济于事。有没有更好的方法来解析json文件?我的相对路线偏离了吗?任何帮助将不胜感激。
答案 0 :(得分:1)
我最终通过以下内容对其进行了修复:
var pkgJSON = require('../../package.json');
this.answers.corePkgGeneratorAPI = JSON.parse(JSON.stringify(pkgJSON)).version;