express:命令未找到,之前有效吗?

时间:2015-08-11 21:58:32

标签: node.js macos express terminal

我正在使用OSX 10.10.4,我曾经使用过node.js并在此计算机上进行过表达。 但是现在当我想开始一个新的应用程序时,计算机不再能识别命令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,但这些内容都不起作用。 使用sudo apt-get install nodejs-legacy,计算机无法找到命令apt-get

2 个答案:

答案 0 :(得分:6)

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

对于任何想要安装快速命令行工具的人我都这样做了

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

之后添加安装快递后的路径,在我的情况下是 /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,您应该会看到命令行工具正在运行。

答案 1 :(得分:4)

你在这里描述的问题有些混乱,所以我会尝试一次解决这些问题。

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

  2. 在您运行的大量命令列表中,您提到了express-generator。 Express-generator是一个工具,可以让您快速构建一些样板,使启动快速项目更容易一些。由于express-generator意味着全局运行而不是项目内部,因此您需要使用-g标志进行安装。有关使用和安装的详细信息,请参阅website

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

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