我正在使用hubot(具体来说是hubot-hipchat),想要使用https://github.com/scriby/asyncblock节点模块。在hubot中导入/要求节点模块的正确方法是什么?
我切换到安装hubot的位置(~/hubot)并执行以下操作:
编辑hubot/packages.json,将hubot-hipchat、asyncblock添加到依赖项部分。
当我启动hubot时,出现错误:ERROR Error: Cannot find module 'asyncblock'。
~/hubot/node_modules/asyncblock 存在。然后我尝试执行以下操作:
现在我不再遇到“找不到”的错误,但出现了一个新的错误:
我在做什么不对吗?
我只是尝试在运行hubot的Ubuntu服务器上执行系统命令:
编辑: 如果我将NODE_PATH环境变量设置为以下内容,它就能正常工作:
为什么按照惯例它不在hubot/node_modules中查找?
我切换到安装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"
}
我在我的scripts/test.coffee脚本中执行以下操作:
asyncblock = require('asyncblock')
当我启动hubot时,出现错误:ERROR Error: Cannot find module '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.
我在做什么不对吗?
我只是尝试在运行hubot的Ubuntu服务器上执行系统命令:
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
在Node 0.5中被移除了。任何使用require.paths.push
的文章或源代码都已经过时了。我猜你正在使用Node 0.6.x? - Trevor Burnham