节点:我可以从命令行运行全局模块/包而无需指定完整路径[Ubuntu,Nodejs,NPM]

时间:2016-06-22 00:37:37

标签: node.js linux ubuntu npm

我是linux / ubuntu / node新手。我在虚拟专用Web服务器上运行ubuntu 16.04。它正在运行nodejs&一切都运行良好。

但是当我从命令行运行一个全局模块/包时,我会这样写:

node /usr/local/bin/forever start /usr/local/bin/http-server /var/www/myWebsite -p 8000

哪个工作正常。但是您在节点I中会注意到我必须指定全局安装的模块/包的完整路径(/usr/local/bin/

我的问题:有没有办法在不指定完整路径的情况下运行全局节点模块/包?

EG。,而不是写作:

node /usr/local/bin/forever    // forever is a globally installed module 

我可以这样写,所以我可以写:

node forever    // forever is a globally installed module

我已经尝试编辑〜。/ bashrc文件以包含像这样的NODE_PATH

nano ~/.bashrc
# added line at bottom of bashrc file
NODE_PATH=/usr/local/bin

但没有运气。另外,当我运行echo $NODE_PATH时,我得到:

/usr/local/bin

哪条路径正确(就像我在node /usr/local/bin/forever

等命令中使用该路径一样

或者我的电线是否交叉?我是否应该能够在不指定完整路径的情况下运行节点模块/包?有什么理由说这不是一个好习惯吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

我太傻了 - 编辑.bashrc文件似乎确实有效。 (实际上我不确定这是否有效,或者它是否在整个时间内自动设置正确)

我没有意识到我需要:

  • 重新启动终端
  • 使用它的名称(没有“节点”前缀)
  • 运行全局包

在ubuntu cmd行中的EG:

node forever -h    // WRONG!

forever -h    // Works!

以为我会发帖以防有类似情况的人发现这一点。