出现错误,错误:npm install 后找不到模块“express”

Posted

技术标签:

【中文标题】出现错误,错误:npm install 后找不到模块“express”【英文标题】:Getting error, Error: Cannot find module ‘express’ after npm install 【发布时间】:2014-05-25 06:25:08 【问题描述】:

我是 Node JS 和 express 的新手,我刚刚在 Windows 7 中安装了 npm。

我已经使用全局标志安装了 express:

npm install -g express

这成功地在C:\Users\USER_NAME\AppData\Roaming\npm\node_modules\express 中安装了express,并将C:\Users\USER_NAME\AppData\Roaming\npm 添加到我的路径中。

但是,在命令行中使用 express 并不成功。任何以 express 开头的命令都告诉我它找不到要执行的命令:

 'express' is not recognized as an internal or external command,
  operable program or batch file.

查看安装文件夹,我也找不到可执行文件(.exe 或 .cmd)。谷歌搜索过去的问题表明 node_modules 文件夹(至少在过去的版本中)应该包含一个 express 文件夹(我有)和一个 .bin 文件夹,其中包含 express.cmd。我似乎没有.bin 文件夹。

npm --version 给了我 1.4.3。 Express 版本看起来是 3.0.0

我也尝试在本地安装它,我尝试运行npm cache clean 并重新安装。这两种方法都没有改变这种情况:node_modules 文件夹中没有任何可执行文件。

我是否安装不正确?如果是这样,为什么它不包含可执行文件?

【问题讨论】:

【参考方案1】:

我在 Windows 8.1 上遇到了同样的问题。 express.cmd 没有创建,但是我找到了文本文件:

C:\Users\you\AppData\Roaming\npm\node_modules\express\Readme.md

它建议运行这个:

npm install -g express-generator@3

这会下载更多的东西。

之后,您可以在 Windows 命令提示符下使用 express。它将在您的路径中( C:\Users\you\AppData\Roaming\npm)

编辑:

express-generator@3 现在更新为express-generator@4, 所以改用这个吧,

npm install -g express-generator@4

答案并不完整,因为模块安装在C:\Users\you\AppData\Roaming\npm 目录中,如上所述,如果没有,您将无法始终访问任何模块,1) 将其链接到当前项目或 2) 明确定义 NODE_PATH系统变量将您的节点指向系统中的正确位置。

第一种方法,

安装模块后(在我们的例子中为express),您可以使用 cmd 转到当前项目目录并执行以下命令,将其链接到当前项目,

npm link express

如果链接成功,你会收到这样的消息,

D:\Project\node_modules\express -> C:\Users\Sufiyan\AppData\Roaming\npm\node_modules\express

(如果不以管理员权限运行 cmd,则无法链接目录)

第二个选项是创建或更新 NODE_PATH 系统变量,将您的节点指向系统中的正确位置。阅读this了解详情。

另请阅读有关该问题的官方 Node.js 文档,

http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/

【讨论】:

正是我需要的。谢谢。 这也为我解决了问题。 Windows 8.1 上的 nodejs v0.10.26 在 Linux 上也有同样的问题,所以不仅仅是 Windows。解决方案有效,谢谢。 这也适用于我(Windows 10、Express 4.13.4、Node 6.2.2)。【参考方案2】:

这就是你需要做的所有事情:

C:\node> npm install -g express-generator

您可以在this detailed start up tutorial 找到更多信息。

【讨论】:

所以你给了我一个-1来重组一个有用的答案?一个真正的新手想知道的东西?我的意思是这没关系,但这是一种让我想要做出贡献的方式! 谢谢@rashadb,正是我要找的东西 我很高兴它对 DonieM 有帮助!【参考方案3】:

要解决此问题,您需要使用:

npm install -g express-generator@3

它已从上一个命令更新:

npm install -g express

【讨论】:

【参考方案4】:

请注意,express --version 命令返回的版本将是 express-generator 的版本,而不是 express。

【讨论】:

如何卸载它?因为我安装它时没有 -g 如果你这样做了,那么只需删除本地节点模块文件夹或仅删除其中的文件夹【参考方案5】:

我遇到了这个问题,似乎我们使用 -g 它被忽略了。

我刚刚将MyProject/source/vendor的内容复制到C:\Users\username\AppData\Roaming\npm

只复制 node_modules 中需要的文件夹(例如:express、express-generator、bower、yo、gulp 和应该在 PATH 中的包)。


这个问题真的很困扰大家(或者windows用户?),npm程序员应该解决它!

【讨论】:

【参考方案6】:

以管理员身份运行 cmd。它解决了我的情况下“快递”未找到的问题

【讨论】:

【参考方案7】:

npm link express 将 express 从任何目录链接到您的项目目录是节点,默认情况下,当您运行npm install express 时,它将安装在C:\Users\****\AppData\Roaming\npm\node_modules\express,因此您不必安装 express 和其他所需的框架每次都安装在您的项目目录中,而不是您可以指向您的节点,即您拥有应用程序的位置。

【讨论】:

以上是关于出现错误,错误:npm install 后找不到模块“express”的主要内容,如果未能解决你的问题,请参考以下文章

节点。 npm install 后找不到 gulp

在 npm 更新 v5.4.2 后找不到 ./node_modules/react-router-dom 模块中的错误

运行 pod install 后找不到目标文件

npm install 显示错误,找不到 git

sh: react-scripts: 运行 npm start 后找不到命令

在 Angular 中安装 Tesseract.js 后找不到名称“缓冲区”错误