使用 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 目录存在
从 EMR 迁移到 AWS Glue 后在 Spark SQL 中找不到表
升级到 5.4 后在 Laravel BrowserKit 包中找不到 PHPUnit\Framework\Constraint\Constraint