NPM NodeJS API没有很好的文档说明,但是检查代码会有所帮助。
在这里,我们找到以下字符串:
install.usage = "npm install" + "nnpm install <pkg>" + "nnpm install <pkg>@<tag>" + "nnpm install <pkg>@<version>" + "nnpm install <pkg>@<version range>" + "nnpm install <folder>" + "nnpm install <tarball file>" + "nnpm install <tarball url>" + "nnpm install <git:// url>" + "nnpm install <github username>/<github project>" + "nnCan specify one or more: npm install ./foo.tgz bar@stable /some/folder" + "nIf no argument is supplied and ./npm-shrinkwrap.json is " + "npresent, installs dependencies specified in the shrinkwrap." + "nOtherwise, installs dependencies from ./package.json."
我的问题是关于版本的,所以我们可以做:
hello-world@0.0.1安装的
0.0.1版本
hello-world。
var npm = require("npm");npm.load({ loaded: false}, function (err) { // catch errors npm.commands.install(["hello-world@0.0.1"], function (er, data) { // log the error or data }); npm.on("log", function (message) { // log the progress of the installation console.log(message); });});
我没有进行测试,但是我确信我们可以使用任何格式的
install.usage解决方案。
我编写了一个函数,该函数将
dependencies对象转换为可以传递给
install函数调用的数组。
dependencies:
{ "hello-world": "0.0.1"}
该函数获取
package.json文件的路径并返回字符串数组。
function createNpmDependenciesArray (packageFilePath) { var p = require(packageFilePath); if (!p.dependencies) return []; var deps = []; for (var mod in p.dependencies) { deps.push(mod + "@" + p.dependencies[mod]); } return deps;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)