通常我可以使用 npm 安装库,但今天在安装 yeoman 时遇到了这个错误。请帮助找出根本原因。
D:\Works\phonegap\ionic\todo>npm install -g yo
module.js:340
throw err;
^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
我查看了文件夹:
C:\Program Files\nodejs\node_modules\npm\bin\
但没有看到 node_modules 文件夹作为描述的错误。
我还尝试找到 npm-cli.js 并查看它实际上在 C:\Program Files\nodejs\node_modules\npm\bin\
事实证明,问题是由于系统变量中节点的路径错误。路径当前指向
(我真的不知道我什么时候修改的)
C:\Program Files\nodejs\node_modules\npm\bin
所以我改为
C:\Program Files\nodejs
它就像一个魅力。
您需要在命令行中运行它。
SET PATH=C:\Program Files\Nodejs;%PATH%
node_modules
文件夹
我刚刚修复了我的 NodeJS 安装,它对我有用!
转到 Control Panel\All Control Panel Items\Programs and Features
-->找到 NodeJS
并选择选项修复来修复它。希望这可以帮助。
npm install express
,修复它有帮助。
如果您的路径中有 C:\Program Files\nodejs
和 C:\Program Files\nodejs\node_modules\npm\bin
,您也可能会遇到此问题。从路径中删除后者
从您安装的节点路径复制名为 npm
的目录(在我的例子中,npm 目录在 C:\Program Files\nodejs\node_modules
中可用)。
导航到 C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules
并将复制的 npm
目录粘贴到那里。
当我遇到同样的错误时,这种方法对我有用。 . .
这与问题中的情况不同,但可能对面临类似问题的人有所帮助。在 Windows 上,如果您从某些 CI/自动化工具调用 npm
命令,您可能会遇到错误:
Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'
其中 SOME_PATH
不是 Program Files/...
而是某个项目目录。因此 npm 尝试在项目根目录中查找 npm-cli.js,而不是在 Program Files/nodejs
中搜索它。
原因是 npm.cmd 脚本:
:: Created by npm, please don't edit manually.
@ECHO OFF
SETLOCAL
SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
SET "NODE_EXE=node"
)
SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)
"%NODE_EXE%" "%NPM_CLI_JS%" %*
此脚本使用 %~dp0
来查找 npm-cli.js,但一些自动化工具可能会以 %~dp0
指向本地项目目录的方式设置工作目录,因此脚本无法正常工作。
一种可能的解决方案可能是从此更改 npm 调用
npm.cmd install
对此
cmd.exe /c npm.cmd install
使用 nvm 安装时,我在 node 8.5 上遇到了同样的问题。以下解决方案对我有用
$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.
$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...
Installation complete. If you want to use this version, type
nvm use 8.5.0
Omkar@VAST-0137 MINGW64 /d/code
这对我有用,因为之前没有使用 nvm 正确安装节点 8.5。我发现原因是之前没有在 node_modules 中创建“npm\bin\npm-cli.js”文件夹和文件。
其他答案都不适合我。
这是我写的(在 windows 上的 git bash shell 中):
PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman
这在我安装 GoogleChrome/puppeteer 后开始发生,解决方案是重新安装 npm:
$ npm i npm@latest
或者
$ npm install npm@latest
在 Mac 上:
当我遇到同样的错误时,我正在使用 Maven com.github.eirslett 前端插件运行它。
最终我不得不:
通过此处下载的安装程序安装 Node.js:http://nodejs.org/
从我的 Maven 构建结构中删除所有 node/
和 node_modules/
文件夹。
除了上述之外,我还必须删除 C:\Users\%USERNAME%\AppData\Roaming\npm
。这有帮助。
不要更改任何环境变量
是安装程序导致了问题并且没有安装所有必需的文件。
我刚刚修复了 Windows 7 上的 NODEJS 设置,它运行良好。可能你可以重新安装,以防万一有些东西不起作用。
升级到 nodejs 最新版本时,实际上有 2 个路径被添加到系统变量中。
1. C:\Program Files\nodejs
2. C:\Program Files\nodejs\node_modules\npm\bin< br> 对于 Windows 7/8/8.1 用户,他们将没有环境变量 Windows 10 智能 GUI。
无论如何,您所要做的就是搜索 "C:\Program Files\nodejs\node_modules\npm\bin"
并将其删除。
另外,删除 { 2}来自您的环境变量。我发布这个答案是因为我浪费了 10 个小时在互联网上寻找解决方案。通过结合上面的答案,我终于解决了这个问题。
我在 Windows 上遇到了同样的问题。我刚刚修复了 Node,在 Windows 上重新启动命令后它工作正常。
在 Windows 10 上:
按windows键,输入edit the system environment variables然后回车。单击环境变量... 在打开的标题为 Environment Variables 的窗口的下半部分,您将看到一个标题为 System Variables 的表格,其中有两列,第一列名为 variable。找到带有变量 Path 的行并单击它。单击编辑,这将打开一个标题为编辑环境变量的窗口。如果你发现这里
C:\Program Files\nodejs\node_modules\npm\bin
选择它,然后单击右侧的编辑按钮,然后将该字段编辑为您拥有 nodejs 文件夹的路径,在我的情况下,它只是将其缩短为:
C:\程序文件\nodejs
然后我关闭了我所有的 cmd 或 powershell 终端,再次打开它们,npm 正在工作。
这里没有一个解决方案对我有用,但是在我重新启动系统并再次执行 npm install
后,它就起作用了。我猜想我之前运行的一个或多个进程坚持它。
Windows 10 上的简单 PC 重启为我带来了魔力!
就我而言,我使用的是 nvm-windows 1.1.6 ,并且我使用 nvm install latest
更新了我的 nodejs 版本,它最终告诉我安装了 nodejs 和 npm,但是当我尝试执行 npm install
时,我收到了
错误:找不到模块“C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js”
在检查 nvm-windows 结构时,我发现 C:\Program Files\nodejs
符号链接到 %APPDATA%\nvm\NODE_VERSION
(在我的情况下 NODE_VERSION 是 v9.7.1),其中文件夹 node_modules
里面什么都没有,导致了这个错误。解决方案是从我以前版本的 node_modules
文件夹中复制 npm
文件夹并将其粘贴进去。然后我用 npm install npm@next -g
更新了我的 npm,一切又开始工作了。
我知道这是一篇较旧的帖子,但在我写这篇文章时,Node js 的版本是 12.13.1。人们通常会遇到这种情况,因为他们可能已经安装了以前版本的 Node js,它在系统路径中添加了以下内容。
C:\Program Files\nodejs\node_modules\npm\bin
但是,较新的版本需要添加以下内容:-
C:\程序文件\nodejs
我的意思是说你安装 Nodejs 的路径。默认是
C:\程序文件\nodejs
但是,如果您提供了不同的位置,则应将其指向该位置。
只需运行此命令:
npm i npm@latest -g
npm install -g npm@[version] 修复了问题
对于仍然围绕这个线程的人:
从官方站点安装节点(检查 npm 和节点版本以检查是否安装正确,是在新终端/cmd 中);
立即安装 nvm,当提示是否使用 nvm 管理当前节点时单击是;
打开新的cmd并运行nvm。
nvm install latest
安装最新版本的 Node。
同样的问题。
通过复制丢失的文件来解决
C:\Users\UserName\AppData\Roaming\npm\node_modules\npm\bin
至
C:\Users\UserName\node_modules\npm\bin
丢失的文件是
npm
npm.cmd
npm-cli.js
npx
npx.cmd
npx-cli.js
VS2017 中的解决方案(在 Tools | Options ... 下)
https://i.stack.imgur.com/jpiOZ.png
我将路径更改为:C:\Program Files\nodejs
我最后在 windows7 上安装 node9.0.0 时遇到了这个问题,解决方案是在这样做之前从 C:\Program Files\nodejs\node_modules\npm\bin 中删除 npm npm.cmd npx npx.cmd,解决方法是运行 C:\Program Files\nodejs\npm 这是一种方法,看看你是否有同样的问题。
在 node_modules 中手动创建一个 npm 文件夹,然后使用修复选项重新运行安装程序。它复制丢失的文件。
对我来说,上述方法都不起作用,我只是注意到每次我执行“npm install ...”时,任何 npm 命令都会停止工作。所以每次安装,我都必须运行 NodeJS 安装程序并选择“修复”。直到我找到真正的解决方案:)
将 NPM 更新到最新版本对我有用:
npm install npm@latest -g
更改环境路径变量 C:\Program Files\nodejs\node_modules\npm\bin 并打开命令终端和 npm -v 和
我今天在 Linux 服务器上遇到了完全相同的问题。而原因其实很简单,因为我在make
之后没有做make install
,而是尝试直接调用生成的npm
。因此 PATH 和一切都是一团糟。
所以对我来说,解决方案就是在 make
之后执行 make install
并在 .node/bin/npm
下运行 npm
。
错误:找不到模块 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'
看上面,很明显路径有问题。 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js' 应该更改为--> 'C:\Program Files\nodejs\node_modules\npm\bin\npm -cli.js' 这意味着中间的“\node_modules\npm\bin”被复制了,这导致了这样一个愚蠢的错误。我通过编辑系统变量来修复它并如上所述更新 PATH。
不定期副业成功案例分享