安装包

介绍

包是 npm 用来表示开发人员可以用于其项目的工具的术语。这包括从库和框架(如 jQuery 和 AngularJS)到任务运行程序(如 Gulp.js)的所有内容。这些包将出现在一个名为 node_modules 的文件夹中,该文件夹还包含一个 package.json 文件。此文件包含有关所有包(包括任何依赖项)的信息,这些依赖项是使用特定包所需的其他模块。

Npm 使用命令行来安装和管理包,因此尝试使用 npm 的用户应该熟悉其操作系统上的基本命令,即:遍历目录以及能够查看目录的内容。

安装 NPM

请注意,要安装软件包,必须安装 NPM。

安装 NPM 的推荐方法是使用 Node.js 下载页面中的一个安装程序。你可以通过运行 npm -vnpm version 命令来检查是否已安装 node.js.

通过 Node.js 安装程序安装 NPM 后,请务必检查更新。这是因为 NPM 比 Node.js 安装程序更频繁地更新。要检查更新,请运行以下命令:

npm install npm@latest -g

如何安装包

要安装一个或多个软件包,请使用以下命令:

npm install <package-name>
# or
npm i <package-name>...

# e.g. to install lodash and express
npm install lodash express

注意 :这会将程序包安装在命令行当前所在的目录中,因此检查是否已选择相应的目录很重要

如果你当前的工作目录中已经有 package.json 文件并且其中定义了依赖项,那么 npm install 将自动解析并安装文件中列出的所有依赖项。你还可以使用 npm install 命令的简写版本:npm i

如果要安装特定版本的软件包,请使用:

npm install <name>@<version>

# e.g. to install version 4.11.1 of the package lodash
npm install lodash@4.11.1

如果要安装与特定版本范围匹配的版本,请使用:

npm install <name>@<version range>

# e.g. to install a version which matches "version >= 4.10.1" and "version < 4.11.1"
# of the package lodash
npm install lodash@">=4.10.1 <4.11.1"

如果要安装最新版本,请使用:

npm install <name>@latest

以上命令将在 npmjs.com 的中央 npm 存储库中搜索软件包。如果你不打算从 npm 注册表进行安装,则支持其他选项,例如:

# packages distributed as a tarball
npm install <tarball file>
npm install <tarball url>

# packages available locally
npm install <local path>

# packages available as a git repository
npm install <git remote url>

# packages available on GitHub
npm install <username>/<repository>

# packages available as gist (need a package.json)
npm install gist:<gist-id>

# packages from a specific repository
npm install --registry=http://myreg.mycompany.com <package name>

# packages from a related group of packages 
# See npm scope
npm install @<scope>/<name>(@<version>)

# Scoping is useful for separating private packages hosted on private registry from
# public ones by setting registry for specific scope
npm config set @mycompany:registry http://myreg.mycompany.com
npm install @mycompany/<package name>

通常,模块将本地安装在名为 node_modules 的文件夹中,该文件夹可以在当前工作目录中找到。这是 require() 将用于加载模块的目录,以使它们可供你使用。

如果你已经创建了 package.json 文件,则可以使用 --save(简写 -S)选项或其中一个变体自动将已安装的软件包作为依赖项添加到 package.json。如果其他人安装了你的软件包,npm 将自动从 package.json 文件中读取依赖项并安装列出的版本。请注意,你仍然可以通过稍后编辑文件来添加和管理依赖项,因此通常最好跟踪依赖项,例如使用:

npm install --save <name> # Install dependencies 
# or
npm install -S <name> # shortcut version --save 
# or
npm i -S <name>

只有在开发需要时才安装软件包并保存它们,而不是运行它们,而不是运行应用程序需要它们时,请遵循以下命令:

npm install --save-dev <name> # Install dependencies for development purposes
# or
npm install -D <name> # shortcut version --save-dev
# or
npm i -D <name>

安装依赖项

某些模块不仅提供供你使用的库,还提供一个或多个要通过命令行使用的二进制文件。虽然你仍然可以在本地安装这些软件包,但通常最好全局安装它们,以便可以启用命令行工具。在这种情况下,npm 会自动将二进制文件链接到适当的路径(例如/usr/local/bin/<name>),以便可以从命令行使用它们。要全局安装包,请使用:

npm install --global <name>
# or
npm install -g <name>
# or
npm i -g <name>

# e.g. to install the grunt command line tool
npm install -g grunt-cli

如果要在当前工作空间中查看所有已安装软件包及其关联版本的列表,请使用:

npm list
npm list <name>

添加可选的 name 参数可以检查特定包的版本。

注意: 如果你在尝试全局安装 npm 模块时遇到权限问题,请抵制发布 sudo npm install -g ... 以解决此问题的诱惑。授予第三方脚本以使用提升的权限在系统上运行是危险的。权限问题可能意味着你对 npm 本身的安装方式存在问题。如果你对在沙盒用户环境中安装 Node 感兴趣,可能需要尝试使用 nvm

如果你有构建工具或其他仅开发依赖项(例如 Grunt),你可能不希望将它们与你部署的应用程序绑定在一起。如果是这种情况,你将希望将其作为开发依赖项,在 devDependencies 下的 package.json 中列出。要将程序包安装为仅开发依赖项,请使用 --save-dev(或 -D)。

npm install --save-dev <name> // Install development dependencies which is not included in production 
# or
npm install -D <name>

你将看到该包然后被添加到你的 package.jsondevDependencies 中。

要安装下载/克隆的 node.js 项目的依赖项,你可以简单地使用

npm install
# or
npm i

npm 将自动从 package.json 读取依赖项并安装它们。

代理服务器背后的 NPM

如果你的 Internet 访问是通过代理服务器进行的,则可能需要修改访问远程存储库的 npm install 命令。npm 使用可以通过命令行更新的配置文件:

npm config set

你可以从浏览器的设置面板中找到代理设置。获得代理设置(服务器 URL,端口,用户名和密码)后; 你需要按如下方式配置 npm 配置。

$ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
$ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>

usernamepasswordport 字段是可选的。一旦你设置了这些,你的 npm installnpm i -g 等将正常工作。