使用npm安装后找不到命令

时间:2014-11-13 19:37:23

标签: linux node.js bash npm osx-yosemite

提前感谢您查看我的帖子!

主要问题:

  1. 当我从命令行调用http-server时,我该怎么办?

  2. 我觉得这个问题揭示了我的linux无能。如果我想从头开始使用node和home brew,那么在继续之前我必须删除哪些文件和目录(或确保它们已被卸载命令删除)?

  3. 提前致谢!

    背景

    在我认为我修复了home brew(OS X 10.10使用更新版本的Ruby)后,我尝试在收到消息-bash: http-server: command not found后用npm重新安装http-server。所以我跑了sudo npm install -g http-server。然后我会看到一个包含npm http GET https://registry/npmjs.org/npm http 304 https://registry/npmjs.org/的行的屏幕。后者后跟~.node/bin/http-server -> ~.node/lib/node_modules/http-server/bin/http-server' and 'http-server@0.7.3 ~.node/lib/node_modules/http-server

    备注

    1. 我发现了/usr/local/bin/http-server@,我认为这是http-server的符号链接。

    2. 似乎链接http-server -> ../lib/node_modules/http-server/bin/http-server不存在,我无法弄清楚原因。

    3. 文件夹/usr/local/lib/node_modules/http-server确实有0.6.10.7.3

    4. 目录0.7.3只有一个包目录,后跟一个package.json文件。我很困惑,因为我希望这不仅仅包含一个package.json。

    5. 我认为brew已正确安装,因为which brew提供/usr/local/bin/brew

    6. 此外,我得到brew -v Homebrew 0.9.5

    7. which npm给出了/usr/local/bin/npm(节点也是如此)

    8. npm -v提供1.4.28

    9. My Path变量列在第10项中(分解为更具可读性),如下所示。

      • $ HOME / .npm(我手动把它放在这里,见下面的11为什么)
      • / bin中
      • / sbin目录
      • 的/ usr / bin中
      • / usr / sbin目录
      • 的/ usr / local / bin中
      • 的/ usr /本地/ MySQL的/ bin中
      • 的/ opt / X11 / bin中
    10. 看来$ Home / .npm有一个我用npm安装的软件包列表。我想如果我把$ Home / .npm放在它可能会看到http-server,它在这个目录中。但它似乎与上面第4点所述的结构相同。

    11. 我正在使用OS X 10.10

    12. 昨天我安装了X Code 6.1,因为由于命令行问题,显然需要它。

1 个答案:

答案 0 :(得分:1)

全局安装

您是否全局安装了http-server npm?

要全局安装模块(CLI需要),必须启用全局标志:

npm install -g http-server

npm脚本

也可以在本地安装CLI模块,并从npm脚本运行它们。

package.json

...
devDependencies: {
    "http-server": "^0.8.5"
},
scripts: {
    "serve": "http-server ./public"
}
...

然后

http-server ./public
# unsuccessful

npm run serve
# successful