加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

WebPack Module处理方式

发布时间:2023-05-09 13:22:13 所属栏目:教程 来源:
导读:这些选项决定了如何处理项目中的不同类型的模块。

module.noparse
RegExp | [RegExp]

RegExp | [RegExp] | function(从 webpack 3.0.0 开始)

防止 webpack 解析那些任何与给定正则表达式相匹配的文件。忽
这些选项决定了如何处理项目中的不同类型的模块。

module.noparse
RegExp | [RegExp]

RegExp | [RegExp] | function(从 webpack 3.0.0 开始)

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

noparse: /jquery|lodash/
 
// 从 webpack 3.0.0 开始
noparse: function(content) {
  return /jquery|lodash/.test(content);
}
module.rules
array

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

Rule
每个规则可以分为三部分 - 条件(condition),结果(result)和嵌套规则(nested rule)。

Rule 条件
条件有两种输入值:

resource:请求文件的绝对路径。它已经根据 resolve 规则解析。

issuer: 被请求资源(requested the resource)的模块文件的绝对路径。是导入时的位置。

例如: 从 app.js 导入 './style.css',resource 是 /path/to/style.css. issuer 是 /path/to/app.js。

在规则中,属性 test, include, exclude 和 resource 对 resource 匹配,并且属性 issuer 对 issuer 匹配。

Rule 结果
规则结果只在规则条件匹配时使用。

规则有两种输入值:

应用的 loader:应用在 resource 上的 loader 数组。

Parser 选项:用于为模块创建解析器的选项对象。

这些属性会影响 loader:loader, options, use。

也兼容这些属性:query, loaders。

enforce 属性会影响 loader 种类。不论是普通的,前置的,后置的 loader。

parser 属性会影响 parser 选项。

嵌套的 Rule
可以使用属性 rules 和 oneOf 指定嵌套规则。

这些规则用于在规则条件(rule condition)匹配时进行取值。

Rule.enforce
可能的值有:"pre" | "post"

指定 loader 种类。没有值表示是普通 loader。

还有一个额外的种类"行内 loader",loader 被应用在 import/require 行内。

所有 loader 通过 前置, 行内, 普通, 后置 排序,并按此顺序使用。

所有普通 loader 可以通过在请求中加上 ! 前缀来忽略(覆盖)。

所有普通和前置 loader 可以通过在请求中加上 -! 前缀来忽略(覆盖)。

所有普通,后置和前置 loader 可以通过在请求中加上 !! 前缀来忽略(覆盖)。

不应该使用行内 loader 和 ! 前缀,因为它们是非标准的。它们可在由 loader 生成的代码中使用。

Rule.exclude
Rule.exclude 是 Rule.resource.exclude 的简写。如果你提供了 Rule.exclude 选项,就不能再提供 Rule.resource。详细请查看 Rule.resource 和 Condition.exclude。

Rule.include
Rule.include 是 Rule.resource.include 的简写。如果你提供了 Rule.include 选项,就不能再提供 Rule.resource。详细请查看 Rule.resource 和 Condition.include。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章