我nvm在 Windows 10 上使用,所以我安装节点 10.19.0:
nvm 安装 10.19.0
nvm 使用 10.19.0
节点 -v
v10.19.0
Run Code Online (Sandbox Code Playgroud)
npm -v
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
PS C:\workspace\my-front>
Run Code Online (Sandbox Code Playgroud)
我看到我的C:\Program Files\nodejs\node_modules 文件夹,它是空的。
如何修复我的 node+npm 安装?
我试试这个,但没有解决我的安装:
PS …Run Code Online (Sandbox Code Playgroud) 我当前有一个配置为运行 NodeJS 的项目v10.x.x,但我想将其升级为在版本上运行,12.16.1以便与我正在处理的其他项目保持一致,这样我就不必在一天中多次使用nvm 。
我的 package.json 包含:
{
"engines": {
"node": "10.x.x"
},
...
}
Run Code Online (Sandbox Code Playgroud)
如果我将其更改为并构建,则其中的包(我没有在我的中直接引用的包)12.x.x抛出错误。node_modulesgrpcpackage.json
问题:我想将我的包升级package.json到能够运行 Node 所需的最低版本v12.16.1,这有望减少升级导致的重大更改的数量。我想要尽可能少的改变。
有没有好的方法来解决这个问题?除了将一个包更新到最新版本之外,尝试构建,然后重复此过程直到它起作用。
我无法找到有关如何在不使用 NVM 的情况下在同一台计算机上安装两个版本的 Node.js (例如 v10 和 v14)的任何问题/答案。我无法使用 windows-nvm,因为它需要管理员权限,而且我正在以标准用户身份使用公司笔记本电脑。
我需要能够安装多个不同版本的 Node.js,因为同一公司下的不同项目需要使用不同版本的 Node.js。
是否只能卸载已安装的版本并每次安装新版本?有什么方法可以在C:\Program Files\node10下拥有 v10 ,在C:\Program Files\node14下拥有 v14吗?
需要明确的是,管理员愿意授予我特定的权限或安装完成此操作所需的任何软件。我们尝试使用名为 RunAsTool 的工具来尝试让我以管理员身份运行 NVM,但这由于其限制而不起作用。
另一种选择是授予我 NVM 运行所需的任何文件和目录的管理员权限,但我找不到这些文件/文件夹的列表。
第三种选择是简单地安装两个不同的版本,但是当您安装新版本时,以前的版本会被删除,即使它安装在C:\Program Files\node16等不寻常的路径下。
我跑了一下nvm ls-remote,列表的末尾看起来像这样:
v14.17.6 (LTS: Fermium)
v14.18.0 (LTS: Fermium)
v14.18.1 (LTS: Fermium)
v14.18.2 (LTS: Fermium)
v14.18.3 (LTS: Fermium)
v14.19.0 (LTS: Fermium)
v14.19.1 (Latest LTS: Fermium)
v15.0.0
v15.0.1
v15.1.0
...
v16.11.1
v16.12.0
v16.13.0 (LTS: Gallium)
v16.13.1 (LTS: Gallium)
v16.13.2 (LTS: Gallium)
v16.14.0 (LTS: Gallium)
v16.14.1 (LTS: Gallium)
v16.14.2 (Latest LTS: Gallium)
v17.0.0
v17.0.1
v17.1.0
...
v17.8.0
v17.9.0
Run Code Online (Sandbox Code Playgroud)
我的目标是获得稳定的最新版本(即推荐)。我如何从这个列表中确定这一点?
当我在 nextjs 项目中运行 npm run dev 时,出现以下错误:
.../node_modules/next/dist/server/web/spec-extension/request.js:28
class NextRequest extends Request {
^
ReferenceError: Request is not defined
at Object.<anonymous> (.../node_modules/next/dist/server/web/spec-extension/request.js:28:27)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:999:19)
at Module.mod.require (.../node_modules/next/dist/server/require-hook.js:64:28)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (.../node_modules/next/dist/server/web/spec-extension/adapters/next-request.js:37:18)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
Node.js v17.4.0
Run Code Online (Sandbox Code Playgroud)
当我运行 node -v 时,我得到:
v20.9.0
Run Code Online (Sandbox Code Playgroud)
我已经从我的机器上卸载了node并使用nvm重新安装了它。
据我了解,nextjs 和我安装的软件包正在抱怨,因为我没有使用所需的节点版本。然而,由于在我的终端中运行 node -v 时,我发现我正在使用 v20.9 我不知道为什么 Nextjs 没有检测到正确的节点版本
有人知道我该如何解决这个问题吗?
我有点新的网页应用程序开发,并通过RAN自耕农教程,使用yo,grunt,bower,和angular。
我曾使用自制软件来安装node和npm,但npm由于某些权限等原因,不断出现错误。我node使用卸载brew,而是用于nvm安装node和npm,这不再给我错误。
但是,nvm有点烦人。我知道它是一个node版本管理器,nvm use 0.10每次打开外壳时我都不必担心。但是现在,每当我想grunt serve从新 shell访问我的网络应用程序时,我都需要安装 grunt-cli:
nvm use 0.10
npm install -g grunt-cli
# ...
grunt serve
Run Code Online (Sandbox Code Playgroud)
是grunt-cli不是全局安装?或者它没有意义,因为npm在不同的外壳之间不会“粘连”?
基本上,我现在只使用一个版本的节点就可以了。如何设置nvm, npm,grunt以便grunt每次打开新外壳时都不必重新安装?
我正在尝试构建 docker 并安装 nvm
一些代码行
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash
RUN source ~/.profile
Run Code Online (Sandbox Code Playgroud)
curl 运行成功,但在运行源代码时,出现以下错误
/bin/sh: 1: source: not found
The command '/bin/sh -c source ~/.profile' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud) 除了反复试验之外,还有其他方法可以检测我应该在存储库上使用的节点版本吗?
随着 Web 框架的快速兴起,人们普遍需要回到 6、12 或 24 个月以上的项目。过去几周我一直在做这件事,我检测正确节点版本的过程变成了:
git clone [REPO]
npm i
[build]
### if error
rm -r node_modules
nvm use 4, 5 or 6
npm i
[build]
Run Code Online (Sandbox Code Playgroud)
我不禁感到这里缺少一些非常基本的东西。感谢您可以与我分享的任何智慧!
nvm(节点版本管理器)用户经常在 VS Code 的集成终端中第一次看到这个错误:
nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Run `nvm use --delete-prefix v8.12.0 --silent` to unset it
Run Code Online (Sandbox Code Playgroud)
根据这里的解决方案:https : //github.com/Microsoft/vscode-docs/blob/master/docs/editor/integrated-terminal.md#why-is-nvm-complaining-about-a-prefix-option-集成终端何时启动
我必须先找到旧的 npm 安装路径,然后在它之前运行“which npm”。
但是nvm初始化脚本在哪里以及如何在它之前运行“which npm”,只需在脚本开头添加一行?有没有其他方法可以解决这个问题?
我正在 Node JS 中创建一个项目,并且我想使用我为此项目安装的特定版本。
这些是我遵循的步骤:
node -v
v10.20.1
node list
14.17.0
* 10.20.1 (Currently using 64-bit executable)
node -v> .nvmrc
cat. \. nvmrc
v14.17.0
Run Code Online (Sandbox Code Playgroud)
我的问题是当使用 mvn use 来使用 .nvmrc 文件中定义的版本时:
nvm use
.0.0
node v.0.0 (64-bit) is not installed.
Run Code Online (Sandbox Code Playgroud)
为什么它不读取文件的版本?
nvm ×10
node.js ×9
npm ×6
docker ×1
dockerfile ×1
gruntjs ×1
macos ×1
next.js ×1
nvm-windows ×1
package.json ×1
reactjs ×1
ubuntu ×1
windows ×1
windows-10 ×1