Sök…


Anmärkningar

Lastare och plugins utgör byggpackarna för Webpack.

Lastare delegeras vanligtvis till en enda uppgift och filtyp. De är lättare att installera och kräver vanligtvis mindre pannplattkod.

Plugins har å andra sidan åtkomst till Webpacks interna build-system via krokar och är därför kraftfullare. Plugins kan modifiera den fullt konfigurerade Webpack-miljön, och de kan utföra anpassade åtgärder under hela sammanställningsprocessen.

När vi till exempel hanterar våra CSS-filer kan en lastare användas för att automatiskt lägga till leverantörsprefix till egenskaper, medan en plugin kan användas för att producera ett minifierat formatmall i paketbyggnadsprocessen.

Komma igång med lastare

För att börja, npm install önskade lastare för ditt projekt.

Insidan av konfigurationsobjekt som exporteras i webpack.config.js , en module kommer egenskap att hålla alla dina lastare.

const source = `${__dirname}/client/src/`;

module.exports = {
  // other settings here
  
  module: {
    loaders: [
          {
            test: /\.jsx?$/,
            include: source,
            loaders: ['babel?presets[]=es2015,presets[]=react', 'eslint']
          },
          {
            test: /\.s?css$/,
            include: source,
            loaders: ['style', 'css', 'autoprefixer', 'sass']
          }
        ]
  },
};

I ovanstående konfiguration använder vi tre grundinställningar för våra lastare:

  • test: Det är här vi binder lastare till specifika tillägg med RegExp. Den första uppsättningen av laddare körs på alla .js- och .jsx-filer. Den andra uppsättningen körs på alla .css- och .scss-filer.
  • inkludera: Detta är den katalog som vi vill att våra lastare ska köra på. Valfritt kan vi lika enkelt använda egenskapen exclude att definiera kataloger som vi inte vill ha med.
  • lastare: Detta är en lista över alla lastare som vi vill köra på de filer som anges i test och include .

Det är viktigt att notera att lastare körs från höger till vänster i varje lastarray och från botten till topp i de enskilda definitionerna. Koden nedan kör körarna i följande ordning: sass, autoprefixer, css, style .

loaders: [
  {
    test: /\.s?css$/,
    include: source,
    loaders: ['style', 'css', 'autoprefixer']
  },
  {
    test: /\.s?css$/,
    include: source,
    loaders: ['sass']
  }
]

Detta är en vanlig källa till förvirring och buggar för utvecklare som är nya för webbpack. Till exempel, när vi använder JSX och ES6-syntax, vill vi föra den koden, inte föra den sammanställda koden som tillhandahålls av vår babelladdare. Därför placeras vår eslint-lastare till höger om vår babel-lastare.


-loader är valfritt när vi listar våra lastare.

loaders: ['sass']

... är ekvivalent med:

loaders: ['sass-loader']

Alternativt kan du använda loader (singular) tillsammans med en sträng som skiljer listan med lastare med ! karaktär.

loaders: ['style', 'css']

... är ekvivalent med:

loader: "style!css"

laddar typsnittsfiler

För att kunna använda typskript med webbpakke behöver du typescript och ts-loader installerat

npm --save-dev install typescript ts-loader

Nu kan du konfigurera webpack så att du använder typskriptfiler

// webpack.config.js

module.exports = {
  ..
  resolve: {
    // .js is required for react imports.
    // .tsx is required for react tsx files.
    // .ts is optional, in case you will be importing any regular ts files.
    extensions: ['.js', '.ts', '.tsx']
  },
  module: {
    rules: [
      {
        // Set up ts-loader for .ts/.tsx files and exclude any imports from node_modules.
        test: /\.tsx?$/,
        loaders: isProduction ? ['ts-loader'] : ['react-hot-loader', 'ts-loader'],
        exclude: /node_modules/
      }
    ]
  },
  ...
};


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow