表达:找不到命令,以前工作过吗?

express: command not found , has worked before?

我正在开发 OSX 10.10.4,我之前在这台计算机上使用过 node.js 和 express。 但是现在当我想启动一个新的应用程序时,计算机将不再识别命令express

我已经尝试使用所有这些命令安装它:

- npm install express
 - npm install -g express
 - npm install express -g
 - sudo npm install -g express
 - sudo npm install express -g
 - npm install express-generator
 - npm install -g express-generator
 - npm install express-generator -g
 - sudo npm install -g express-generator
 - sudo install express-generator -g
 - sudo npm install -g express-generator@3
 - sudo npm install -g express-generator@4

但是还是无法识别命令express

这是我在没有 -g

的情况下安装时的输出
npm install express
express@4.13.3 node_modules/express
├── escape-html@1.0.2
├── merge-descriptors@1.0.0
├── cookie@0.1.3
├── array-flatten@1.1.1
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── fresh@0.3.0
├── range-parser@1.0.2
├── vary@1.0.1
├── path-to-regexp@0.1.7
├── content-type@1.0.1
├── etag@1.7.0
├── parseurl@1.3.0
├── content-disposition@0.5.0
├── serve-static@1.10.0
├── depd@1.0.1
├── qs@4.0.0
├── finalhandler@0.4.0 (unpipe@1.0.0)
├── on-finished@2.3.0 (ee-first@1.1.1)
├── debug@2.2.0 (ms@0.7.1)
├── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1)
├── type-is@1.6.6 (media-typer@0.3.0, mime-types@2.1.4)
├── accepts@1.2.12 (negotiator@0.5.3, mime-types@2.1.4)
└── send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)

当我使用 -g

安装时
sudo npm install -g express-generator
Password:
/Users/Maiteh/.node/bin/express -> /Users/Maiteh/.node/lib/node_modules/express-generator/bin/express
express-generator@4.13.1 /Users/Maiteh/.node/lib/node_modules/express-generator
├── sorted-object@1.0.0
├── commander@2.7.1 (graceful-readlink@1.0.1)
└── mkdirp@0.5.1 (minimist@0.0.8)

我尝试了一些其他的方法,例如 PATHnodejs-legacy,但是其中 none 有效。 使用 sudo apt-get install nodejs-legacy 计算机找不到命令 apt-get.

您在这里描述的问题有些杂乱无章,所以我会尝试一次解决一个问题。

  1. Express 是 node.js 的流行框架。将其添加到您的项目的典型方法是执行 npm install --save express,然后它将其保存到您的 package.json 文件中并将其安装到 node_modules 中。将 -g 添加到该命令将尝试在全局安装它,但这不是使用 express 的方式。 Express 在每个项目的基础上使用。有关详细信息,请参阅他们的 website

  2. 在您 运行 的大命令列表中,您提到了 express-generator。 Express-generator 是一种工具,可让您快速构建一些样板文件,从而更轻松地启动 express 项目。由于 express-generator 意味着 运行 全局而不是项目内部,因此您确实使用 -g 标志安装它。有关使用和安装的详细信息,请参阅他们的website

  3. 您正在尝试使用 apt-get 命令安装更多节点内容。该命令用于 Linux(通常是 Ubuntu/Debian)机器上的包管理。 Mac OS X 没有附带(而且您绝对不需要它)。任何提及 运行ning apt-get 的说明均不针对 Mac 用户。

基本上,我认为您没有问题,您显示的日志正是我希望看到的。使用 express-generator 生成一个样板项目,您应该已经准备好开始处理您的快速项目。祝你好运!

我安装后得到express:command not found的原因是因为我的$PATH不知道快递在哪里

对于任何想要安装 express 命令行工具的人,我都是这样做的

sudo npm install express-generator -g

这导致

/usr/local/share/npm/bin/express -> /usr/local/share/npm/lib/node_modules/express-generator/bin/express
express-generator@4.13.1 /usr/local/share/npm/lib/node_modules/express-generator
├── sorted-object@1.0.0
├── commander@2.7.1 (graceful-readlink@1.0.1)
└── mkdirp@0.5.1 (minimist@0.0.8)

当我尝试 express --version 时,我得到了 command not found

使用 open ~/.bash_profile

从终端打开您的 bash_profile

然后添加安装 express 后获得的路径,在我的例子中是 /usr/local/share/npm/lib/node_modules/express-generator/bin/express

将此添加到您的 bash_profile

export PATH=/usr/local/share/npm/lib/node_modules/express-generator/bin:$PATH

保存文件并返回终端。输入 hash -r 然后退出终端并重新启动它。

现在,如果您尝试 express --version,您应该会看到命令行工具正在运行。