gpt4 book ai didi

node.js - 如何为 hubot 设置 node_path

转载 作者:搜寻专家 更新时间:2023-11-01 00:09:41 24 4
gpt4 key购买 nike

我正在使用 hubot(特别是 hubot-hipchat)并想使用 https://github.com/scriby/asyncblock Node 模块。在 hubot 中导入/需要 Node 模块的正确方法是什么?

我 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"
}

然后我在 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 var 设置为以下它有效:

env NODE_PATH="/usr/lib/nodejs:/usr/share/javascript:/home/ubuntu/hubot/node_modules"

为什么它不按照惯例在 hubot/node_modules 中查找??

最佳答案

带有require('asyncblock') 的脚本在哪里?它在 ~/hubot 的子目录中吗?如果不是,它的 require 函数将不会在 ~/hubot/node_modules 中查找。

检查该脚本中 module.paths 的值,以查看脚本的 require 查看的所有非全局路径。

关于node.js - 如何为 hubot 设置 node_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com