node、npm等相关概念
参考地址: https://baijiahao.baidu.com/s?id=1726423980119026076&wfr=spider&for=pc
node 和 npm 相关的名词很多,比较容易混淆。
下面对这些名词做个统一梳理
node:一个基于 Chrome V8 引擎的 JavaScript 运行时;提供了 JavaScript 的运行环境。可以直接到 node 官网下载安装
nvm:node.js 版本管理工具;不同项目可能需要不同版本的 node;可以使用 nvm 来管理 node.js 版本
npm:node.js 包管理工具;用来管理 node.js 中的第三方插件;新版本的 node 在安装的时候,会自动安装对应版本的 npm
nrm:npm 源的管理工具,可以用来方便的切换 npm 源
cnpm:使用的是淘宝的源。用法跟 npm 完全一致。cnpm 经常会有问题,所以在很多地方不推荐使用
yarn:经过重新设计的崭新的 npm 客户端;运行速度显著提升,整个安装时间比 npm 少。一般推荐使用 yarn 代替 npm
npx:一个 npm 包执行器。我们可以使用 npx 来执行各种命令。 npx 命令将从本地 node_modules/.bin 执行命令,安装命令运行所需的任何包。 默认情况下,npx 将检查命令是否存在于 $PATH 或本地项目二进制文件中,并执行它。 如果未找到命令,它将在执行之前安装。
=============================================================================================================
问题解决:关于nrm ls时,*(星号)消失问题
在C:\Users\hp\AppData\Roaming\npm\node_modules\nrm 文件夹下找到cli.js文件,找到文件大约140行的函数onList
141 行左右
var prefix = item[FIELD_IS_CURRENT] && equalsIgnoreCase(item.registry, cur) ? '* ' : ' ';
改为
var prefix = item[FIELD_IS_CURRENT] || equalsIgnoreCase(item.registry, cur) ? '* ' : ' ';
=============================================================================================================
常用命令 nrm
全局安装
npm install nrm -g
nrm ls :查看默认配置,带 * 号即为当前使用的配置
nrm current :查看当前使用的是哪个源
nrm use [源的别名] :切换到某个源
nrm add [源的别名] [源的地址] :添加私有源。eg: nrm add qihoo http://registry.npm.360.org
nrm test [源的别名] :测试某个源
nrm del [源的别名] :删除某个源
=============================================================================================================
常用命令 nvm
nvm list 查看已安装的node版本
nvm list installed 查看已安装的node版本
nvm list available 查看网络上可以安装的node版本
nvm arch 查看当前系统的位数和当前node的位数
nvm install [arch] 安装制定版本的node并且可以指定平台version版本号arch平台
nvm on 打开node版本控制
nvm off 关闭node版本控制
nvm proxy [url] 查看和设置代理
nvm node_mirror [url] 设置或查看setting.txt中的nde_mirror, 默认: https://nodejs.org/dist/
nvm npm_mirror [url] 设置或查看setting.txt中的 npm_mirror, 默认:https://github.com/npm/npm/archive/
nvm uninstall 卸载指定的版本
nvm use [version] [arch] 切换指定的node版本和位数
nvm root [path] 设置和查看root路径
nvm version 查看当前版本
nvm安装
下载并安装 nvm windows:下载地址(https://github.com/coreybutler/nvm-windows/releases) linux/macOS:下载地址(https://github.com/nvm-sh/nvm)
用nvm安装node.js
安装命令:
# 安装node.js版本
nvm install 14.16.0
使用淘宝node镜像:nvm node_mirror
nvm node_mirror https://npmmirror.com/mirrors/node/
使用淘宝npm镜像:nvm npm_mirror
nvm npm_mirror https://npmmirror.com/mirrors/npm/
或者 找到nvm安装路径 -> 找到 settings.txt 文件 -> 配置下载源
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
安装全局删除工具
npm install rimraf -g
先安装删除工具,然后使用删除命令
rimraf node_modules
设置taobao镜像
npm config set registry https://registry.npm.taobao.org
全局安装的依赖包
npm i npkill pnpm yarn rimraf prettier typescript ts-node nodemon compressing eslint fkill-cli gogocode-cli jsdoc yo @wytxer/wy-cli @vue/cli -g
start
start.cmd
cd .
echo "" > front.log
start npm run dev > front.log &
echo "Start front complete!"
start.sh
cd ..
echo "" > front.log
nohup npm run dev > front.log &
echo "Start front complete!"
tail -f front.log
Node.js命令行程序开发完整教程
https://www.kancloud.cn/outsider/clitool/313173
发布到 NPM
- 登录 npm,依次输入相关信息:
npm login --registry https://registry.npmjs.org
- 发布到 npm
npm publish --registry https://registry.npmjs.org
注意每次发包前,确定package.json中的version是否更新,可通过命令设置 npm 包版本(需要先提交代码到git仓库)
npm version 1.1.0
为了不污染 npm 环境,测试包尽量 72 小时内删除项目~
- 删除 npm 包,或者删除某个版本
npm unpublish --registry https://registry.npmjs.org xxx@1.1.1 --force
如果出现版本问题
npm install electron-store --legacy-peer-deps
发包
"preinstall": "npx only-allow pnpm",
"prepublishOnly": "npm run build",
"release": "np --no-cleanup --no-tests --any-branch",
"start": "dumi dev",
"docs:build": "dumi build",
"docs:deploy": "gh-pages -d docs-dist",
"deploy": "npm run docs:build && npm run docs:deploy",
{
"homepage": "https://github.com/xxx#readme",
"bugs": {
"url": "https://github.com/xxx/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/xxx.git"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
}
}
{
"main": "lib/index.js",
"module": "esm/index.js",
"typings": "lib/index.d.ts",
"files": [
"lib",
"esm"
]
}
npm-check-updates
要快速更新 package.json
文件中的第三方包版本,你可以按照以下步骤操作:
使用 npm update
自动更新到最新兼容版本:在项目根目录下,运行
npm update
命令。这会检查package.json
和package-lock.json
文件中列出的每个包,并更新它们到最新兼容版本(符合语义化版本控制规则)。此命令不会更新到主要新版本,以避免可能引入的破坏性更改。更新特定包:如果你只想更新某个特定的包,可以使用
npm update <package-name>
。例如,npm update vue
会更新 Vue.js 到最新兼容版本。
使用 npm-check-updates
npm-check-updates
(简称 ncu)是一个非常实用的命令行工具,用于检查并管理 Node.js 项目的依赖包版本更新。以下是详细的使用教程:
安装 npm-check-updates
首先,你需要全局安装 npm-check-updates
。打开终端或命令提示符,然后运行以下命令:
npm install -g npm-check-updates
yarn global add npm-check-updates
检查可更新的依赖
安装完成后,你可以运行 ncu
来检查当前项目 package.json
中所有依赖包是否有新版本:
ncu
这会列出所有可以更新的包及其当前版本与最新版本的对比。
更新 package.json 文件
如果想要直接在 package.json
文件中更新这些依赖包的版本号,而不立即下载安装新版本,可以加上 -u
或 --upgrade
参数:
ncu -u
这会修改 package.json
中的版本号为各个包的最新版本,但不会实际安装这些新版本。
查看特定包的更新
如果你想检查特定包是否有更新,可以在命令后加上包名:
ncu react
指定版本范围
默认情况下,ncu
会将版本更新到最新版本,但你可以使用 --target
参数来限制版本更新的范围,比如只更新到次版本或补丁版本:
ncu --target=minor
自动安装更新
为了更进一步,你可以在更新 package.json
后立即执行 npm install
或 yarn install
来安装新版本的依赖。 虽然 ncu
本身不直接提供这一功能,你可以在命令行中顺序执行这两个命令:
ncu -u && npm install
配置文件
npm-check-updates
支持配置文件 .ncurc.json
或 .ncurc.js
来定制行为,比如设置默认的目标版本范围、忽略的包等。
总结
npm-check-updates
是一个强大的工具,帮助你保持项目依赖的最新状态,减少因依赖过时引发的安全风险和潜在的兼容性问题。 记得在执行批量更新后,仔细测试你的应用程序以确保所有依赖更新后仍能正常工作。
注意事项:
- 在进行大规模更新之前,建议创建一个分支或备份你的项目,以防更新导致的不兼容问题。
- 确保阅读包的更新日志,特别是当你准备更新到主要新版本时,因为这可能会引入破坏性变更。
- 如果你的项目使用了
yarn
作为包管理器,类似的命令也会适用,例如使用yarn upgrade
或者yarn upgrade-interactive
。
以上步骤可以帮助你有效地管理并更新项目中的第三方依赖包。