Ricerca…


Osservazioni

I caricatori di Webpack possono essere configurati come "preLoaders", "loaders" e "postLoaders". Sebbene non debbano esserlo, le configurazioni che utilizzano il linting o altre operazioni imperative o seriali possono trarre vantaggio da queste fasi di costruzione nella pipeline.

La chiave per comprendere i caricatori e il loro utilizzo è che Webpack eseguirà ciascun modulo nel grafico dei requisiti tramite il sistema del caricatore. Seguendo l'esempio sopra, questo significa che quando Webpack inizia a scansionare le importazioni della tua applicazione, identifica i file richiesti e usa una semplice regex, determinerà quale tipo di file o file richiede quale loader o serie di caricatori.

Qui sopra puoi vedere che tutti i file ".js" o ".jsx" verranno laccati da eslint-loader nella fase di preLoader. Altri tipi di file js|x verranno eseguiti anche attraverso il babel-loader nella fase di caricamento principale. Inoltre, nella stessa fase, tutti i file .scss verranno caricati nel sass-loader . Questo ti permette di importare file Sass nei tuoi moduli JS e di farli emettere sul bundle JS risultante o anche su un altro bundle CSS autonomo separato (usando un plugin ).

Nota: l' importazione di file .scss funzionerà solo con Webpack e un caricatore appropriato. Il nodo non capirà questo tipo di importazione senza un pre-processore o un transpiler.

Inoltre, nell'esempio .scss è possibile .scss i "loader" con il .scss ! punto esclamativo come un "tubo" tra caricatori diversi. L'esempio sopra collega l'output del "sass-loader" nel "css-loader" e infine nello "style-loader" Questo potrebbe anche essere eseguito con una serie di loaders: ['style-loader', 'css-loader', 'sass-loader'] . Diverse opzioni sono anche disponibili per le definizioni caricatore in linea e seguono la sintassi dei parametri di query che si trova comunemente negli URL.

Vedi anche: https://webpack.github.io/docs/loaders.html

Config usando preLoader per eslint, babel per jsx e css loader.

La seguente configurazione può essere utilizzata come configurazione di base per raggruppare il progetto come libreria. Si noti come la configurazione del modulo contenga un elenco di pre-caricatori e caricatori.

// webpack.config.js

var path = require('path');

module.exports = {
    entry: path.join(__dirname, '..', 'src/index.js'),
    output: {
        path: path.join(__dirname, '..', '/lib'),
        filename: outputFile,
        library: 'myCoolBundle.js',
        libraryTarget: 'umd',
        umdNamedDefine: true
    },
    module: {
        preLoaders: [
            {
                test: /(\.jsx|\.js)$/,
                loader: "eslint-loader",
                exclude: /node_modules/,
            }
        ],
        loaders: [
            {
                test: /(\.jsx|\.js)$/,
                loader: ['babel'],
                exclude: /(node_modules)/,
                include: path.join(__dirname, '..'),
                query: {
                    presets: [ 'es2015', 'react']
                }
            },
            {
                test: /\.scss$/,
                loaders: ["style-loader", "css-loader!sass-loader"]
            }
        ]
    },
    resolve: {
        root: path.resolve(__dirname, '..', './src'),
        extensions: ['', '.js', '.jsx', '.scss'],
        fallback: path.join(__dirname, '../node_modules')
    },
    eslint: {
        configFile: path.resolve(__dirname, '..', '.eslintrc'),
    }
};


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow