您的位置:

npm-i全面解析

一、一句话介绍npm-i

npm-i是npm命令行工具中最常用的命令之一,用于安装(install)npm软件包(package)到当前项目或全局环境中。

二、npm-i基本用法

1、安装本地软件包:

npm i package-name
例:安装React.js:npm i react

2、安装全局软件包:

npm i -g package-name
例:安装typescript:npm i -g typescript

3、安装指定版本的软件包:

npm i package-name@version
例:安装React.js的版本16.8.4:npm i react@16.8.4

4、安装软件包并添加到生产依赖(dependencies)中:

npm i package-name --save

5、安装软件包并添加到开发依赖(devDependencies)中:

npm i package-name --save-dev

6、安装软件包并添加到可选依赖(optionalDependencies)中:

npm i package-name --save-optional

三、npm-i常用参数

1、--registry:指定npm仓库源(registry)地址。如:

npm i package-name --registry=http://registry.npm.taobao.org

2、--verbose:输出详细安装过程。

3、--force:强制安装,即使软件包的版本和当前环境不兼容。

4、--ignore-scripts:不执行软件包中的install脚本。

5、--production:只安装生产依赖。

6、--no-optional:不安装可选依赖。

7、--no-save:不自动将软件包添加到依赖中。

四、npm-i常见问题解决

1、网络问题:npm可能连接不上外网npm仓库,可以换成淘宝镜像,使用--registry参数指定淘宝镜像地址,如:--registry=http://registry.npm.taobao.org

2、软件包版本冲突:当安装的软件包和当前环境已有软件包版本冲突时,可以使用npm ls命令检查软件包依赖树以及版本情况,尝试手动删除软件包并重新安装。

3、package.json问题:package.json可能缺少某些依赖信息,需要手动添加或修正。

五、npm-i黑科技:npm install phantomjs -g的教训

phantomjs是已经弃用的、用于模拟浏览器的Node.js模块,但是npm install phantomjs -g却隐藏着巨大的安全问题。由于npm的模块安装机制,任何一个模块都有可能在全局范围内运行,如果攻击者控制了一个模块,那么在全局环境下这个模块可以执行任何可执行文件。

因此,千万不要在开发过程中或者发布模块时,使用npm install phantomjs -g命令!