2016-06-06 11 views
8

Nel creare la mia arte per il mio sito Web, ho alcuni file intermedi che voglio conservare nella mia cartella "media".C'è un modo per ignorare un tipo di file con Webpack?

Ma poi webpack inizia lamentandosi che non sa cosa fare con quei file.

C'è un modo semplice per dire, non ti preoccupare dei file con l'estensione .pdn?

ho provato queste opzioni nei miei webpack.config.js, e non ha aiutato:

  1. { test: /\.pdn?$/, loader: 'raw', exclude: /.*/}
  2. { test: /\.pdn?$/, exclude: /.*/}

risposta

0

La questione non è quello che webpack vuole fare con quelli file, ma cosa vuoi fare con quei file quando ne hai bisogno? Vuoi i loro contenuti in Javascript, vuoi richiedere di darti il ​​percorso dei file nella tua build o qualcos'altro?

Se non si richiedono file .pdn ma Webpack tenta ancora di caricarli, è possibile che si stiano utilizzando esigenze dinamiche. Dynamic requires può fare cose molto strane e di solito cerca di raggruppare troppo, quindi dovresti davvero evitare di usarle.

Se si desidera accedere ai file in un modo, utilizzare il caricatore di file.

Nell'esempio sopra riportato, la prima opzione di caricamento non funzionerà semplicemente perché si esclude tutto nella clausola di esclusione. Chiedi a webpack di applicare raw-loader ai file corrispondenti a 'test', ma ignora i file che corrispondono a 'exclude', che è tutto nel tuo caso. Utilizzare invece { test: /\.pdn$/, loader: 'raw' }.

+0

Voglio solo Webpack di ignorarli. Come se non esistessero. Ho considerato le esigenze dinamiche e non sembra che lo faccia (concatenazione di stringhe in una dichiarazione di richiesta). – Vaccano

+0

Finché non vengono richiesti, Webpack non tenterà di caricarli e ignorarli. Sei sicuro di aver sempre bisogno solo di stringhe definite direttamente? Non c'è bisogno di variabili o qualcosa del genere? – Ambroos

+0

No, non ne ho nessuna ... Ho appena spostato il file in un altro punto (fuori dal mio albero dev) e l'errore è andato via. (Speravo di trovare un modo per far sì che ignorasse così potrei lasciarlo lì ... ma .. ah bene) – Vaccano

12

È possibile aggiungere il plug-in ignore-loader e associarvi i file.

Esempio (in webpack.config.js)

Ciò ignorare tutti .css file.

module.exports = { 
    // ... other configurations ... 
    module: { 
    loaders: [ 
     { test: /\.css$/, loader: 'ignore-loader' } 
    ] 
    } 
}; 

ne avevo bisogno perché ero richiedono un po 'di node_modules che ha importato più formati di font, ma volevo solo woff o woff2 formati.

La mia soluzione:

config = { 
    // ... config ... 
    module: [ 
    { test: /(\.woff|\.woff2)$/, loader: 'url?name=font/[name].[ext]&limit=10240&mimetype=application/font-woff' }, 
    { test: /\.ttf$/, loader: 'ignore-loader' }, 
    { test: /\.eot$/, loader: 'ignore-loader' } 
    ] 
} 
+1

Bello, proprio quello di cui avevo bisogno (stavo per scriverlo anch'io :)) – magikMaker

+1

Ciao! Ho usato questa tecnica, ma nel bundle css risultante ho qualcosa del genere: url ([Object object]) per gli URL ttf/eot che rompono css. Hai qualche suggerimento su cosa fare? – norekhov

+1

@norekhov come potete vedere [qui] (https://github.com/cherrry/ignore-loader/blob/master/index.js) tutto questo plugin fa 'return' '; '. Se stai ricevendo '[oggetto oggetto]' allora viene da qualche altra parte! –

Problemi correlati