一、一句话介绍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命令!