0

npm install从我的项目运行会在./node_modules/sockjs-client/.nvmrc下创建一个指向6.14.2.nvmrc的文件。关于我的本地安装的一些信息:

  • nvm --version: 0.34.0
  • npm --version: 6.4.1
  • node --version: v11.3.0
  • nvm ls

    -> v11.3.0
    v12.10.0
    系统默认 -> 11.3.0 (-> v11.3.0)
    节点 -> stable (-> v12.10.0) (默认)
    stable -> 12.10 (-> v12.10.0) (默认)
    iojs -> N/A (默认)
    不稳定 -> N/A (默认)
    lts/* -> lts/dubnium (-> N/A)
    lts/argon -> v4.9.1 (-> N/A)
    lts/硼 -> v6.17.1 (-> N/A)
    lts/碳 -> v8.16.1 (-> N/A)
    lts/dubnium -> v10.16.3 (-> N/A)

问题与我的 git 钩子有关,如下所示:当我尝试从命令行提交时,我没有任何问题。节点版本被适当识别,我可以成功提交。

但是,从其他 UI 环境(IntelliJ、SmartGit)来看,git 挂钩失败并显示以下内容:

0 files committed, 1 file failed to commit: lasfasdf husky > pre-commit (node v8.11.4) lint-staged requires at least version 8.12.0 of Node, please upgrade husky > pre-commit hook failed (add --no-verify to bypass)

当我删除node_modules文件夹和.nvmrc子文件夹中包含的文件时,我可以通过 IntelliJ 和 SmartGit 再次成功提交。我的 IntelliJ 节点配置如下: 在此处输入图像描述

我的假设是 IntelliJ 和 SmartGit 使用这个错误填充的.nvmrc文件中指定的 nvm 版本。我对节点版本管理——或者事实上节点本身——不是很熟悉——所以我可能会问以下问题来解释这种不一致:

  • 文件是如何.nvmrc创建的?在哪个阶段,什么定义了它的内容?
  • 除了nvm ls- 我想知道一些过时的节点版本是否会驱动.nvmrc这个超级旧的6.14.2版本的人口之外,还有其他方法可以识别我机器上的所有可用节点版本。

编辑:这是我的节点解释器列表 在此处输入图像描述

这是我的 PATH 的内容,因为这在 IntelliJ 中已解决

PATH=/home/username/.npm-global/bin:/home/username/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

我在 Ubuntu 18.10 上运行它

4

1 回答 1

0

IntelliJ 不会创建任何 .nvmrc 文件。你的操作系统是什么?

我建议您在 IDE 中检查 PATH 环境变量:

  • 打开“设置|工具|终端”
  • 打开“环境变量”对话框
  • 在继承的系统环境变量列表中找到 PATH。根据它如何解析哪个节点?

那么,请

  • 打开“设置 | 语言和框架 | Node.js 和 NPM”

  • 展开“Node.js 解释器”下拉列表并附上它的屏幕截图。

于 2019-10-18T11:45:00.637 回答