3

Hubot (具体的には hubot-hipchat) を使用しており、https://github.com/scriby/asyncblockノード モジュールを使用したいと考えています。hubot でノード モジュールをインポート/要求する正しい方法は何ですか?

hubot をインストールした場所 (~/hubot) に cd して実行しました

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 を起動すると、次のエラーが表示されます: エラー エラー: モジュール '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 を参照しないのはなぜですか??

4

3 に答える 3

0

あなたのスクリプトはどこにありますrequire('asyncblock')か?のサブディレクトリにあり~/hubotますか? そうでない場合、そのrequire関数は を調べません~/hubot/node_modules

そのスクリプトの値を確認してmodule.paths、スクリプトが参照するすべての非グローバル パスを確認しますrequire

于 2012-05-12T15:03:30.553 に答える
-1

これを行う方がはるかに簡単です。私もhubotとhipchatを使っています。あなたがする必要があるのは、次のとおりです。

cd hubot-dir;
npm install asyncblock

観察する必要があるのは次のとおりです。

$ npm install asyncblock
npm http GET https://registry.npmjs.org/asyncblock
npm http 200 https://registry.npmjs.org/asyncblock
npm http GET https://registry.npmjs.org/asyncblock/-/asyncblock-2.0.9.tgz
npm http 200 https://registry.npmjs.org/asyncblock/-/asyncblock-2.0.9.tgz
npm http GET https://registry.npmjs.org/fibers/0.6.7
npm http GET https://github.com/scriby/UglifyJS/tarball/1.2.5-6
npm http 200 https://registry.npmjs.org/fibers/0.6.7
npm http GET https://registry.npmjs.org/fibers/-/fibers-0.6.7.tgz
npm http 200 https://registry.npmjs.org/fibers/-/fibers-0.6.7.tgz
npm http 200 https://github.com/scriby/UglifyJS/tarball/1.2.5-6
npm http GET https://registry.npmjs.org/node-gyp
npm http 200 https://registry.npmjs.org/node-gyp
npm http GET https://registry.npmjs.org/node-gyp/-/node-gyp-0.4.5.tgz
npm http 200 https://registry.npmjs.org/node-gyp/-/node-gyp-0.4.5.tgz
npm http GET https://registry.npmjs.org/ansi
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/tar
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/request
npm http 200 https://registry.npmjs.org/ansi
npm http GET https://registry.npmjs.org/ansi/-/ansi-0.0.4.tgz
npm http 200 https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.8.tgz
npm http 304 https://registry.npmjs.org/mkdirp
npm http 200 https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/fstream/-/fstream-0.1.18.tgz
npm http 200 https://registry.npmjs.org/rimraf
npm http GET https://registry.npmjs.org/rimraf/-/rimraf-2.0.2.tgz
npm http 304 https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/glob/-/glob-3.1.9.tgz
npm http 200 https://registry.npmjs.org/semver
npm http GET https://registry.npmjs.org/semver/-/semver-1.0.14.tgz
npm http 304 https://registry.npmjs.org/request
npm http 200 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.5.tgz
npm http 200 https://registry.npmjs.org/which
npm http 200 https://registry.npmjs.org/tar
npm http GET https://registry.npmjs.org/which/-/which-1.0.5.tgz
npm http GET https://registry.npmjs.org/tar/-/tar-0.1.13.tgz
npm http 200 https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.8.tgz
npm http 200 https://registry.npmjs.org/ansi/-/ansi-0.0.4.tgz
npm http 200 https://registry.npmjs.org/fstream/-/fstream-0.1.18.tgz
npm http 200 https://registry.npmjs.org/rimraf/-/rimraf-2.0.2.tgz
npm http 200 https://registry.npmjs.org/glob/-/glob-3.1.9.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.2.5.tgz
npm http 200 https://registry.npmjs.org/semver/-/semver-1.0.14.tgz
npm http 200 https://registry.npmjs.org/which/-/which-1.0.5.tgz
npm http 200 https://registry.npmjs.org/tar/-/tar-0.1.13.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/block-stream
npm http 304 https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz
npm http 200 https://registry.npmjs.org/inherits
npm http 200 https://registry.npmjs.org/inherits
npm http 200 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-1.1.0.tgz
npm http 200 https://registry.npmjs.org/block-stream
npm http GET https://registry.npmjs.org/block-stream/-/block-stream-0.0.5.tgz
npm http 200 https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-1.1.0.tgz
npm http 200 https://registry.npmjs.org/block-stream/-/block-stream-0.0.5.tgz

fibers@0.6.7 install /tmp/hubot/node_modules/asyncblock/node_modules/fibers
node ./build.js

`linux-ia32` exists; skipping build
asyncblock@2.0.9 ./node_modules/asyncblock
├── uglify-js_scriby@1.2.5-6
└── fibers@0.6.7 (node-gyp@0.4.5)
于 2012-06-12T01:23:33.663 に答える