2016-03-22 9 views
20

Recentemente ho biforcato un repository GitHub per risolvere un problema e ho creato una richiesta di pull. Mentre aspetto la richiesta di pull per essere accettato, ho indicato il mio locale package.json al mio repo biforcuta, in questo modo:Qual è il modo corretto con NPM di impacchettare una versione BUILT di un repository Git biforcato?

devDependencies: { 
    "karma-mocha": "maloric/karma-mocha" 
} 

Tuttavia si scopre che karma-mocha richiede un passaggio di generazione da eseguire per generare lib/adapter.js - un parte vitale del pacchetto. Questo file è elencato in .gitignore, quindi non esiste nel repository. La fase di creazione è un'attività grunt che viene normalmente eseguita quando il pacchetto viene pubblicato su npm, quindi adapter.js esiste nel modulo npm scaricato.

La mia domanda è questa: qual è il modo corretto di impacchettare una versione forked, costruita del repository in modo che io possa usarlo come dipendenza? Per quanto posso dire, ho le seguenti opzioni:

  1. Costruire il repository locale, creare un file .tgz con i file incorporati, quindi ospitare questo da qualche parte e puntare il mio package.json a quel file.
  2. Creare il repository localmente, modificare .gitignore per consentire adapter.js, quindi passare a un ramo su Github e utilizzare tale ramo come dipendenza.

Uno di questi funzionerebbe, ma mi sento come se mi mancasse qualcosa. NPM ha un concetto di pacchetti a forcella? Non tutti i repository git possono essere usati come dipendenza senza una sorta di build/dist step, quindi qual è il modo accettato di fare questo genere di cose?

risposta

9

che sembra simile a karma-runner/karma-jasmine issue 38, non esattamente la stessa libreria, ma la stessa idea, e il rilascio con adapter.js:

Come lei ha giustamente, adapter.js generati da grunt build.
adpater.js viene inserito solo nel repository npm quando eseguiamo grunt release.

Se si desidera utilizzare la versione di karma-jasmine, è possibile rimuovere lib/adapter.js da .gitignore.

Quindi opzione 2.

Problemi correlati