2013-01-12 2 views
0

je le tableau de dépendance suivante dans package.json:construire Travis-CI échoue avec la dépendance URL/module de hachage

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

Notez le premier dep:

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

Ce fonctionne avec NPM . Lors de l'exécution npm install il placera la version correcte de doT dans mon répertoire node_modules. Il donne cependant ce message d'erreur lorsque Travis-CI exécute le script de test:

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 

L'exécution de cette commande localement vows test/*.js --spec fonctionne également, donc je suppose que c'est un problème saisissant Travis-CI dépendances-URL hachée.

Quelqu'un d'autre a un problème similaire?

Répondre

2

Prendre un coup d'oeil à votre TravisCI task that failed, il semble que cela a effectivement été installé correctement [email protected]:

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

Si je look at the dot.js project repository, il semble que le fichier doT package.json a le nom répertorié comme "point" au lieu de "doT".

Je voudrais essayer de changer require('doT') en require('dot') dans writer.js (ou partout ailleurs il est utilisé).

Il semble qu'il s'agisse d'un problème de sensibilité à la casse, ce qui peut être particulièrement gênant pour le monde npm.

2

@smithclay est exactement exact. Vous travaillez probablement sur un Mac qui a un système de fichiers insensible à la casse. Linux cependant, quel travis est en cours d'exécution, ne fonctionne pas.

J'ai récemment rencontré un problème similaire et j'ai créé valiquire pour vérifier que toutes les instructions requéraient des emplacements valides, y compris le bon cadrage.

De cette façon, je peux les dépanner localement. Il est également utile d'inclure une vérification de valiquire dans le cadre de vos tests afin d'éviter de casser la construction.

+0

super outil pratique, merci! –

Questions connexes