【问题标题】:'Express' is not recognized command (windows)'Express' 不是识别命令(Windows)
【发布时间】:2012-11-13 06:06:08
【问题描述】:

好的,我正在 Windows (7) 上运行节点。使用 npm 我刚刚将模块安装到 d:\ 目录。因此我的文件结构如下所示:

D:\
  -myproject
     -node_modules
        -.bin
        -express

但是,当我在这个“myproject”目录中时,我似乎无法运行“express”,例如:

D:\myproject\express site
'express' is not recognized as an internal or external command, operable program or batch file.

我做错了什么吗?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    试试:

    npm install -g express-generator@3
    

    这为我解决了问题。

    编辑:适用于版本 4

    npm install express-generator -g
    

    说明: express 是 express js 的依赖包。 express-generator 是用于启用 express 命令和创建示例项目等的包。 假设这是为了项目依赖与 express 的 cli 工具解耦而单独保存的。

    另一个 SO 参考:https://stackoverflow.com/a/41311733/1666582

    【讨论】:

    • 它到底是做什么的。与版本有关?
    • 执行 npm install express-generator -g 以获取 express 二进制文件。还将以下 USER 路径语句添加到系统环境变量中。 %USERPROFILE%\AppData\Roaming\npm\node_modules\express-generator;%USERPROFILE%\AppData\Roaming\npm;%USERPROFILE%\AppData\Roaming\npm\node_modules
    • 也为我工作。我相信这只是抓住了一个不同的快递。
    • 注意!这将安装express v3,如果您已经安装了它并且想要安装直到今天的最新版本express v4,请将其从%USERPROFILE%\AppData\Roaming\npm\node_modules 中删除并从npm 重新安装:npm install -g express-generator@4
    • 适用于win10。最后没有加@3,也不需要修改路径
    【解决方案2】:

    我的猜测是您没有全局安装 Express。您可以使用以下命令(请参阅http://expressjs.com/guide.html)全局安装 express(因此在您的 PATH 中可用):

    npm install -g express
    

    您安装它的方式仅在您安装它的文件夹中可用,这种方法没有任何问题。在全球范围内使用它几乎没有什么优势。

    如果 express 不在您的 PATH 中,您可以通过输入完整路径来运行它:

    \myproject\node_modules\.bin\express.cmd
    

    【讨论】:

    • 嘿@Hector 感谢您的评论。然而,我在某处读到,全局安装存在问题,如果可能的话应该避免。这是真的吗?
    • 我不知道任何问题本身。我只是喜欢将它放在本地,以便我可以在需要时将每个项目迁移到更新的版本。
    • 在我的情况下,它没有在 .bin 中创建 express.cmd 但 node_modules\express\index.js 存在。 express.cmd 长什么样子?
    • stackoverflow.com/questions/23002448/express-command-not-found 在安装 express-generator 时使用 -gd 指示。这创建了 express.cmd
    • 我认为这个答案不正确 - 命令 npm install -g express 不会(对我来说,Win7)在指定位置创建 express.cmd 文件。下一个答案 npm install -g express-generator 将它正确安装在 npm 路径 AppData\Roaming\npm 中。
    【解决方案3】:

    以下是在命令行中键入的内容以使其在 Windows 中运行:

    npm install express-generator -g
    

    [来源:http://expressjs.com/starter/generator.html]

    【讨论】:

      【解决方案4】:

      随着 Express 4.0.0 的发布,您似乎需要这样做

       npm install -g express-generator.
      

      【讨论】:

        【解决方案5】:

        我们需要为 express 全局目录设置路径

        C:\Users[用户名]\AppData\Roaming\npm\

        添加新路径后,请重新打开CMD控制台

        【讨论】:

        • 你解决了我的问题。我去了windows环境变量,我编辑了路径变量并添加了路径。并重新启动了cmd。谢谢
        • 在 Win8.1 上为我工作。谢谢。
        【解决方案6】:

        尝试了所有这些,但从未奏效。通过启动安装并选择修复选项来修复 Node.js。

        干杯

        【讨论】:

          【解决方案7】:

          对我有用的是:

          我使用的是 windows 命令提示符而不是 node.js 命令提示符。

          在 Windows 10 中,只需在 Windows 搜索栏中键入“节点”

          您会看到一个 node.js 桌面应用程序和一个 node js 命令提示符。

          选择“node js 命令提示符”

          在命令提示符下输入

          npm install express-generator -g
          

          然后导航到某处并输入:

          express your-website-text-here -e
          

          将生成一个包含快速文件的目录。现在你也不会看到 express 错误了。

          【讨论】:

            【解决方案8】:

            当您安装 Node.js 时,以下路径会添加到 Windows OS %Path% 变量中,我假设其他操作系统上也会发生类似情况:

            C:\Users\<your-windows-username>\AppData\Roaming\npm

            在我的例子中,因为我为雇主使用的工作 Windows 笔记本电脑严格限制员工可以在他们的机器上执行的操作(即许多操作需要提升的管理员权限),所以 Node.js 无法将上述路径添加到Windows %Path% 环境变量,令我懊恼的是,Node.js 安装对它保持沉默。导航到上面的文件夹,你会注意到express 命令在那里,见下面的截图。

            我是怎么想出来的?我在没有管理员权限限制的个人家用 Windows 机器上进行了 Node.js 的全新安装,就像我的工作机器一样,比较了之前和之后的 %Path% 值,并注意到添加了该路径。我的工作机器不见了。

            我别无选择,只能手动将路径添加到%Path%,然后在我运行它的任何路径中都识别出express

            【讨论】:

              【解决方案9】:

              我能够解决这个问题:

              npm install express-generator -g
              

              【讨论】:

                【解决方案10】:

                我能够通过以下软件包安装进行修复:

                npm install express-generator -g
                

                谢谢

                【讨论】:

                  【解决方案11】:

                  我尝试了上述所有解决方案,但我没有运气。 打开“Node.js”命令提示符并以管理员身份尝试。它对我来说很好。不要尝试使用 windows 命令提示符。

                  【讨论】:

                    【解决方案12】:

                    我有同样的问题并理解解决方案,但我不明白为什么,运行 npm install -g express,express.bat 不会自动添加到路径中。

                    使用 npm install -g express 运行有相同的结果。下载包并存储在 node_modules 中,但 express.bat 没有添加到路径中。

                    【讨论】:

                      【解决方案13】:

                      以管理员身份运行节点命令提示符,然后全局安装 express
                      npm install -g express
                      然后转到您要安装 express generator 的文件夹,在那里打开命令提示符并运行此命令
                      npm install express-generator,它将解决问题

                      【讨论】:

                        【解决方案14】:

                        我已经尝试了以上所有解决方案,但它对我不起作用,最后我重新安装了更新版本的node.js,并再次开始快速安装过程。它对我有用。

                        npm install -g express
                        npm install -g express-generator
                        

                        【讨论】:

                          【解决方案15】:

                          你用什么命令打开目录?

                          该错误意味着 CMD 在当前目录中找不到“express”可执行文件。

                          使用“PUSHD”命令或“CD /D”代替“CD”

                          @Echo OFF
                          PUSHD "D:\myproject\express" || (Echo bad folder)
                          express.exe "site"
                          Pause&Exit
                          

                          【讨论】:

                            【解决方案16】:

                            Express 在其他地方加载,而不是在 Windows 路径环境变量中。您需要找到已安装express.exe 并添加路径。也许像 ;"C:\Program Files\Express\bin";

                            【讨论】:

                            • 您能详细说明一下吗?我的意思是当我使用 npm 安装 express 时,它似乎在命令提示符的同一文件夹状态下安装 express。我的意思是,如果我在 D:\myproject\ 中并输入“npm install express”,它会在同一个“myproject”目录中创建一个 node_modules 文件夹并在其中安装 express。如果我很笨,我很抱歉:(。
                            • 安装 node.js 会将 C:\Users\\AppData\Roaming\npm\ 目录添加到您的 PATH 变量中。如果全局安装无法正常工作,那么一定是某些东西意外删除了它。运行 node.js 的修复安装应该可以解决这个问题
                            【解决方案17】:

                            从您的项目目录运行“npm install express”和“npm install express-generator”将解决问题(如果有帮助的话)。

                            但是,这并不能解决全局问题。

                            【讨论】:

                              【解决方案18】:

                              如果您在创建项目时获得此文件夹的权限,则可以检查该文件夹的权限

                              快递项目

                              【讨论】:

                                【解决方案19】:

                                像这样更改 package.json 文件中的脚本部分

                                "scripts": {
                                "start": "node app.js"
                                

                                }

                                【讨论】:

                                  【解决方案20】:

                                  我也遇到了类似的问题,最后我尝试使用 node.js 命令提示符而不是 windows 命令提示符并且它有效。因此,请从 node.js 命令提示符尝试。

                                  【讨论】:

                                    【解决方案21】:

                                    尝试了所有这些但对我不起作用。此外,我尝试了不同的来源,但从未为我工作过。
                                    最后,发现我需要强制运行命令。它对我有用。
                                    确保以管理员身份运行命令。

                                     npm install -g --force express-generator
                                    

                                    它将覆盖现有的快递文件。

                                    【讨论】:

                                      【解决方案22】:

                                      使用 npm start .. 然后 app.js 运行 .. 可以在通常的端口 3000 上监听

                                      【讨论】:

                                        猜你喜欢
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多