运行 npm install .nvmrc 会填充看似随机的节点版本
Running npm install .nvmrc gets populated with seemingly random node version
我项目中的 运行 npm install
在 ./node_modules/sockjs-client/.nvmrc 下创建了一个 .nvmrc
文件,它指向 6.14.2。关于我本地安装的一些信息:
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)
节点 -> 稳定 (-> v12.10.0)(默认)
稳定 -> 12.10 (-> v12.10.0)(默认)
iojs -> N/A(默认)
不稳定 -> N/A(默认)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.1 (-> N/A)
lts/dubnium -> v10.16.3 (-> N/A)
问题与我的 husky 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
之外,还有其他方法可以识别我的机器上所有可用的节点版本吗?我想知道是否某些过时的节点版本使用这个超旧 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
IntelliJ 不会创建任何 .nvmrc 文件。
你的 OS 是多少?
我建议您检查 IDE 中的 PATH 环境变量:
- 打开"Settings | Tools | Terminal"
- 打开"Environment Variables"对话框
- 在继承的系统环境变量列表中找到PATH。哪个节点会根据它来解析?
那么,请
打开"Settings | Languages & Frameworks | Node.js and NPM"
展开 "Node.js interpreters" 下拉列表并附上它的屏幕截图。
运行 npm install
在 ./node_modules/sockjs-client/.nvmrc 下创建了一个 .nvmrc
文件,它指向 6.14.2。关于我本地安装的一些信息:
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)
节点 -> 稳定 (-> v12.10.0)(默认)
稳定 -> 12.10 (-> v12.10.0)(默认)
iojs -> N/A(默认)
不稳定 -> N/A(默认)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.1 (-> N/A)
lts/dubnium -> v10.16.3 (-> N/A)
问题与我的 husky 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
之外,还有其他方法可以识别我的机器上所有可用的节点版本吗?我想知道是否某些过时的节点版本使用这个超旧 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
IntelliJ 不会创建任何 .nvmrc 文件。 你的 OS 是多少?
我建议您检查 IDE 中的 PATH 环境变量:
- 打开"Settings | Tools | Terminal"
- 打开"Environment Variables"对话框
- 在继承的系统环境变量列表中找到PATH。哪个节点会根据它来解析?
那么,请
打开"Settings | Languages & Frameworks | Node.js and NPM"
展开 "Node.js interpreters" 下拉列表并附上它的屏幕截图。