美文网首页
webpack中的module 配置参数说明

webpack中的module 配置参数说明

作者: 最底层的技术渣 | 来源:发表于2019-06-25 23:25 被阅读0次

模块(module): 这些选项决定了如何处理项目中的不同类型的模块。

webpack 模块可以支持如下:

  • ES2015 import 语句
  • CommonJS require() 语句
  • AMD define 和 require 语句
  • css/sass/less 文件中的 @import 语句。
  • 样式(url(...))或 HTML 文件(<img src=...>)中的图片链接(image url)

module.noParse

值的类型: RegExp | [RegExp] | function

防止 webpack 解析那些任何与给定正则表达式相匹配的文件。忽略的文件中不应该含有 import, require, define 的调用,或任何其他导入机制。忽略大型的 library 可以提高构建性能。

module.exports = {
  mode: 'devleopment',
  entry: './src/index.js',
  ...
  module: {
    noParse: /jquery|lodash/,
    // 从 webpack 3.0.0 开始,可以使用函数,如下所示
    // noParse: function(content) {
    //   return /jquery|lodash/.test(content);
    // }
  }
  ...
};

module.rules

创建模块时,匹配请求的规则数组。这些规则能够修改模块的创建方式。这些规则能够对模块(module)应用 loader,或者修改解析器(parser)。

module.exports = {
  ...
  module: {
    noParse: /jquery|lodash/,
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      }
    ]
  }
  ...
};

module Rule

  • Rule 条件详解
    • 字符串:匹配输入必须以提供的字符串开始。是的。目录绝对路径或文件绝对路径。
    • 正则表达式:test 输入值。
    • 函数:调用输入的函数,必须返回一个真值(truthy value)以匹配。
    • 条件数组:至少一个匹配条件。
    • 对象:匹配所有属性。每个属性都有一个定义行为。

Rule.test

  • { test: Condition }:匹配特定条件。一般是提供一个正则表达式或正则表达式的数组,但这不是强制的。
module.exports = {
  ...
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      }
    ]
  }
  ...
};

其他的条件比如:

  • { include: Condition }:匹配特定条件。一般是提供一个字符串或者字符串数组,但这不是强制的。
  • { exclude: Condition }:排除特定条件。一般是提供一个字符串或字符串数组,但这不是强制的。
  • { and: [Condition] }:必须匹配数组中的所有条件
  • { or: [Condition] }:匹配数组中任何一个条件
  • { not: [Condition] }:必须排除这个条件
module.exports = {
  ...
  module: {
    rules: [
      {
        test: /\.css$/,
        include: [
          path.resolve(__dirname, "app/styles"),
          path.resolve(__dirname, "vendor/styles")
        ],
        use: ['style-loader', 'css-loader']
      }
    ]
  }
  ...
};

Rule.use

应用于模块指定使用一个 loader。

Loaders can be chained by passing multiple loaders, which will be applied from right to left (last to first configured).

加载器可以链式传递,从右向左进行应用到模块上。

use: [
  'style-loader',
  {
    loader: 'css-loader'
  },
  {
    loader: 'less-loader',
    options: {
      noIeCompat: true
    }
  }
];

传递字符串(如:use: [ "style-loader" ])是 loader 属性的简写方式(如:use: [ { loader: "style-loader "} ])。

相关文章

  • webpack中的module 配置参数说明

    模块(module): 这些选项决定了如何处理项目中的不同类型的模块。 webpack 模块可以支持如下: ES2...

  • webpack noParse参数

    webpack noParse webpack精准过滤不需要解析的文件 webpack配置中 module配置...

  • Webpack resolve

    Resolve 文档地址 该配置项用来解决依赖module查找的。webpack提供了默认参数,可以对默认参数进行...

  • webpack 之 css module

    webpack 之 css module webpack配置css-loader?modulesmodules ...

  • 2019-06-02

    webpack打包的原理:webpack都有entry、module、loader、chunk、output等配置...

  • nginx常用模块介绍

    nginx http功能模块模块说明nginx_http_core_module包括一些核心的http参数配置,对...

  • webpack与node.js

    webpack 说明: webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module ...

  • [前端开发]Webpack3/4配置整理

    webpack3配置 命令行下webpack常见配置参数 --config 设置配置文件 -p ...

  • npm包发布流程

    准备工作 在webpack配置的output参数中配置好library和libraryTarget,示例: 修改p...

  • 填坑vue.cli+ElementUI遇到的各种坑

    webpack import css文件的环境配置遇到的Module build failed: Unknown ...

网友评论

      本文标题:webpack中的module 配置参数说明

      本文链接:https://www.haomeiwen.com/subject/fxbfcctx.html