Skip to content

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

安装命令:

sh
# 安装node.js版本
nvm install 14.16.0

使用淘宝node镜像:nvm node_mirror

sh
nvm node_mirror https://npmmirror.com/mirrors/node/

使用淘宝npm镜像:nvm npm_mirror

sh
nvm npm_mirror https://npmmirror.com/mirrors/npm/

或者 找到nvm安装路径 -> 找到 settings.txt 文件 -> 配置下载源

text
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

安装全局删除工具

bash
npm install rimraf -g

先安装删除工具,然后使用删除命令

bash
rimraf node_modules

设置taobao镜像

npm config set registry https://registry.npm.taobao.org

全局安装的依赖包

bash
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

bash
cd .
echo "" > front.log
start npm run dev > front.log &
echo "Start front complete!"

start.sh

bash
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

  1. 登录 npm,依次输入相关信息:
bash
npm login --registry https://registry.npmjs.org
  1. 发布到 npm
bash
npm publish --registry https://registry.npmjs.org

注意每次发包前,确定package.json中的version是否更新,可通过命令设置 npm 包版本(需要先提交代码到git仓库)

bash
npm version 1.1.0

为了不污染 npm 环境,测试包尽量 72 小时内删除项目~

  1. 删除 npm 包,或者删除某个版本
bash
npm unpublish --registry https://registry.npmjs.org xxx@1.1.1 --force

如果出现版本问题

bash
npm install electron-store --legacy-peer-deps

发包

sh
"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",
json
{
  "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/"
  }
}
json
{
  "main": "lib/index.js",
  "module": "esm/index.js",
  "typings": "lib/index.d.ts",
  "files": [
    "lib",
    "esm"
  ]
}

npm-check-updates

要快速更新 package.json 文件中的第三方包版本,你可以按照以下步骤操作:

使用 npm update

  1. 自动更新到最新兼容版本:在项目根目录下,运行 npm update 命令。这会检查 package.jsonpackage-lock.json 文件中列出的每个包,并更新它们到最新兼容版本(符合语义化版本控制规则)。此命令不会更新到主要新版本,以避免可能引入的破坏性更改。

  2. 更新特定包:如果你只想更新某个特定的包,可以使用 npm update <package-name>。例如,npm update vue 会更新 Vue.js 到最新兼容版本。

使用 npm-check-updates

npm-check-updates(简称 ncu)是一个非常实用的命令行工具,用于检查并管理 Node.js 项目的依赖包版本更新。以下是详细的使用教程:

安装 npm-check-updates

首先,你需要全局安装 npm-check-updates。打开终端或命令提示符,然后运行以下命令:

sh
npm install -g npm-check-updates

yarn global add npm-check-updates

检查可更新的依赖

安装完成后,你可以运行 ncu 来检查当前项目 package.json 中所有依赖包是否有新版本:

sh
ncu

这会列出所有可以更新的包及其当前版本与最新版本的对比。

更新 package.json 文件

如果想要直接在 package.json 文件中更新这些依赖包的版本号,而不立即下载安装新版本,可以加上 -u--upgrade 参数:

sh
ncu -u

这会修改 package.json 中的版本号为各个包的最新版本,但不会实际安装这些新版本。

查看特定包的更新

如果你想检查特定包是否有更新,可以在命令后加上包名:

sh
ncu react

指定版本范围

默认情况下,ncu 会将版本更新到最新版本,但你可以使用 --target 参数来限制版本更新的范围,比如只更新到次版本或补丁版本:

sh
ncu --target=minor

自动安装更新

为了更进一步,你可以在更新 package.json 后立即执行 npm installyarn install 来安装新版本的依赖。 虽然 ncu本身不直接提供这一功能,你可以在命令行中顺序执行这两个命令:

sh
ncu -u && npm install

配置文件

npm-check-updates 支持配置文件 .ncurc.json.ncurc.js 来定制行为,比如设置默认的目标版本范围、忽略的包等。

总结

npm-check-updates 是一个强大的工具,帮助你保持项目依赖的最新状态,减少因依赖过时引发的安全风险和潜在的兼容性问题。 记得在执行批量更新后,仔细测试你的应用程序以确保所有依赖更新后仍能正常工作。

注意事项:

  • 在进行大规模更新之前,建议创建一个分支或备份你的项目,以防更新导致的不兼容问题。
  • 确保阅读包的更新日志,特别是当你准备更新到主要新版本时,因为这可能会引入破坏性变更。
  • 如果你的项目使用了 yarn 作为包管理器,类似的命令也会适用,例如使用 yarn upgrade 或者 yarn upgrade-interactive

以上步骤可以帮助你有效地管理并更新项目中的第三方依赖包。

Contributors

作者:Long Mo
字数统计:2k 字
阅读时长:7 分钟
Long Mo
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs