我可以从 node 中运行的javascript文件安装NPM包吗.js?例如,我想要一个脚本,让我们称之为"script.js",它以某种方式(…是否使用NPM…)安装通常可通过NPM获得的软件包.在这个例子中,我想安装"FFI".(npm安装ffi)
我可以从 node 中运行的javascript文件安装NPM包吗.js?例如,我想要一个脚本,让我们称之为"script.js",它以某种方式(…是否使用NPM…)安装通常可通过NPM获得的软件包.在这个例子中,我想安装"FFI".(npm安装ffi)
以编程的方式使用npm确实是可能的,在较旧版本的文档中也有概述.它已从官方文档中删除,但仍存在于源代码管理中,声明如下:
尽管npm可以通过编程方式使用,但它的API是供用户使用的
npm的语义版本指的是CLI本身,而不是
在原始文档中,以下是提供的代码示例:
var npm = require('npm')
npm.load(myConfigObject, function (er) {
if (er) return handlError(er)
npm.commands.install(['some', 'args'], function (er, data) {
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.registry.log.on('log', function (message) { ... })
})
由于npm存在于node_modules
文件夹中,您可以使用require('npm')
像加载任何其他模块一样加载它.要安装模块,您需要使用npm.commands.install()
.
如果你需要查看源代码,那么它也在GitHub上.下面是一个完整的代码工作示例,相当于在没有任何命令行参数的情况下运行npm install
:
var npm = require('npm');
npm.load(function(err) {
// handle errors
// install module ffi
npm.commands.install(['ffi'], function(er, data) {
// log errors or data
});
npm.on('log', function(message) {
// log installation progress
console.log(message);
});
});
请注意,install函数的第一个参数是array.数组的每个元素都是npm将try 安装的模块.
更高级的用法可以在源代码管理的npm-cli.js
文件中找到.