我正在编写一个工具,该工具使用package.json
生成节点项目。创建完package.json
之后,我想从节点脚本中的那个文件夹上运行npm install。
代码中的内容如下:
fs.writeFileSync(outputDir + '/package.json', JSON.stringify({
"name": _.kebabCase(options.name),
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": generateDependencies()
}, null, 2), 'utf8');
我在线阅读了您可能需要npm并使用它的信息,但是我看到的所有示例都处理了全局安装或当前项目中的安装。
我试图弄清楚npm.load
函数是否具有参数,我可以为它提供一个特定的路径,以从中加载node.js项目并在那里进行安装。诸如您如何传递全局参数之类的东西。例如:
const npm = require("npm");
npm.load({
projectPath: '<path_to_other_project>'
}, function (err) {
// catch errors
npm.commands.install(['packageName'], function (er, data) {
// log the error or data
});
npm.on("log", function (message) {
// log the progress of the installation
console.log(message);
});
});
问题在于,以编程方式使用npm的文献不多,我无法在源代码中找到解决方案。