node 包管理内容整理,常用工作流。整理中
# npm 命令
# 安装包 install | i | add
详情
cmd | description | demo |
---|---|---|
npm i | 初始化项目 | - git clone <project> & cd $_ - npm i |
npm i [<@scope>/]<pkg> | 安装最新版本 npm 包 | - npm i react -S - npm i @vue/cli -g |
npm i [<@scope>/]<pkg>@tag | ||
npm i [<@scope>/]<pkg>@<version> | 指定版本 | $ npm i jquery@3.5.1 |
npm i [<@scope>/]<pkg>@<version range> | 指定版本范围 | $ npm i jquery@">=1.11.0 <2.0.0" |
args
[--save-prod|--save-dev|--save-optional] [--save-exact] [--no-save]
arg | alias | position | desc |
---|---|---|---|
--global | -g | 1 | 忽略项目全局安装 |
--save-prod (默认) | --save , -S | 1 | 保存到 package.json/dependencies |
--save-dev | -D | 1 | 保存到 package.json/devDependencies |
--save-optional | -O | 1 | 保存到 package.json/optionalDependencies |
--save-exact | -E | 2 | 安装精确版本 |
--no-save | 2 | 不会记录到 package.json , 也无法用 npm ls 查出来,但是可以被 npm uninstall 卸载 |
- 一个包只能安装在
dependencies
,devDependencies
,optionalDependencies
,peerDependencies
其中一个位置上
# 卸载包 uninstall | un | unlink | remove | rm | r
详情
args
npm uninstall [<@scope>/]<pkg>[@<version>]...
[--save-prod|--save-dev|--save-optional] [--no-save]
--no-save
只会删除包,不会修改 package.json- 其他参数都无效,无论依赖添加在哪里都会从 package.json 删除
# 更新包 update | up | upgrade
详情
npm update [-g] [<pkg>...]
根据版本号约束规则进行更新
# 发布包 publish
详情
- 切换 npm 官方源 (或者自己的源)
$ npm config set registry http://registry.npmjs.org/
- 登录并输入信息:
$ npm login
- 发布:
$ npm publish --access public
# 约定
# 版本号约束
major
.minor
.patch
主版本号・次版本号・修补版本号
类型 | 含义 | 例子 |
---|---|---|
major.minor.patch | 固定版本 -E | 1.12.5 |
^major.minor.patch | 锁定左侧第一个非零版本 (默认) | - ^1.12.5 : <2.0.0 - ^0.2.0 : <0.3.0 - ^0.0.17 : 0.0.17 |
~major.minor.patch | 只允许更新 patch 版本 | - ~1.12.5 : <1.13.0 |
举例
{ | |
"dist-tags": { "latest": "1.2.2" }, | |
"versions": [ | |
"1.2.2", "1.2.1", "1.2.0", | |
"1.1.2", "1.1.1", | |
"1.0.0", | |
"0.4.1", "0.4.0", | |
"0.2.0" | |
] | |
} | |
// package: ^1.1.1 => 1.2.2 | |
// package: ~1.1.1 => 1.1.2 | |
// package: 1.1.1 => 1.1.1 | |
// package: ^0.2.0 => 0.2.0 | |
// package: ^0.4.0 => 0.4.1 |
# npm 切换源
npm
- 淘宝源:
$ npm config set registry https://registry.npm.taobao.org
- 官方源:
$ npm config set registry http://www.npmjs.org
npm with nrm
- 安装 nrm
$ npm i nrm -g
- 查看可使用的源
$ nrm ls
- 切换源
$ nrm use taobao
# package.json 为命令添加软连接
// package.json | |
{ | |
// ... | |
"scripts": { | |
"build": "./node_modules/.bin/webpack" | |
} | |
} |
运行
$ npm run build | |
$ yarn build |
# yarn 命令
# yarn 安装
- linux (CentOS)
- 下载
$ wget https://github.com/yarnpkg/yarn/releases/download/v1.7.0/yarn-v1.7.0.tar.gz
- 解压
$ tar -zxvf yarn-v1.7.0.tar.gz -C /usr/local/src
- 添加软连接
$ ln -s /usr/local/src/yarn-v1.7.0/bin/yarn /usr/bin/yarn
# yarn 升级
- MacOS:
$ brew update yarn
# yarn flow
# yarn 切换源
- 淘宝源:
$ yarn config set registry https://registry.npm.taobao.org
- 官方源:
$ yarn config set registry https://registry.yarnpkg.com
# yarn 清除缓存
$ yarn cache clean |
- package.json 大数据分析
- 如何通过 npm 窃取信用卡密码?