npm install
从我的项目运行会在./node_modules/sockjs-client/.nvmrc下创建一个指向6.14.2.nvmrc
的文件。关于我的本地安装的一些信息:
nvm --version
: 0.34.0npm --version
: 6.4.1node --version
: v11.3.0nvm 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 上运行它