npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。正因为有了npm,我们只要npm install
一行命令,就能安装别人写好的模块 。
npm命令配置
npm的用户配置存储在.npmrc
文件中,可用npm config get userconfig
查看路径。
.npmrc
配置文件位置(读取顺序)
- 项目配置文件:
/path/to/my/project/.npmrc
- 用户配置文件:
$HOME/.npmrc
- 全局配置文件:
$PREFIX/etc/npmrc
配置目录, 使用 npm config get prefix 获取$PREFIX - npm内嵌配置文件:
/path/to/npm/npmrc
与npm同级别, 使用which npm获取 npm的路径
具体的配置命令如下
npm config set[-g|--global] //给配置参数key设置值为value;npm config get //获取配置参数key的值;npm config delete //删除置参数key及其值;npm config list [-l] //显示npm的所有配置参数的信息;npm config edit //编辑配置文件npm get //获取配置参数key的值;npm set [-g|--global] //给配置参数key设置值为value;复制代码
npm 注册源配置
关于 registry 阮一峰老师的这篇文章讲的足够明白:
查看npm源地址: npm config get registry
使用官方镜像:npm config set registry https://registry.npmjs.org/
配置方式
1、通过给npm 命令添加注册源选项
临时使用淘宝镜像:
npm --registry=https://registry.npm.taobao.org [npm命令]// 通过 cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org复制代码
通过这种方式指定的注册源只在本条命令内有效;
2、通过 npm 的 config 命令配置指向国内镜像源
持久使用淘宝镜像:
npm config set registry https://registry.npm.taobao.org //配置源为淘宝的源复制代码
3、在配置文件.npmrc 文件写入源地址
.npmrc文件内容
registry=https://registry.npm.taobao.org //写入配置文件复制代码
备注:第1种配置方法是命令内有效,第2和第3种配置方法是用户内有效,如果想恢复默认配置,只需要将用户配置文件~/.npmrc删除即可;
npm init
npm init
用来初始化生成一个新的 package.json 文件。
npm init -f
已存在 package.json, 强制初始化
npm init -y
直接初始化, 跳过交互输入
npm install
给 npm 项目添加依赖模块
npm install -g
全局安装模块
npm install -P or -S
=> npm install --save
npm install -D
=> npm install --save-dev
npm install <name>@<version>
=> npm install vue@2.5.16
npm install url
=> https://github.com/vuejs/vue/archive/v2.5.16.tar.gz
or https://github.com/vuejs/vue/tarball/v2.5.16
npm install [<@scope>/]<name>@<tag>
=> 私有模块
npm uninstall
取消安装模块
npm uninstall -g
取消全局安装
npm uninstall -S
=> npm uninstall --save
npm uninstall -D
=> npm uninstall --save-dev
npm run
npm run 是 npm run-script 的别名用法,用来执行 package.json 中 script 对象中配置的脚本命令。例如:
{ "scripts": { "echo": "echo HELLO WORLD" }}复制代码
我们就可以通过 npm run echo
命令来执行这段脚本,像在 shell 中执行该命令 echo HELLO WORLD
一样,看到终端输出 HELLO WORLD.
npm scripts 的基本使用就是这么简单,它提供了一个简单的接口用来调用工程相关的脚本。关于更详细的相关信息,可以参考阮一峰老师的文章 .
简要总结:
1、npm run命令会自动在环境变量$PATH添加node_modules/.bin目录,所以scripts字段里面调用命令时不用加上路径,这就避免了全局安装NPM模块,可以直接运行本地模块。
2、直接运行npm run不给出任何参数,就会列出scripts属性下所有命令
3、npm run命令还可以添加参数。将参数传到所指定的命令行,需要参数之前要加上两个连词线 --
。
"scripts": { "test": "mocha test/"}复制代码
npm run test -- anothertest.js复制代码
等同于
mocha test/ anothertest.js复制代码
4、npm run 为每条命令提供了 pre- 和 post- 两个钩子(hook)。以npm run test为例,执行这条命令之前,npm 会先查看有没有定义 pretest 和 posttest 两个钩子,如果有的话,就会先执行 npm run pretest,然后执行 npm run test,最后执行 npm run posttest。
内置命令:
npm test
内置命令,等同于执行 npm run test
npm start
内置命令,等同于执行npm run start
npm stop
内置命令,等同于执行npm run stop
npm restart
内置命令,等同于执行npm run restart
npm publish
用于将当前模块发布到
1、申请用户名 npm adduser
2、登录 npm login
3、发布 npm publish