当前位置: 首页 > 面试题库 >

我可以从Node.js中运行的javascript安装NPM软件包吗?

羊冠玉
2023-03-14
问题内容

我可以从Node.js中运行的javascript文件安装NPM软件包吗?例如,我想要一个脚本,让我们称它为“
script.js”,该脚本以某种方式(…是否使用NPM …)安装了通常可通过NPM获得的软件包。在此示例中,我想安装“
FFI”。(npm安装ffi)


问题答案:

确实可以以编程方式使用 npm ,并且在文档的较早版本中对此进行了概述。此后,它已从官方文档中删除,但仍在源代码控制中使用以下语句:

尽管可以通过编程方式使用npm,但其API仅供CLI使用,并且不能保证其适用于任何其他目的。如果要使用npm可靠地执行某些任务,最安全的做法是使用适当的参数调用所需的npm命令。

npm的语义版本是指CLI本身,而不是基础API。 即使npm的版本指示根据semver尚未进行重大更改,也不能保证内部API保持稳定

在原始文档中,以下是所提供的代码示例:

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函数的第一个参数是数组。阵列的每个元素都是 npm 会尝试安装的模块。

npm-cli.js在源代码管理的文件中可以找到更高级的用法。



 类似资料:
  • 问题内容: 有人可以告诉我在哪里可以找到使用我安装的Node.js模块 吗? 问题答案: 全球图书馆 您可以运行以查看安装了哪些全局库以及它们的位置。使用用于显示人的路截断输出。如果您只想显示主软件包而不显示与其一起安装的子软件包(可以使用),则可以使用- 将显示所有软件包并仅获取全局安装的软件包,只需添加-g ie即可。 在Unix系统上,它们通常放在全局中或在全局中安装。如果将环境变量设置为此

  • 问题内容: 我正在尝试安装npm软件包(node-xmpp-server),但安装失败。以前,当我尝试安装全局安装而不是本地安装的软件包时,现在却根本没有安装。 请帮帮我。 npm install node-xmpp-server 错误是:npm ERR!errno -4048 npm错误!Windows_NT 6.3.9600 npm错误!argv“ c:\ Program Files \ no

  • 问题内容: 是否存在任何npm选项来在安装软件包时禁用安装后脚本?还是要重写package.json中的任何字段? 问题答案: 仅禁用脚本是不可能的。但是,您可以使用以下命令禁用所有脚本: 正如注释中提到的delbertooo一样,这也会禁用依赖项的脚本。

  • 问题内容: 我正在使用脱机网络,并且想使用npm安装angular-cli。我有一个angular- cli的zip文件,并使用最新的节点和npm版本。我正在使用命令:从文件夹中安装angular- cli。但是我不断收到此错误消息,告诉我我没有互联网连接(可以)。那么,如何在离线时使用从Github下载的zip来安装angular-cli? 谢谢你的帮助。 问题答案: 您只需将软件包及其所有依赖

  • 本文向大家介绍R从GitHub安装软件包,包括了R从GitHub安装软件包的使用技巧和注意事项,需要的朋友参考一下 示例 要直接从GitHub安装软件包,请使用devtools软件包: 要从ggplot2github安装: 上面的命令将安装ggplot2与master分支相对应的版本。要从存储库的另一个分支进行安装,请使用ref参数提供分支的名称。例如,以下命令将安装软件包的dev_general

  • 问题内容: 如何找到已安装的node.js / npm 软件包 的版本? 这将打印npm本身的版本: 这将显示一个神秘的错误: 这将 在注册表上 打印软件包版本(即可用的最新版本): 如何获得已 安装的版本 ? 问题答案: 用于本地软件包或全局安装的软件包。 您可以通过传递特定软件包的名称作为参数来查找其版本。例如,将导致: 或者,您可以直接运行而无需将软件包名称作为参数来查看所有软件包的版本: