2014-07-01 20 views
15

Ho un small Flask app che attualmente fornisce jQuery e highlight.js da server esterni. Mi piacerebbe creare queste dipendenze locali che inserisco tramite NPM.Come posso servire pacchetti NPM usando Flask?

Qual è la pratica standard per questo? Devo creare il file package.json nella stessa directory delle mie directory static e templates e servire node_modules come dir statico separato questo question?

Sto imballando e distribuendo la mia app utilizzando pip, quindi qualsiasi soluzione deve essere compatibile con quello.

+0

Hai visto [fantastico] (http://www.fanstatic.org /en/latest/intro.html)? Non è l'ultima parola nella gestione dei pacchetti per JS (come i webjars, non penso che sia ancora al 100%), ma potrebbe rendere le cose più semplici. –

risposta

0

È necessario Bower e si dispone già di NPM. Questo è tutto ciò che ti serve per ottenere ciò che desideri.

Fondamentalmente, è necessario creare un package.json nella radice per installare Bower utilizzando NPM. Quindi dovrai creare un bower.json per definire le librerie di cui hai bisogno, ad esempio jQuery.

Poi il flusso sarà come:

npm install 
bower install 

Questo sarà essenzialmente installare gazebo per voi e per le altre librerie frontend definiti in bower.json.

Tutti i componenti del bower entrano in una directory denominata bower_components nella directory principale. Qui è dove risiedono tutti i pacchetti bower installati. Puoi usare questi pacchetti nei tuoi modelli ora.

Inoltre, see this per assicurarsi che i pacchetti di bower siano installati nella cartella static o assets che si desidera servire.

+1

La risposta alla mia domanda era fondamentalmente "Hai sentito parlare di Bower". :) – danvk

+3

Questa non è una buona risposta alla domanda. Alcuni pacchetti, come angular2, non supporteranno bower e solo NPM, quindi è ancora necessaria una risposta su come ottenere Flask che serve node_modules durante lo sviluppo –

0

forse un po 'tardi per la risposta, ma il modo più semplice per farlo è in questo modo:

sudo npm install bower 
echo "bower_components/" >> .gitignore 
bower install -S (here goes whatever you want) 
npm init 

Poi si compila la richiesta, e avrete un paio di nuovi file:

  • bower.json, che viene generato da bower per gestire le dipendenze. L'utilizzo di bower install -S (your dependency) aggiornerà questo file con le nuove dipendenze.
  • package.json, creato da NPM di gestire il vostro progetto e NPM dipendenze
  • node_modules, le cose installate con NPM
  • bower_components/ che è dove tutte le dipendenze di front-end dal vivo.
Problemi correlati