我使用hubot(特别是hubot-hipchat)并且想要使用https://github.com/scriby/asyncblock节点模块。在hubot中导入/需要节点模块的正确方法是什么?如何为hubot设置node_path
我cd到我安装hubot(〜/ hubot)并做
编辑hubot/packages.json加入hubot-hipchat,asyncblock到依赖关系部分。
"dependencies": {
"hubot-hipchat": ">= 1.0.4",
"hubot": "2.1.4",
"hubot-scripts": ">=2.0.4",
"optparse": "1.0.3",
"asyncblock": "2.0.8"
}
然后我做我的脚本/ test.coffee脚本如下:
asyncblock = require('asyncblock')
当我开始hubot,我得到的错误:错误错误:无法找到模块 'asyncblock'
〜/ hubot/node_modules/asyncblock存在。于是我试着这样做:
require.paths.push('/home/ubuntu/hubot/node_modules')
现在我没有得到找不到错误,但我得到一个新问题:
ERROR Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
我在做什么错?
我只是想在Ubuntu的服务器上Exec中的系统命令,其中我有hubot运行:
asyncblock((flow) ->
exec('node -v', flow.add())
result = flow.wait()
msg.send result
)
编辑: 所以如果我的NODE_PATH的环境变量设置为它的工作原理如下:
env NODE_PATH="/usr/lib/nodejs:/usr/share/javascript:/home/ubuntu/hubot/node_modules"
为什么不按照惯例查看hubot/node_modules?
我可以回答你的问题的一部分:'require.paths'在节点0.5已被删除。任何使用'require.paths.push'的文章或源代码都已过时。我假设你在Node 0.6.x上? –
node -v:v0.6.17。是的,我知道它的弃用/删除。让我困惑的是为什么它在./node_modules中找不到模块 - 因为它发现我的其他模块(如hubot-hipchat)很好。 – rynop