我使用节点9.3.0已有很长时间了,但是最近我迁移到了10.12.0。一切正常,当我这样做时node -v,npm -v我得到了正确的版本:
Paul-Bergs-Macbook:node paulrberg$ node -v
v10.12.0
Paul-Bergs-Macbook:node paulrberg$ which node
/Users/paulrberg/.nvm/versions/node/v10.12.0/bin/node
Paul-Bergs-Macbook:node paulrberg$ npm -v
6.4.1
Paul-Bergs-Macbook:node paulrberg$ which npm
/Users/paulrberg/.nvm/versions/node/v10.12.0/bin/npm
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行任何npm命令时,将使用旧版本。那是:
Paul-Bergs-Macbook:node paulrberg$ npm i truffle -g
/Users/paulrberg/.nvm/versions/node/v9.3.0/bin/truffle -> /Users/paulrberg/.nvm/versions/node/v9.3.0/lib/node_modules/truffle/build/cli.bundled.js
+ truffle@4.1.14
added 81 packages from 311 contributors in 1.715s
Run Code Online (Sandbox Code Playgroud)
和:
npm list -g --depth=0
/Users/paulrberg/.nvm/versions/node/v9.3.0/lib
??? truffle@4.1.14
Run Code Online (Sandbox Code Playgroud)
不知道这是否是仍指向最新版本的bash代码,但我似乎找不到任何证明。运行env并检查9.3.0环境变量不会产生任何结果。
到目前为止,我做了什么:
nvm uninstall 9.3.0nvm reinstall-with-packages~/.nvmrc并设置10.12.0在那里我正在使用nvm-windows 1.1.7版本。
我刚刚安装了节点11.9.0。
nvm会与此节点版本一起安装npm 6.5.0版。但是,已经有npm 6.7.0版本可用。
现在,npm i -g npm我得到:
npm ERR! path C:\Program Files\nodejs\npm.cmd
npm ERR! code EEXIST
npm ERR! Refusing to delete C:\Program Files\nodejs\npm.cmd: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npm.cmd
npm ERR! Move it away, and try again.
Run Code Online (Sandbox Code Playgroud)
我没有办法避免这种情况。
要下载必要的模块 (MSS),请使用终端导航到已通过启动克隆存储库的本地文件夹:
npm install
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下方法构建 I 项目:
npm run build-dev
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! mss@1.1.2 build-dev: `gulp build --env node`
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the mss@1.1.2 build-dev script.
npm ERR! This is probably not a problem with npm. There is likely
Run Code Online (Sandbox Code Playgroud)
上面的附加日志输出。
为什么?
我使用的是 Node.js v8.9.4,由于它现在已停产,我决定切换到 lts/erbium -> v12.14.1。此外,我使用 nvm (0.33.8) 来处理我的节点版本。
我安装了除canvas之外的所有软件包。使用 npm install canvas@latest 成功安装后,我在尝试将其用于我的 Nodejs 应用程序时遇到了问题。这是错误。
Error: The module '/home/node_modules/canvas/build/Release/canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
Run Code Online (Sandbox Code Playgroud)
我尝试从node_modules文件中完全卸载并删除canvas包。然后为了解决上述问题,我尝试了:
npm rebuild canvas --update-binary
npm rebuild canvas --build-from-source
npm rebuild
Run Code Online (Sandbox Code Playgroud)
但没有一个起作用。
问题
我需要为 Windows 10 安装 nvm 并让它适用于我的管理员配置文件和非管理员配置文件。当我进行所有编程时,都是使用我的常规用户帐户。但要安装东西/管理东西,我必须提供一个管理员帐户。
详细信息 我从此存储库下载并运行了最新的安装程序:
安装适用于 Windows 10 的 nvm:https ://github.com/coreybutler/nvm-windows
当我尝试运行安装程序时,我必须使用我的管理员帐户。Windows 会提示我输入凭据,在我提供凭据后,安装就完成了,没有任何问题。问题是,nvm 仅在我以管理员用户身份运行命令窗口时才起作用……但我需要能够以常规非特权身份运行 nvm。用户也是如此。
所以现在,当我以管理员身份打开“命令”窗口时,我可以运行
Microsoft Windows [Version 10.0.19043.1348]
(c) Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>nvm --version
Running version 1.1.9.
Run Code Online (Sandbox Code Playgroud)
但是如果我像普通用户一样运行命令,
Microsoft Windows [Version 10.0.19043.1348]
(c) Microsoft Corporation. All rights reserved.
C:\Users\me>nvm --version
'nvm' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\me>
Run Code Online (Sandbox Code Playgroud)
任何提示将不胜感激。
编辑1
我真的只需要一些我可以检查到版本控制的东西来声明一个 Node 版本,并在他们在那个目录中时在某人的 shell 中换出 Node 版本。
.nvmrc 应该这样做,但没有对 Fish 的官方支持,并且解决方法是垃圾。
这看起来并不复杂。有什么新的/轴来代替 nvm 吗?
我从nvm-setup.zip安装了 NVM 然后,在命令提示符下,我运行
nvm install 8.11.2
Run Code Online (Sandbox Code Playgroud)
然后我跑了
nvm use 8.11.2
Run Code Online (Sandbox Code Playgroud)
哪个输出
now using node v8.11.2 (64-bit)
Run Code Online (Sandbox Code Playgroud)
然后我跑了
SET PATH=C:\Program Files\Nodejs;%PATH%
Run Code Online (Sandbox Code Playgroud)
但是当我输入
node
Run Code Online (Sandbox Code Playgroud)
我得到
'node' is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud) 我的问题有点乏味,需要社区帮助我解决。Nodejs.org我从使用它的文件的官方网站安装了节点 12 .pkg。我使用 firebase 函数 shell 在本地测试我们的工作,但由于版本冲突,我需要降级到 10。这就是问题开始的地方,我安装了NVM降级版本,并且成功了,所以当我node -v这样做时,我看到v10但当我跑步时
firebase functions:shell
我仍然收到警告
Your requested "node" version "10" doesn't match your global version "12"
现在我需要对此进行排序,因为我的本地云功能仍然无法工作,并且我认为它仍在读取节点的第 12 版本。我遵循了从系统中手动删除节点的不同教程,并且我再次能够通过验证来删除节点
node -v它给了我一个错误,node command not found这意味着 Node 被删除了,但即使 Node 被卸载,我仍然能够运行
firebase functions:shell并在本地运行云功能,因此这意味着节点12仍在系统中,但我似乎无法卸载它。
因此,我们将不胜感激。
谢谢
我有一个通过 Gitlab 部署的应用程序。为了将其部署到生产服务器,我使用了deploy_production. 基本上通过 ssh 进入,删除 node_modules 进行拉取、安装和构建:
image: node:latest\n\nbefore_script:\n - apt-get update -qq\n - apt-get install -qq git\n - \'which ssh-agent || ( apt-get install -qq openssh-client )\'\n - eval $(ssh-agent -s)\n - ssh-add <(echo "$K8S_SECRET_SSH_PRIVATE_KEY" | base64 -d)\n - mkdir -p ~/.ssh\n - \'[[ -f /.dockerenv ]] && echo -e "Host *\\n\\tStrictHostKeyChecking no\\n\\n" > ~/.ssh/config\'\n\nstages:\n - install\n - build\n - deploy_production\n\ncache:\n paths:\n - node_modules/\n\ninstall:\n stage: install\n script:\n - npm install\n artifacts:\n paths:\n - node_modules/\n\n\nbuild:\n stage: …Run Code Online (Sandbox Code Playgroud) nvm ×10
node.js ×8
npm ×5
nvm-windows ×2
windows-10 ×2
bash ×1
build ×1
canvas ×1
firebase ×1
firebase-cli ×1
gitlab ×1
mss ×1
node-modules ×1
npm-scripts ×1
ssh ×1
windows ×1