使用 npm 安装后在 bash 中找不到 express 命令

Posted

技术标签:

【中文标题】使用 npm 安装后在 bash 中找不到 express 命令【英文标题】:express command not found in bash after installing it with npm 【发布时间】:2011-08-31 11:32:05 【问题描述】:

刚刚安装了新的 ubuntu vm 来测试 node 按此顺序安装东西:

node
mongodb-server
npm
express
mongoose

现在,尝试创建一个新应用程序,我注意到 express 不能在 shell 中使用。 express -v 返回 快递:找不到命令

我是这样安装 npm 的

curl http://npmjs.org/install.sh | sudo sh

我是这样安装 express 的

npm install express

有什么想法吗?

【问题讨论】:

npm install -g express-generator 和 cd myapp && npm install, expressjs.com/guide.html 【参考方案1】:

从 express 4.00 开始,您还需要安装 express 生成器:

npm install -g express-generator

只有在这之后,你才能以命令的形式运行 express!

确认见:ExpressJS.com - Migrating to Express 4

【讨论】:

终于!从现在开始,这应该被接受为好的答案。我什至在我的 PATH 变量中有表达,但没有任何效果。谢谢@Fazi。 没错,这是唯一的办法 你知道为什么这对我不起作用吗?我运行 sudo npm install -g express-generator 并安装到 usr/bin 但我不能使用 express。我输入“快速测试”,没有任何反应。它只是返回到下一行。 这应该是答案【参考方案2】:

npm install express -g

你需要全局安装。

Npm 1.0 默认在本地安装模块。所以 bash 可执行文件位于/node_modules/bin/。您可以将该文件夹添加到PATH,或者您可以全局安装express,以便PATH 获取它

【讨论】:

您也可以通过 npm 运行脚本,方法是在 package.json 中添加一个“scripts”对象,然后执行“$ npm run-script scriptname”。 NPM 在运行脚本之前将本地包 repo 中的各种 bin 目录添加到路径中: +1 将脚本对象添加到 package.json 并使用 npm run-script scriptname - 这样可以保持全局空间清晰,并允许您在开发时更准确地测试生产环境。【参考方案3】:

我遇到了这个问题,正在通过 Homebrew 安装节点。问题是由 Homebrew 引起的。

所以我做到了:

brew uninstall node

然后使用nodejs.org 站点上的安装程序安装节点。

然后我跑了:

npm install -g express

瞧,没问题。

【讨论】:

【参考方案4】:

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

【讨论】:

虽然正确,但这个答案与法子已经给出的答案有何不同? ***.com/a/23266782/617937 其实这是最好的答案。【参考方案5】:

编辑 2017-06-29:这个答案已有 6 年以上的历史,但仍然获得投票/流量。相反(对于任何有问题的新用户)我会在此答案之前同时信任NODE_PATH official doc 及其corresponding bit about REPL usage。

与此问题非常相似,节点找不到我的全局快速安装,因此 require('express') 语句将失败。

为我解决了这个问题,当节点没有选择全局安装时,确保 NODE_PATH env. variable 设置正确。 在 Ubuntu 11.04 上,节点版本为 0.5.0-pre,我的路径是:

NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node

因此,为了澄清您可能想要导出上述环境。变量,或者您可以通过执行以下操作来测试上述值:

NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node node ./you_app.js

【讨论】:

【参考方案6】:

我不得不做一些事情:

    来自node.js modules path:

    echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile
    

    这设置了bash配置文件中的文件路径(可以使用nano .bash_profile查看

    由于我需要sudo,所以从 Raynos(上图)略微修改:

    sudo npm install express -g
    

    由于我需要sudo,所以从 Fazi(上图)稍作修改:

    sudo npm install -g express-generator
    

测试您的应用程序:

run `DEBUG=myapp:* npm start`

参考:http://expressjs.com/en/starter/generator.html

【讨论】:

【参考方案7】:

如果您正在运行 Windows:

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"

【讨论】:

Windows 没有export。如果您指的是 cygwin 或 mingw 或类似的东西,您可能应该明确说明。

以上是关于使用 npm 安装后在 bash 中找不到 express 命令的主要内容,如果未能解决你的问题,请参考以下文章

在这个项目中找不到 expo - 你运行 yarn / npm install 了吗? npm 已安装,expo 目录存在

bash:git:在 MSYS 中找不到命令

SQL 导入后在数据库中找不到表

在 Mac 上构建后在电子应用程序中找不到模块

从 EMR 迁移到 AWS Glue 后在 Spark SQL 中找不到表

升级到 5.4 后在 Laravel BrowserKit 包中找不到 PHPUnit\Framework\Constraint\Constraint