Node.js npm安装和npm列表的-g选项有什么作用?
Node.jsNode.js npm安装和npm列表的-g选项有什么作用?,node.js,macos,npm,Node.js,Macos,Npm,Node.jsnpm(节点包管理器)有一个-g命令行参数,我经常看到它被引用。例如,的文档说明使用npm install-g azure cli安装它 问题:-g选项有什么作用?Node.js包可以通过以下两种方式之一安装: 全球 局部 -g选项指示npm全局安装软件包。如果您希望能够直接从终端调用命令,则可以全局安装Node.js包 发件人: 安装npm软件包有两种方法:本地安装或全局安装。您可以根据使用软件包的方式选择要使用的安装类型 如果您想将它用作命令行工具,比如grunt CLI,
npm
(节点包管理器)有一个-g
命令行参数,我经常看到它被引用。例如,的文档说明使用npm install-g azure cli安装它
问题:-g
选项有什么作用?Node.js包可以通过以下两种方式之一安装:
- 全球
- 局部
-g
选项指示npm
全局安装软件包。如果您希望能够直接从终端调用命令,则可以全局安装Node.js包
发件人:
安装npm软件包有两种方法:本地安装或全局安装。您可以根据使用软件包的方式选择要使用的安装类型
如果您想将它用作命令行工具,比如grunt CLI,那么您可以全局安装它。另一方面,如果您希望使用Node's require之类的东西依赖于来自您自己模块的包,那么您希望在本地安装
要全局下载软件包,只需使用命令npm install-g,例如:
安装节点模块需要哪些选项?
写完这篇文章后,我很快发现了艾萨克的作品,而且很老,但仍然是他的作品(是的,npm@isaacs)。但我仍然认为下面的帖子是信息性的。
您可以安装npm
模块全局
或本地
-您已经知道了,但为什么
全局:npm安装-g some-module-a
:此模块旨在用作可执行文件(即CLI、文件监视程序、代码缩小程序、记录器等)李>
本地:npm安装some-module-b
:要通过导入导入导入并在应用程序中使用,var someModule=require('some-module)
global
模块是npm
的最佳理念之一。我们可以使用节点/javascript
轻松创建可执行文件。如果您的节点应用程序打算作为可执行文件运行,那么您将希望其他人在全局范围内安装它。如果它是一个实用程序、助手、应用程序等,那么您通常不希望在全局范围内安装它。因此,除非模块明确说明您应该使用-g
安装它,否则不要安装
再一次:如果你想在你的节点应用程序中使用名为some module
的模块-var someModule=require('some-module')
,那么npm从你的节点应用程序的根目录安装一些模块
,将其拉入你的本地节点模块
目录。如果您在全局而非本地安装了某个模块,则通常不会加载该模块,并且会显示未找到该模块的错误(即使可以加载全局模块-提示:)
那么,当您在全球范围内安装时,会发生什么情况呢?
npm install-g[some module]
将指定的节点模块安装在文件系统中较高的目录中(即在unix系统中通常为/usr/local/lib/node_modules
)。全局模块的最大用例是使用node编写的CLI
s(想想npm
,bower
,gulp
,grunt
,等等)
让我们看看在全局安装bower
时会发生什么:
*在命令行/终端中执行以下步骤
步骤:npm安装-g bower
说明:该模块(其所有文件和依赖项)保存在您的全局目录中(例如/usr/local/lib/node_modules/bower)
这里发生了别的事。现在您可以在命令行中运行bower
。太棒了
步骤:bower-v
-->生成已安装的bower版本(即1.6.5
)
解释:它现在是一个完全可执行的节点应用程序,使用bower
作为关键字。在bower
的文件中,您会发现一个bin
属性:
"bin": {
"bower": "bin/bower"
}
那么这一切是如何运作的呢?
npm
将从大多数可执行文件所在的位置创建一个节点,/usr/local/bin/bower
切换到模块所在的位置/usr/local/lib/node\u modules/bower/bin/bower
。该符号链接使得当可执行文件运行时,它可以引用原始模块中的其他文件,包括它的本地node\u模块
。很酷吧
*关于可执行文件的注意事项:如果您在/usr/local/bin/
和chmod u+x
(用户+可执行文件)中创建一个名为awesomeness
的文件,请将其删除。然后在其中编写一些脚本(在本例中,javascript使用顶部的#!/usr/bin/env node
)。然后,只需键入awesomeness
,就可以在命令行/终端的任何位置运行它
希望这有帮助。我知道对它进行更深入的研究在早期对我有所帮助。应该注意的是,在本地安装可执行文件也很好,请参见eslint
,browserify
,grunt cli
,xo
,等等,或者你只是不确定你是否想在第一个地方执行-然后你可以安装它在本地,并尝试。