npm
package.json
name
:包名,后续在 npm 中搜索全靠它
version
:版本号,每发布一次 npm 包就要增加一个版本,每个版本不能重复
description
:描述
main
:本包入口文件
private
:true/false
是否为私有。 一般为 false
否则只有自己能使用
flies
:暴露的文件夹,指定提交到 npm
文件夹,格式为 ["dist"]
exports
:指定模块导出的路径,使用户可以通过特定路径导入模块,如 import "@package-name/xxx"
;至少包含 { ".": "./index.js" }
。
keywords
: npm 检索的关键字
author
:作者
license
:ISC
type: "module"
:包遵循 ESM 模块规范(mjs)
peerDependencies
:当前npm包同时依赖环境,不会被安装但会提醒这些依赖以及版本
"peerDependencies": {
"@babel/eslint-parser": "7.x",
"eslint": ">=8.24.0"
}
overrides
:覆写node_modules的指定包版本,如安装 vite-plugin-eslint
后node_modules
的eslint版本过高,可覆写:
"overrides": {
"eslint": "8.57.0"
}
bin
:全局命令,开发全局包/脚手架必备
命令
npm init
初始化包
npm init --scope=name
初始化一个域级包
npm install
安装所有依赖
npm install --production
安装所有生产依赖
npm install name -g
全局下安装包
npm install name --save
安装局部包
npm install name --save-dev
安装开发依赖包
npm uninstall name
移除包
npm update name
更新包
npm cache clean --force
清除缓存
npm run
执行模块包
npm config set registry https://registry.npmmirror.com
设置下载镜像地址
npm publish
根据package.json的name发布包到npm仓库
npm unpublish name --force
卸载npm上传的包
命令参数
npm run build --mode=value --option2=value2
访问:const mode = process.env.npm_config_mode(value)
npx
临时执行下载一个package到缓存目录并运行可执行命令,与 npm init/npm create
类似
发布
登录
npm login
注:
登录命令报错,请确保 registry
地址为 https://registry.npmjs.org/
若无法链接到 registry.npmjs.org
请设置代理后操作 npm config set proxy=http://127.0.0.1:xxxx
发布
更新版本号
发布前更新版本号
npm version patch
如v1.0.1
npm version prepatch
如v1.0.2-0
npm version minor
如v1.1.0
npm version major
如v2.0.0
npm version prerelease --preid=alpha/beta
npm publish
注: 发布默认包含 .gitignore
和 .npmignore
排除之外的所有文件
声明标签
发布测试/先行版本 npm publish --tag beta
-
latest:最后版本,npm install 的就是这个
-
beta:测试版本,一般内测使用,需要指定版本号 install,例如 3.1.0-beta.0
-
next:先行版本,npm install package@next 安装,例如 3.0.2-alpha.0
版本号
- 全版本号:指定的固定版本号
- 波浪符号
~
:固定主版本号和次版本号,修订号可以随意更改 - 插入符号
^
:固定主版本号,次版本号和修订号可以随意更改 - 任意版本*:对版本没有限制,一般不用
-
或符号: 可以用来设置多个版本号限制规则,如 >= 3.0.0 <= 1.0.0
NVM
github下载 nvm-setup.zip
所有版本:nvm list
安装版本:nvm install 16.18.1
切换版本:nvm use 18.12.1
PM2
一个用于Node.js应用程序的生产流程管理器,具有内置的负载平衡器;
安装:npm i pm2 -g
启动:pm2 start app.js --name appName
npm命令:cross-env NODE_ENV=production pm2 start app.js --name appName
应用列表:pm2 list
自定义配置
生成配置命令:pm2 ecosystem
配置文件:ecosystem.config.js
读取配置启动:pm2 start ecosystem.config.js
查看应用的监控信息:pm2 monit
日志
所有日志:pm2 logs
指定应用与行数:pm2 logs <app-name> --lines 100
清除日志:pm2 flush
控制应用
停止应用:pm2 stop app
停止所有:pm2 stop all
重启应用:pm2 restart app
删除应用:pm2 delete app
删除所有:pm2 kill
问题
node-sass
无法安装成功
-
要求node-sass与node版本一致
| NodeJS | Supported node-sass version | |---------|-----------------------------| | Node 16 | 6.0+ | | Node 15 | 5.0+ | | Node 14 | 4.14+ | | Node 13 | 4.13+, <5.0 | | Node 12 | 4.12+ |
-
node-gyp要求python2
安装python2并配置环境变量(高于python3环境变量)后,重新安装
node-sass
其它
lerna 多包/多项目管理
脚手架开发
dumi 组件库开发
Verdaccio 私用库 npm 注册代理 https://xieyufei.com/2021/07/17/Verdaccio.html
release-it: https://juejin.cn/post/7132628356700307487