0

私は次の依存関係配列を持っていますpackage.json

"dependencies": {
    "doT": "git://github.com/nick-jonas/doT.git#cbc7041b646a79cca1034820db09167407d2f988",
    "lodash": "latest",
    "commander": "latest",
    "minimatch": "0.2.9",
    "prompt": "latest",
    "mkdirp": "latest",
    "fs-extra": ">=0.3.2",
    "shelljs": ">=0.1.0",
    "cheerio": ">=0.10.5",
    "readdirp": ">=0.2.1"
  }

最初のdepに注意してください:

"doT": "git://github.com/nick-jonas/doT.git#cbc7041b646a79cca1034820db09167407d2f988"

これはnpmで機能します実行npm installすると、正しいバージョンのdoTがnode_modulesディレクトリに配置されます。ただし、Travis-CIがテストスクリプトを実行すると、次のエラーメッセージが表示されます。

227  vows test/*.js --spec
228
229
230  module.js:340
231    throw err;
232          ^
233  Error: Cannot find module 'doT'
234    at Function.Module._resolveFilename (module.js:338:15)
235    at Function.Module._load (module.js:280:25)
236    at Module.require (module.js:362:17)
237    at require (module.js:378:17)
238    at Object.<anonymous> (/home/travis/builds/nick-jonas/assemblejs/lib/commands/writer.js:15:11)
239    at Module._compile (module.js:449:26)
240    at Object.Module._extensions..js (module.js:467:10)
241    at Module.load (module.js:356:32)
242    at Function.Module._load (module.js:312:12)
243    at Module.require (module.js:362:17)
244  npm ERR! Test failed.  See above for more details.
245  npm ERR! not ok code 0

このコマンドをローカルで実行することvows test/*.js --specも機能するため、Travis-CIがハッシュされたURLの依存関係を取得する際の問題であると想定しています。

他の誰かがこれに似た問題を抱えていますか?

4

2 に答える 2

2

失敗したTravisCIタスクを覗いてみると、実際にはdoT@1.0.0が正常にインストールされたようです。

https://travis-ci.org/nick-jonas/assemblejs/jobs/4115442/#L188

dot.jsプロジェクトリポジトリを見ると、doTpackage.jsonファイルの名前が「doT」ではなく「dot」と表示されているように見えます。

writer.js(または他の場所で使用されている場所)でに変更require('doT')してみます。require('dot')

これは大文字と小文字を区別する問題である可能性があり、npmの世界に対処するのは特に面倒です。

于 2013-01-13T02:54:49.360 に答える
2

@smithclayは正確に正しいです。大文字と小文字を区別しないファイルシステムを備えたMacで作業している可能性があります。ただし、travisが実行されているLinuxは実行されていません。

私は最近同様の問題に遭遇し、valiquireを作成して、すべてのrequireステートメントが正しい大文字小文字を含む有効な場所を指していることを確認しました。

そうすれば、ローカルでトラブルシューティングできます。ビルドの中断を回避するために、テストの一部としてvaliquireチェックを含めることも役立ちます。

于 2013-01-14T05:52:55.683 に答える