【问题标题】:Express command not found找不到快速命令
【发布时间】:2014-05-25 00:14:53
【问题描述】:

由于某种原因,在我的机器上使用 npm install -g express 全局安装 Express 后,如果我将 cd 放入目录并尝试运行 express,我收到以下错误:

express: command not found. 

即使我使用sudo 运行它,我仍然得到相同的输出。我已经尝试了多种不同的解决方案来解决这个问题,但没有任何效果。我已经通过homebrew 安装了节点,Stack Overflow 上的一些线程表明这可能是一个问题,所以我完全卸载了节点并通过 nodejs.org 上的安装程序重新安装(我现在正在运行 v0.10.26)并且问题仍然存在。

如果我进入我的/usr/local/lib/node_modules,Express 就在那里,但在 /usr/local/bin 中没有关于 Express 的任何内容。我不确定这是否有问题,但考虑到该目录中有其他全局安装的节点包的二进制文件,我认为那里可能有问题。

这是我安装时得到的确切输出:

npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/accepts/1.0.0
npm http GET https://registry.npmjs.org/type-is/1.0.0
npm http GET https://registry.npmjs.org/range-parser/1.0.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/fresh/0.2.2
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/utils-merge/1.0.0
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.2
npm http GET https://registry.npmjs.org/escape-html/1.0.1
npm http GET https://registry.npmjs.org/serve-static/1.0.1
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/path-to-regexp/0.1.2
npm http GET https://registry.npmjs.org/parseurl/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/type-is/1.0.0
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/methods/0.1.0
npm http 304 https://registry.npmjs.org/accepts/1.0.0
npm http 304 https://registry.npmjs.org/range-parser/1.0.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.3
npm http 304 https://registry.npmjs.org/fresh/0.2.2
npm http 304 https://registry.npmjs.org/serve-static/1.0.1
npm http 304 https://registry.npmjs.org/qs/0.6.6
npm http 304 https://registry.npmjs.org/utils-merge/1.0.0
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.2
npm http 304 https://registry.npmjs.org/escape-html/1.0.1
npm http 304 https://registry.npmjs.org/path-to-regexp/0.1.2
npm http 304 https://registry.npmjs.org/parseurl/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http 304 https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/fresh/0.2.0
express@4.0.0 /usr/local/lib/node_modules/express
├── methods@0.1.0
├── parseurl@1.0.1
├── utils-merge@1.0.0
├── merge-descriptors@0.0.2
├── escape-html@1.0.1
├── debug@0.8.0
├── cookie-signature@1.0.3
├── range-parser@1.0.0
├── fresh@0.2.2
├── qs@0.6.6
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── path-to-regexp@0.1.2
├── type-is@1.0.0 (mime@1.2.11)
├── send@0.2.0 (mime@1.2.11)
├── serve-static@1.0.1 (send@0.1.4)
└── accepts@1.0.0 (negotiator@0.3.0, mime@1.2.11)

【问题讨论】:

    标签: node.js command-line express


    【解决方案1】:

    我最近一直在尝试安装 express-generator ,但是它会失败,

    $ zsh : command not found : express
    
    

    在我做完之后

    $ sudo npm install -g express
    $ sudo npm install -g express-generator
    
    

    然后,我看到了 npm install commnand 的控制台日志

    /usr/local/Cellar/node/13.1.0/bin/express -> /usr/local/Cellar/node/13.1.0/lib/node_modules/express-generator/bin/express-cli.js
    
    

    提示可执行文件在 bin 文件夹中。

    所以解决方案是: 打开 ~/.zshrc 或 ~/.bashrc 并导出路径如下:

    export PATH=/usr/local/Cellar/node/13.1.0/bin:$PATH
    

    现在可以了。

    【讨论】:

      【解决方案2】:

      我已经有好几天面临这个挑战了。经过深入搜索,我了解到必须读取每个可用资源,尤其是从父源 [在本例中为 EXPRESSJS.COM]。这是一个快速修复。

      从 4.0+ 版本开始,如果您运行的是 Node 8.2+,则不一定需要安装 express-generator。只需运行

      npx express-generator
      

      express-generator 将按照您运行时的运行方式运行:express

      更多详情见Getting Started

      愉快的阅读和研究时间。

      【讨论】:

        【解决方案3】:

        你需要运行:

        npm install -gd express-generator
        

        原来的带有 cli 的 express,现在 cli 拆分成单独的 express-generator 包。原来项目运行时生成的是express node app.js,因为httpserver相关代码在app.js中,现在这部分代码放到项目目录bin/www下面,app.js只保留实现app逻辑代码,需要运行bin/www。只是一个非常简单的应用和细化包依赖版本的变化。

        【讨论】:

          【解决方案4】:

          随着 Express 4.0.0 的发布,您似乎需要做sudo npm install -g express-generator

          【讨论】:

          • 这项工作非常感谢您的帮助!昨晚我准备把头发拉出来。
          • sudo 不是必需的,因为提到的原因,它仍然可以工作。 stackoverflow.com/questions/4938592/…
          • 无赖,甚至官方文档都没有提到它。 ;-)
          • 您是如何找到它的,如果文档中没有,我们应该如何了解它?
          • FWIW 官方文档确实提到了它[现在?] - expressjs.com/starter/generator.html
          猜你喜欢
          • 1970-01-01
          • 2014-12-17
          • 2014-05-24
          • 2016-07-22
          • 1970-01-01
          • 2010-09-07
          • 2012-06-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多