2016-01-02 9 views
6

Sto usando il plugin gulp "main-bower-files". C'è una libreria bower che è enorme ... Voglio ignorarla nella mia lista chiamata "fatjslib.js". Il mio filtro di espressione regolare attuale è la seguente:Come ignorare la libreria javascript di bower specifica in gulp (forse un problema di regex)?

var listOfBower = mainBowerFiles({filter: (/.*\.js$/i)}); 

Questo preleva "fatjslib.js" e quando stampo la variabile sopra, vedo:

"\\User\\kmichaels\\storage\\app\\bower_components\\fatjslib\FatJsLib\FatJsLib.js" 

Come è possibile specificare il filtro o il cambiamento regex, o fai qualcosa in modo che "listOfBower" possa ignorare il file "FatJsLib.js"? Non voglio specificare l'intero percorso se possibile, se c'è un modo per ignorare qualsiasi cosa indipendentemente dalla pathstructure con "FatJsLib", potrebbe essere la soluzione migliore, ma sono aperto a suggerimenti. La soluzione è flessibile per aggiungere "AnotherBigLib.js" (dovrebbe esserci una seconda libreria sotto una struttura di percorso) alla regex o lista di ignorare?

risposta

3

Un modo per il "main-Bower-files" plugin per smettere di leggere biblioteca pergolato specifico è quello di passare l'opzione overrides nella param o per impostare la proprietà overrides in bower.json

METODO 1: Per passare il prevale param:

passare l'opzione overrides al mainBowerFiles() e impostare la proprietà ignore per true per la libreria che si desidera ignorare.

var listOfBower = mainBowerFiles({"overrides":{"fatjslib":{"ignore":true}}}); 

METODO 2: specificare la priorità di proprietà in bower.json

è anche possibile specificare overrides proprietà a bower.json e quindi non ci sarà alcun bisogno di passare l'opzione override come param. Quando il plugin main-bower-files leggerà il file bower.json, sarà ignore le librerie impostate nella proprietà di overrides con flag di ignora su true.

in bower.json aggiungere una proprietà overrides:

"overrides": { 
    "fatjslib": { 
     "ignore": true 
    } 
} 
2

in caso fatjslib contiene più file js, e si desidera solo di ignorare un po 'come includere un altro, allora si può ignorare la sezione principale del pacchetto.

Ogni pacchetto viene fornito con il proprio bower.json che ha una sezione principale. Questa sezione contiene il file da iniettare.

Che cosa si può fare è, in override - ignorare la sezione principale solo per mantenere i file che si desidera essere iniettato

"overrides": { 
    "fatjslib": { 
     "main": ["./dist/another-file.js"] 
    } 
    } 

e quindi fornire questi sostituzioni per mainBowerFiles

0

Come sulla modifica del regex come segue:

/^(?!.*FatJsLib\.js$).*\.js$/i 

E per aggiungere altre librerie:

/^(?!.*(?:FatJsLib|AnotherBigLib)\.js$).*\.js$/i 

Inoltre, se si desidera filtrare nulla con FatJsLib nel suo percorso provate con:

/^(?!.*\\(?:FatJsLib|AnotherBigLib)\\.*$).*\.js$/i 

Fonte: ho scritto la regex, si può provare here. Anche la documentazione dei file di bower principale afferma che filter can use any regex.

Problemi correlati