npm
目前支持以下几类依赖包管理
官网文档==>package.json doc
dependencies
依赖关系在一个简单的对象中指定,该对象将程序包名称映射到版本范围。npm i is-odd -s/-S/--save
写成不识别的-d/-A/-B/-C
等会默认为--save
devDependencies
该脚本将在发布之前运行,因此用户可以使用该功能而无需他们自己对其进行编译。npm i is-odd -D/--save-dev
peerDependencies/peerDependenciesMeta
optionalDependencies
像dependencies
对象一样。区别在于构建失败不会导致安装失败。运行npm install --no-optional
将阻止安装这些依赖项。npm i is-odd -O/--save-option
bundledDependencies
/bundleDependencies
依赖关系的指定版本范围
官网文档==>semver
version
必须version
完全匹配>version
必须大于version
>=version
等等<version
<=version
~version
“大约等效于版本”请参考semver
^version
“与版本兼容”请参考semver
1.2.x 1.2.0、1.2.1
等,但不是1.3.0
http://...
将URL作为依赖项
*
匹配任何版本""
(只是一个空字符串)等价于*
version1 - version2
与相同>=version1 <=version2
。range1 range2
如果满足range1
或range2
,则通过。git...
将Git URL
作为依赖项user/repo
将GitHub URL
作为依赖项tag
标记并发布为tag See
的特定版本npm dist-tag
path/path/path
本地路径n
node
版本管理工具npm install -g
1 | { |
常用命令整理
官网总共有58个命令,下面整理了部分==>v7版本文档
npm -v
查看版本npm version
查看所有模块的版本npm search [name]
搜索包npm install/i
下载当前项目所依赖的包npm ci
使用干净的面板安装项目npm install/i --force
覆盖安装npm install/i [name]
安装包npm install/i [name] -g
全局安装模块包npm install --save echarts@4.3.0
安装带版本号npm list
查看依赖包npm remove/r [name]
删除包(仅删除)npm remove/r [name] -S
删除包和package.json
里面的模块名npm remove -g cxvh-cli-test
移除包npm uninstall -g cxvh-cli-test
删除模块(remove
也可以,只是官网找不到相关文档)npm unlink test
需要加上包名test
npm config get registry
查看镜像地址,默认为https://registry.npmjs.org/
npm config set registry https://registry.npm.taobao.org
设置镜像npm config set @types:registry https://registry.npmjs.org/
据说这样也可以npm install -g cnpm --registry=https://registry.npm.taobao.org
使用淘宝镜像安装依赖npm install -g npm
更新npm
版本npm config set prefix "D:\nodejs\npm_global"
设置全局依赖包位置npm config get prefix
npm config set cache "D:\nodejs\npm_cache"
设置缓存npm config get cache
npm init
初始化npm login --registry=https://npm.pkg.github.com/
登录npm config list
查看是否为registry = "https://registry.npmjs.org/"
npm set registry https://registry.npmjs.org/
改为官方镜像地址npm adduser
增加npm
用户(会输入登录名密码和邮箱,邮箱必须验证过的)npm whoami
查看当前npm
用户名(没登录会报错)npm link
功能:1.生成全局命令;2.相当于npm install
;3.后面可以接本地包路径。npm publish
发布
1 | # http://registry.npmjs.org |
常用包
compression
字面意思压缩,中间件app.use(compression)
放在所有请求前面即可lodash
是个工具库,里面工具的算法写的很好cross-env
运行跨平台设置和使用环境变量的脚本svg-captcha
在node.js中生成svg验证码nodemailer
从Node.js发送电子邮件-简单如蛋糕!moment
一个JavaScript日期库,用于解析,验证,操作和格式化日期。npm-run-all
一个CLI工具,可并行或顺序运行多个npm脚本。npm-check-updates
检查npm版本,将package.json依赖项升级到最新版本,而忽略指定的版本。(需要全局安装)nrm
切换镜像源sinopia
专用/缓存npm
存储库服务器glob
这是 JavaScript 中的 glob 实现。它使用minimatch 库来进行匹配。(使用 shell 使用的模式匹配文件,比如星星和其他东西。)
TypeScript
typescript
是一种用于应用程序级 JavaScript 的语言。ts-node
用于 node.js 的 TypeScript 执行和 REPL,具有源映射和本机 ESM 支持。
koa 相关
koa
node.js的下一代Web框架koa-router
Koa的路由器中间件。koa-body
功能齐全的koa正文解析器中间件。支持multipart,urlencoded和json请求机构。提供与Express的bodyParser-相同的功能multer。koa-json
JSON精美打印的响应中间件。还将节点对象流转换为二进制。@koa/cors
KOA的跨域资源共享(CORS)koa-helmet
安全头koa-compose
整合 KOA 的中间件koa-compress
压缩Koa中间件koa-jwt
用于验证JSON Web令牌的Koa中间件。jsonwebtoken
JSON Web令牌签名和验证。
webpack 相关
webpack-merge
为Webpack设计的合并terser-webpack-plugin
该插件使用terser来缩小JavaScript(webpack5 自带不用安装)copy-webpack-plugin
将单个文件或整个目录(已存在)复制到构建目录。
sql
mongoose
是设计用于异步环境的MongoDB对象建模工具。Mongoose 支持 promises 和回调。
脚手架相关
import-local
允许全局安装的软件包使用自身的本地安装版本yargs
通过解析参数并生成优雅的用户界面来帮助您构建交互式命令行工具lerna
基于git
+npm
的多package
项目管理工具npmlog
打印日志用的semver
版本号比对colors
打印日志颜色root-check
1.检查root权限 2.如果是则降级进程的权限 3.如果降级失败则阻止访问user-home
获取用户主目录的路径path-exists
检查路径是否存在minimist
解析参数选项dotenv
环境变量设置url-join
将所有参数连接在一起并规范化结果url
commander
node.js
命令行界面的完整解决方案。npminstall
让我们npm install
轻松快捷。fs-extra
添加本机fs
模块中未包含的文件系统方法,并为这些fs
方法添加promise
支持。它还graceful-fs
用于防止EMFILE
错误。应该是的替代品fs
。inquirer
一组常见的交互式命令行用户界面。(脚手架上下选择)cli-spinner
加载效果rxjs
周下载量2000W+mute-stream
输入流ansi-escapes
用于操作终端的 ANSI 转义码simple-git
用于git
在任何node.js
应用程序中运行命令的轻量级界面。terminal-link
在终端中创建可点击的链接ali-oss
aliyun OSS(对象存储服务)js 客户端,适用于 Node 和浏览器环境。
npm-run-all 配合 vscode 使用
package.json
1 | { |
launch.json
1 | { |
按照上面配置和就可以在vscode调试打断点了
npm-check-updates 检查版本
1 | # 安装 |
使用nrm切换镜像源
npm i -g nrm
全局安装nrm ls
查看源列表nrm config get registry
查看当前源地址nrm use taobao
切换淘宝源nrm use cnpm
切换cnpm
源nrm use yarn
切换yarn
源nrm use npm
切换npm
源- 安装后报错:
internal/validators.js:124 throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
- 这是找不到
win
的用户目录了,找到代码const NRMRC = path.join(process.env.HOME, '.nrmrc');
改为const NRMRC = path.join(process.env.HOME||process.env.HOMEPATH, '.nrmrc');
即可。 github
仓库源码如下,感觉已经没人维护了1
2const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');
const NPMRC = path.join(process.env.HOME, '.npmrc');
使用n
切换node
版本
npm install n -g
n 14.16.1
安装指定版本n stable
安装稳定版本n latest
安装最新版本n rm 14.10.1
删除版本n use 14.10.11 server.js
指定node
版本执行脚本n
输入后回车,按上下切换版本,enter
选中- 选中后
node -v
查看不生效如何解决?which node
查看当前node
安装版本(如:/opt/node
,记住这个路径,下面用)vim ~/.bash_profile
配置环境变量export N_PREFIX=/opt/node
末尾插入,/opt/node
改为which node
查看到的路径export PATH=$N_PREFIX/bin:$PATH
末尾插入,保存并退出source ~/.bash_profile
使修改生效
n 14.16.1
重新安装node
,安装完成后可切换版本- 如果报错可使用
sudo
安装:sudo n v14.16.1
- 如果报错可使用
- 选中后
小技巧
npm init cxvh-cli
就相当于初始化cxvh-cli
项目一样,init
结束需要npm install
error
npm install
报错:npm ERR! Maximum call stack size exceeded
使用淘宝镜像
npm install abc --registry=https://registry.npm.taobao.org
ornpm config set registry http://registry.npm.taobao.org/
gitbook
报错:node_modules\_npm@5.1.0@npm\node_modules\graceful-fs\polyfills.js:287
切换
node
版本为10.21.0
npm login
报错
1 | npm ERR! code ETIMEDOUT |
npm config get registry
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BARAN的小站🔥🔥🔥!