我使用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