描述
npm install 是用来安装包和相关的依赖包的,如果存在package-lock文件,或是 shrinkwrap文件,yarn.lock文件,依赖包的安装将被其锁定,如果存在多个,则优先级如下:
- npm-shrinkwrap.json
- package-lock.json
- yarn.lock
命令
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <alias>@npm:<name>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>
aliases: add, i, in, ins, inst, insta, instal, isnt, isnta, isntal, isntall
可以看到 npm Install 也可以使用 npm add 命令别名。
命令示例
# 默认安装最新
npm install hrefjs-lite
# 根据tag名称安装
npm i hrefjs-lite@tagname
# 指定版本安装
npm i hrefjs-lite@1.0.8
# 安装最新版本
npm i hrefjs-lite@latest
# 根据版本范围安装对应的版本
npm i hrefjs-lite@"<1.0.8"
# 安装指定版本指定别名
npm i hrefjs-lite2@npm:hrefjs-lite@1.0.7
# 文件夹安装
npm i ./hrefjs-lite
# 指定tar压缩文件进行安装
npm i hrefjs-lite.tar
小技巧
我们知道,不同的包之间有可能存在不兼容的问题,也就是说最新版本的包对于其他包项目来说是不兼容的,这个时候可以根据提示,安装对应版本范围内的开发包。
npm install hrefjs-lite@"<1.0.8"
重点说一下使用别名安装npm对应的包,当在开发中,最新的包与旧版本的包可能存在不兼容,可以安装最新版本的包别名,来使用最新的包,还可以兼容旧版本。
npm install hrefjs-lite-other@npm:hrefjs-lite@1.0.7
npm install my-react@npm:react
npm install jquery2@npm:jquery@2
npm install jquery3@npm:jquery@3
npm install npa@npm:npm-package-arg
常用参数
- -P, --save-prod dependencies 依赖项安装,不指定-D或-O时,默认使用此项
- -D, --save-dev devDependencies 开发依赖项安装
- -O, --save-optional optionalDependencies 可选依赖项安装
- -g, --global 全局安装
- -B, --save-bundle bundleDependencies 依赖项安装
- -E, --save-exact 明确版本号安装,不使用^符号进行默认安装。
- -w, --workspace install 命令也是支持多工作区安装的
- -ws, --workspaces 设置为false时,禁用workspaces
关于workspaces
在开发中或多或少会对lerna有所了解,lerna是一个用来管理多个软件开发包的工具,那么npm如果需要管理多个软件包,可以在package.json文件中配置 workspaces ,这样就可以对多个软件包进行管理,npm的很多命令都是支持 workspace 的,比如 npm install 命令。
可以使用 npm init -w packages/a 来初始化 workspaces 多包管理。
{
"name": "my-workspaces-powered-project",
"workspaces": [
"packages/a"
]
}
不管是安装、升级,或是删除命令,都可以针对具体或所有的软件包进行操作。