npm
是NodeJS默认的包管理工具,安装NodeJS后通常是自带的。不过不仅是NodeJS,在浏览器客户端开发的前端项目中,我们也可以用npm
来管理工程,npm
有安装管理第三方模块、解决依赖、发布模块等功能。本文简单介绍一些npm
的常见用法。
国内访问npm
公共仓库是比较慢的,我们可以使用淘宝提供的公共npm
镜像网站,在命令行中执行以下命令即可配置。
npm config set registry https://registry.npmmirror.com/
执行这条命令后,实际上会在~/.npmrc
文件中写入以下内容:
registry = "https://registry.npmmirror.com/"
npm -v
:查看npm版本
npm help <command>
:查看npm帮助,例如:npm help npm
,查看全局帮助,npm help install
,查看npm install的帮助
npm install npm -g
:更新到最新npm
npm install
:在一个有package.json
的目录里使用,会安装当前模块的所有依赖
全局安装:安装到node_modules的全局目录,将模块bin目录链接到系统可执行目录,用于全局使用的命令行工具安装,用法:npm install <module> -g
本地安装:安装到当前文件夹node_modules目录,用于一些当前工作目录的依赖库安装,用法:npm install <module>
注意:有些npm包,既是框架又有命令行工具,有些包则分开打包,其中十分复杂,建议安装一个npm包前,仔细阅读该包的使用手册,使用其推荐的安装方式,大部分都是用本地安装。
可选参数(使用这两个参数前提是项目根目录有package.json
):
--save-dev
:安装的同时将这个依赖项写到package.json
里的devDependencies
里--save
:安装的同时将这个依赖项写到package.json
里的dependencies
里npm ls -g
:查看全局安装的模块
注意:该命令会同时分析依赖树,可能输出的列表非常长,可以用npm ls -g > list.txt
npm ls
:查看当前目录可用的模块
注意:同上
npm view <module>
注意:该命令会输出缓存中最新的模块信息,而不是本地已经安装的,本地已安装的版本信息npm list
即可查看
npm uninstall <module>
npm uninstall <module> -g
注:开发中,我们如果想要删除一个不用的依赖模块,更常见直观的做法是在package.json
中删除该模块依赖,然后执行npm install
。
npm update <module>
注意:
npm help update
npm search [-l] <pattern>
注意:
npm cache clean
清理缓存,一般只用这个
我们项目中的package.json
通常会定义一些scripts
,调用各种工具完成打包、测试等工作,这些命令可以用npm run
调用,比如npm run start
,表示调用start
这个scripts
配置。
注意:npm run start
可以简写为npm start
,这两个命令是一个意思。
npm init
:初始化package.json,根据CLI提示输入信息,即可自动创建package.jsonnpm adduser
:创建npm账户,根据CLI提示,输入用户名,密码,邮箱npm publish
:发布当前目录下的模块注:如果要发布到公共npm仓库,我们需要在~/.npmrc
中把国内镜象配置暂时删掉
npm
使用体验非常差,最大的问题就是它会在工程中下载数以万计的小文件,不仅安装奇慢,而且删除都删不掉。
Windows下可以使用Shift+Delete
键,这样能够跳过回收站,直接永久删除,Linux下直接rm -r
即可。