2015-06-17 16 views
5

Voglio imparare a scrivere plugin per gitbook (perché voglio usarlo e ho bisogno di plugin personalizzati).Creare un plug-in gitbook localmente senza pubblicarlo

Tuttavia, mi sento la documentazione è un po 'scarne sulla questione, e la lettura del codice da plugin esistenti non mi aiuta molto in questa domanda:

Come posso testare un plugin prima di pubblicarlo. Il documentation fornisce alcuni suggerimenti su come deve apparire il plugin, quindi mi dice di pubblicarlo.

Ovviamente non voglio farlo ancora, voglio svilupparlo e testarlo localmente prima della pubblicazione. Ma non vedo come ciò possa essere fatto.

ho cercato di copiare un plugin installato all'interno /usr/lib/node_modules/gitbook-cli/node_modules/ per creare il mio nuovo plugin, ma quando provo a uso il plugin in un libro ricevo il messaggio di errore che mi dice di installare il plugin attraverso npm.

C'è un modo per utilizzare un plug-in (per test o forse in generale) senza prima pubblicarlo su npm?

risposta

1

Questa non è una risposta definitiva (quindi non la "accetto"), ma una soluzione che ho trovato, che può essere accettabile,, a seconda della circostanza.

Ciò che è possibile è:

  • Scrivi una (preliminare) plug
  • pubblicare NPM
  • Aggiungere il plugin per di un libro book.json
  • run gitbook install nella directory del libro

Questo scaricherà e installerà il plug-in all'interno del libro node_module directory. La modifica dei file JavaScript avrà effetto sulle successive build di gitbook. Quindi puoi continuare a sviluppare il tuo plug-in localmente.

Ciò che deve essere visto è come (se) il plugin modificato può essere pubblicato, una volta pronto.

E può essere considerato un (più o meno grave) svantaggio che ora avete un plugin completamente non rappresentabile pubblicato su npm.

5

È possibile saltare la pubblicazione iniziale in NPM collegando in modo simbolico la directory del plug-in alla directory node_modules. Assumere una struttura di directory:

projects/ 
    my-book/ 
    node_modules/ 
    other_files... 
    awesome-plugin/ 
    plugin_files... 

allora si potrebbe fare

cd projects/my-book/node_modules 
ln -s ../../awesome-plugin 

Potrebbe essere necessario aggiungere il plugin per book.json per farlo registrare, ma provare senza prima. Inoltre sto assumendo un ambiente * NIX; potrebbe essere necessario cercare i comandi per Windows, ma il concetto è lo stesso.


Separatamente dalla mia risposta di cui sopra, si potrebbe usare NPM di namespaced packages pubblicare il plugin per uno spazio dei nomi privato (ad esempio, @uli_1973/awesome-plugin). Quindi, quando sei pronto per il grande momento, puoi richiedere il nome non assegnato ai nomi per il tuo plug-in (awesome-plugin).

+0

Grazie. Cercherò l'opportunità di testare prima di accettare la risposta, ma sembra promettente. –

2

Un plug-in gitbook è solo un modulo NPM. Puoi usare il modo di sviluppare il modulo npm localmente nello sviluppo del plugin gitbook.

Npm fornisce il comando link per gestire questa situazione.

In primo luogo, nella cartella gitbook plug-in, correre sotto comando per creare a livello globale-installato link simbolico al tuo plugin:

npm link 

successiva nella cartella gitbook, correre sotto comando per collegare il collegamento simbolico global gitbook-plugin-name sotto la vostra cartella node_modules di gitbook:

npm link gitbook-plugin-name 

Configurare il plugin nella book.json. Ora puoi testare il plugin nel tuo gitbook senza pubblicare.