Zoeken…


Opmerkingen

Laders en plug-ins vormen de bouwstenen van Webpack.

Laders worden doorgaans gedelegeerd aan een enkele taak en bestandstype. Ze zijn eenvoudiger in te stellen en vereisen meestal minder boilerplate-code.

Plug-ins daarentegen hebben via haken toegang tot het interne build-systeem van Webpack en zijn daarom krachtiger. Plug-ins kunnen de volledig geconfigureerde Webpack-omgeving wijzigen en ze kunnen tijdens het compilatieproces aangepaste acties uitvoeren.

Bij het omgaan met onze CSS-bestanden kan bijvoorbeeld een loader worden gebruikt om automatisch leveranciersvoorvoegsels aan eigenschappen toe te voegen, terwijl een plug-in kan worden gebruikt om een verkleinde stylesheet in het bundlerbouwproces te produceren.

Aan de slag met laders

Om te beginnen npm install de gewenste laders voor uw project.

Binnen het configuratieobject dat wordt geëxporteerd in webpack.config.js , bevat een module eigenschap al uw laders.

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']
          }
        ]
  },
};

In de bovenstaande configuratie gebruiken we drie basisinstellingen voor onze laders:

  • test: hier binden we laders aan specifieke extensies met RegExp. De eerste set laders wordt uitgevoerd op alle .js en .jsx-bestanden. De tweede set wordt uitgevoerd op alle .css- en .scss-bestanden.
  • include: dit is de map waar onze laders op moeten draaien. Optioneel kunnen we net zo gemakkelijk de eigenschap exclude gebruiken om mappen te definiëren die we niet willen opnemen.
  • laders: dit is een lijst met alle laders die we willen uitvoeren op de bestanden die in de test include opgegeven en die include .

Het is belangrijk op te merken dat laders van rechts naar links worden uitgevoerd in elke array met laders, en van onder naar boven in de afzonderlijke definities. De onderstaande code voert de laders in de volgende volgorde uit: sass, autoprefixer, css, style .

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

Dit is een veel voorkomende bron van verwarring en bugs voor ontwikkelaars die nieuw zijn bij webpack. Wanneer we bijvoorbeeld de syntaxis van JSX en ES6 gebruiken, willen we die code pluisen, niet de gecompileerde code die door onze babel-lader wordt geleverd. Daarom staat onze eslint-lader rechts van onze babel-lader.


Het achtervoegsel -loader is optioneel bij het vermelden van onze laders.

loaders: ['sass']

... is gelijk aan:

loaders: ['sass-loader']

Als alternatief kunt u de loader (enkelvoud) gebruiken samen met een tekenreeks die de lijst met laders scheidt door de ! karakter.

loaders: ['style', 'css']

... is gelijk aan:

loader: "style!css"

typescript-bestanden laden

Om typescript te gebruiken met webpack moet je typescript en ts-loader geïnstalleerd hebben

npm --save-dev install typescript ts-loader

Nu kunt u webpack configureren om typescript-bestanden te gebruiken

// 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow