
npm 常用的命令汇总
最近使用verdaccio搭建私有npm仓库,用到很多的npm命令,特别整理一下,方便后面使用,毕竟现在前端都使用npm或者yarn这种包管理工具,学习一下npm常用命令和基本原理很有必要…
npm(Node Package Managemer)
npm 是node的模块管理器。我们只要一行命令就可以安装别人写好的模块,它包括两层含义:
- 基于Node.js开发的包的托管网站,模块登记和管理系统,regitry
- cli命令行模块管理器
- 安装nodejs自动安装npm
(1)npm
- 基本操作
1
2
3
4
5npm docs 包名 查看包的文档
npm help #查看npm命令列表
npm -l #查看各个命令的简单用法
npm -v #查看npm版本
npm config list -l # 查看npm配置
npm init
初始化生成一个package.json文件
1 | npm init -y # 使用默认配置生成一个package文件 |
npm set
由于npm init里面有很多默认的设置,如果需要修改默认设置,这样以后初始化项目都使用配置的默认设置就可以使用npm set
1 | npm set init-author-name 'uncle pis' # 修改package的作者姓名 |
npm install/install -f 普通安装包/强制安装
每个模块可以“全局安装”,也可以“本地安装”。
“全局安装”指的是将一个模块安装到系统目录中,各个项目都可以调用。一般来说,全局安装只适用于工具模块,比如eslint和gulp。
“本地安装”指的是将一个模块下载到当前项目的node_modules子目录,然后只有在项目目录之中,才能调用这个模块。
1 | npm install <packageName>#安装模块到node_modules目录 |
执行install之前,会检查node_modules目录之中是否已经存在指定模块,存在不再重新安装,即使远程仓库发布了一个新的版本,也不会安装
希望一个模块无论是否安装过,npm都强制重新安装可以使用-f或者--force
- 注意一下安装的时候,项目相关的要放在 -S下的dependency中,开发环境和工具相关的要放在-D的devDependency中
npm install 默认会安装dependecy和devDependency的包,如果–production则会安装dependency而不会安装
1 | npm install <packageName> --force #强制安装 |
如果你希望,所有模块都要强制重新安装,那就删除node_modules目录,重新执行npm install。
1 | rm -rf node_modules |
全局安装和局部安装的区别:
npm uninstall
1 | npm uninstall [package name] #卸载本地模块 |
npm update
它会先到远程仓库查询最新的版本,然后查询本地版本,如果本地版本不存在或者远程较新,就会更新安装1
npm update <packageName> #更新已经安装的模块
npm查询服务(registry)
npm模块仓库提供一个查询服务叫做registry。例如npmjs.org提供的查询服务网址是 https://registry.npmjs.org/
服务后面跟上模块名字就会得到一个json对象,里面是改模块所有的版本信息。比如,访问 https://registry.npmjs.org/react,就会看到 react 模块所有版本的信息。
返回的json对象里面又一个dist.tarball属性,是该版本的压缩包地址。使用npm install或者npm update就是通过这个方式安装模块的
模块安装过程
1 | 1.发出npm install命令 |
- 运行npm install只会检查本地的node_modules存不存在需要的包,不会检查缓存
所以缓存里面有,但是node_modules里面没有,还是会从远程的npm仓库下载一次
查看npm源
1 | npm config get registry |
设置npm源
1 | npm config set registry xxxxx |
npm run
- npm不仅可以用于模块管理,还可以用于执行脚本。package.json文件有一个scripts字段,可以用于指定脚本命令,供npm直接调用。
- npm内置了两个命令简写,npm test等同于执行npm run test,npm start等同于执行npm run start。
- 先运行npm run build-js,然后再运行npm run build-css,两个命令中间用
&&连接。如果希望两个命令同时平行执行,它们中间可以用&连接 - npm run命令还可以添加参数,如果要通过npm test命令,将参数传到mocha,则参数之前要加上两个连词线。
