npm-install

安装一个npm包

概要

npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <git-host>:<git-user>/<repo-name>
npm install <git repo url>
npm install <tarball file>
npm install <tarball url>
npm install <folder>

alias: npm i
common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]

描述

这个命令用于安装项目的所有依赖,或者安装指定包及包的依赖。并且会安装package-lock或者shrinkwrap文件。请看 package-lock.json 和 npm-shrinkwrap。

完整的包是:
  • a)有着package.json文件的文件夹
  • b)把上 (a) 压缩的压缩文件形式
  • c)把 (b) 上传,生成一个线上地址
  • d)将 (c) 以< name >@< version >的方式会发布于注册表机构
  • e)可对 (d) 设置< name >@< tag >
  • f) (e) 中应满足命名一个"latest"的标签
  • g)若包源码托管于远程仓库,则还会有< git remote url > 指向 (a)
npm install (在包目录中,没带参数):
  • 在本地node_modules文件夹中安装依赖项。

  • 若加了-g或者--globe参数,则会安装到全局的包文件夹中。

  • 默认情况下,npm install 会安装在package.json下有依赖项关系的所有模块。

  • 若给了 --production 标志,或者当NODE_ENV环境变量设置为production,npm将不会安装在devDependencies列出的模块。

npm install < folder >

将指定folder中的包作为符号链接安装到当前目录中。包的依赖关系将在链接之前被安装。

在本地e盘的npmpkg目录中有一个包testforpkg,想把它安装当前所在目录中。

> npm install e:/npmpkg/testforpkg
npm install < tarball file >

安装压缩文件包。文件名必须使用.tar,.tar.gz或.tgz作为扩展名。

>  npm install ./package.tgz
npm install < tarball url >

获取tarball网址,然后安装它。为了区分这个和其他选项,参数必须以“http://”或“https://”开始

> npm install https://github.com/indexzero/forever/tarball/v0.5.6
npm install [< @scope>/]< name>

安装某打标签的包还可以写成 name@tag,若直接安装name,其实是默认安装的是“latest“标签的包,即name@latest。

> npm install sax

# 等同于

> npm install sax@latest

npm install在默认情况下将指定的包保存到dependencies。另外,您可以使用一些附加标志控制他们在哪里以及如何保存:

  • -P, --save-prod:包会出现在你的dependencies。这是默认的,除非-D或-O存在。

  • -D, --save-dev:包会出现在你的devDependencies。

  • -O, --save-optional:包会出现在你的optionalDependencies。

  • --no-save:防止保存到dependencies。

  • -E, --save-exact:保存的依赖关系将使用精确的版本进行配置,而不是使用npm的默认的semver范围运算符。

  • -B, --save-bundle:保存的依赖关系也将被添加到您的bundleDependencies列表中。

此外,如果你有一个npm-shrinkwrap.json或package-lock.json那么它也会被更新。

< scope>是可选的。将包从与指定scope的注册表中下载。如果没有注册表给定scope,则使用默认注册表。

注意:如果你的作用域名称没有包含@,那么npm会将其解释为GitHub存储库,如下所示。

# 下载地址:https://github.com/githubname/reponame
> npm install githubname/reponame

注意:如果< name>在当前工作目录中有一个文件或文件夹,那么它将尝试安装该文件或文件夹,如果该文件或文件夹无效,则只尝试通过名称获取该包。

npm install [< @scope>/]< name>@< tag>:

安装指定标签引用的包的版本。

> npm install sax@latest
> npm install @myorg/mypackage@latest
npm install [< @scope>/]< name>@< version>:

安装指定版本的包。

> npm install [email protected]
> npm install @myorg/[email protected]
npm install [< @scope>/]< name>@< version range>

安装与指定版本范围匹配的软件包版本。请注意,大多数版本范围必须放在引号中,以便您的shell将其视为单个参数。

> npm install sax@">=0.1.0 <0.2.0"
> npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
npm install < git remote url>

从托管的git安装包。

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]

< protocol>是以下之一git,git+ssh,git+http,git+https,或 git+file。

#< commit-ish> 表示包某次提交的哈希值。若指定,则clone包的某次提交。

#semver : < semver> 表示commit-ish具有的格式。< semver>可以是任何有效的范围或精确version。

若#< commit-ish>和< semver>都没有指定,则使用包的master分支。

若安装的包中包含一个prepare脚本,那么它会在打包安装完成之前运行。

npm install < githubname>/< githubrepo>[#< commit-ish>]
> npm install mygithubuser/myproject
npm install github:< githubname>/< githubrepo>[#< commit-ish>]

通过git,url地址 https://github.com/githubname/githubrepo 来安装包。

若commit-ish具有semver格式,还可指定semver。没指定commit或semver,则使用master。

>  npm install github:mygithubuser/myproject
npm install gitlab:< gitlabname>/< gitlabrepo>[#< commit-ish>]:

通过git,url地址 https://gitlab.com/gitlabname/gitlabrepo 来安装包。

若commit-ish具有semver格式,还可指定semver。没指定commit或semver,则使用master。

> npm install gitlab:mygitlabuser/myproject
> npm install gitlab:myusr/myproj#semver:^5.0
其他参数
  • -f 或 --force参数将强制NPM获取远程资源,即便本地副本已存在。
> npm install sax --force
  • --ignore-scripts参数将导致npm不执行package.json中定义的任何脚本。

  • --link在某些情况下,参数将导致npm先全局安装,再链接到本地​​空间。

  • 这个--no-bin-links参数将阻止创建符号链接的包。

  • 该--no-optional参数将阻止安装optional的依赖项。

  • 的--no-shrinkwrap说法,这将忽略 package lock 或 shrinkwrap 文件,并使用package.json来代替。

  • 这个--no-package-lock参数会阻止npm创建一个 package-lock.json文件。

  • 该--nodedir=/path/to/node/source参数将允许npm找到节点源代码,以便npm可以编译本地模块。

  • 这个--only={prod[uction]|dev[elopment]}参数将会导致只有 devDependencies或者只有非devDependencies被安装,而不管NODE_ENV。

results matching ""

    No results matching ""