2012-04-11 26 views
22

Sto introducendo i test di unità nel mio progetto e per questo ho bisogno di creare un file package.json.package.json generation/npm pacchetti inutilizzati

La prima domanda è, quale unit testing suite stai utilizzando? Non vedo l'ora mocha che sembrano essere praticamente standard per i progetti Node.js.

Seconda domanda è: Esiste un modo magico per generare un file package.json? (Per le dipendenze e le versioni)

Terza domanda è: ho provato un sacco di npm packages sviluppando il mio progetto ed ora mi sono bloccato con un sacco di pacchetti probabilmente non utilizzati. C'è un modo per dire quale è inutile? (Ho visto npm list installed che è utile però)

+2

http://npmjs.org/doc/init.html è probabilmente il modo più semplice per creare un progetto npm. E ti consiglio di leggere http://npmjs.org/doc/json.html e di procurarti pacchetti ben usati e testati come express o npm stesso. –

+0

Dovresti davvero fare tre domande separate. – Domenic

+1

Wow! Così tante buone risposte! Grazie a tutti, questo è molto molto utile! Keep'em coming! – TomShreds

risposta

6
  1. Sto anche utilizzando Mocha.Ha copertura del codice, BDD, TDD, funziona nel browser. È abbastanza completo e anche molto ben gestito da uno dei più brillanti programmatori javascript/node.js di nome TJ.

  2. È quasi impossibile indovinare quale versione (s) utilizzare. Perché npm non sa quale versione interrompe le dipendenze. Probabilmente potresti installare tutte le dipendenze usando qualcosa come node-detective. Quindi puoi installarli usando npm.js da javascript. Forse mi piacerebbe affrontarlo in futuro.

  3. Probabilmente eliminerei anche tutte le dipendenze, quindi installerò nuovamente le dipendenze necessarie utilizzando il passaggio (2). Ma anche lo spazio su disco non è più un caso così grande con gli attuali HD.

P.S: Penso che anche d'accordo con Domenic

3
  1. Sto usando i voti. È abbastanza buono, ma non perfetto. Ho trovato che i test di unità nel nodo sono spesso impegnativi a causa delle richiamate asincrone a db & e, in particolare, testiamo le funzionalità di primo livello.

  2. Ecco la tua magia: Managing Node.js Dependencies with Shrinkwrap.

  3. L'unico modo per sapere quali pacchetti si sta utilizzando è sapere. Non è possibile generare questo a livello di programmazione. Il mio consiglio sarebbe quello di rimuovere i pacchetti in modo aggressivo, quindi testare tutte le funzionalità - se si rompe, saprete che è necessario reinstallare uno dei pacchetti.

+0

+1 per il punto n. 3 – Domenic

34
  1. Sto usando Mocha.

  2. npm init

  3. npm ls elencherà "estranei" accanto a quelli che non sono nella tua package.json. Ma sembra che tu non abbia ancora un pacchetto. Json.


In sostanza, il flusso di lavoro è molto indietro. Ecco come funziona:

  1. Avviare un nuovo progetto con npm init. Non ha dipendenze.
  2. Oh, voglio iniziare a utilizzare un pacchetto, ad esempio express? Aggiungilo a package.json sotto dipendenze, quindi esegui npm install.
  3. Oh, voglio iniziare a utilizzare un pacchetto per lo sviluppo, ad esempio mocha? Aggiungilo a package.json sotto devDependencies, quindi esegui npm install.

Sembra che tu abbia un codice esistente con pacchetti installati manualmente (via npm install <packageName>), che è un casino. Suggerisco di ricominciare e seguire il flusso di lavoro precedente.

+0

Hai perfettamente ragione quando dici che è indietro. Doveva essere un piccolo progetto di test, ma è risultato molto più grande e non per i test di quanto mi aspettassi hehe. Grazie per la tua risposta! – TomShreds

+9

Puoi anche fare 'npm install --save' che lo aggiungerà automaticamente al tuo' pacchetto.json'. Vedi qui per maggiori dettagli: https://npmjs.org/doc/install.html. Trovo più facile del flusso di lavoro che Domenic suggerisce sopra. – stephenbez

+3

Anche '--save-dev' per' devDependencies' (doc nel link indicato) – chakrit

2

rispondere alla tua terza domanda, è possibile utilizzare Sweeper per elencare le dipendenze non utilizzati, e rimuoverli dal package.json. Solo npm install -g sweeper quindi nella directory del progetto chiamare sweeper nella riga di comando.

20

Per rispondere alla terza domanda :

npm prune

rimuoverà tutti i moduli installati che non sono menzionati nella vostra package.json.


E avresti dovuto davvero fare tre domande separate.

Problemi correlati