Webpack: Core Concepts

 20th August 2020 at 2:19pm

Webpack 文档 在这里。核心有:

  • Entry:表示 webpack 从此处开始扫描文件,构建依赖树。可以配置。
  • Output:指示 webpack 将打包后的文件放到何处
  • Loaders:对特定文件的处理程序。Webpack 默认只支持 JS 及 JSON,但你可以加入很多不同的 loader,使得你可以在 JS 中 import CSS 代码等。举个例子:
    // webpack.config.js
    const path = require('path');
    
    module.exports = {
      output: {
        filename: 'my-first-webpack.bundle.js'
      },
      module: {
        rules: [
          { test: /\.txt$/, use: 'raw-loader' }
        ]
      }
    };

    这表示:

    "Hey webpack compiler, when you come across a path that resolves to a '.txt' file inside of a require()/import statement, use the raw-loader to transform it before you add it to the bundle."

    但注意这种特性可能只对 webpack 可行,其他的构建工具不一定支持。

  • Plugins:Loaders 是针对特定文件的处理,而 plugins 则不区分文件,而是增加某种特定的能力。比如可以通过插件自动生成 source map、生成 HTML 等等
  • Mode:表示模式,一般用来区分开发环境或是生产环境,从而指定不同的打包配置