`

RuleSet之resource/resourceQuery

 
阅读更多

 RuleSet解析webpack.config.js设定的一系列配置约束(module.rules部分),

 结合import(resourcePath)/require(resourcePath)引入的资源,

 计算resourcePath和配置规则的匹配结果

 直白的说,可以认为这个过程是筛选使用哪些loader去加载处理资源的过程

 

 webpack源码RuleSet看到condition部分,总结一下

 https://webpack.js.org/configuration/module/#rule-resource

 

一般大众化配置格式:

module: {
  rules: [{
    test: /\.js$/,
    use: ['babel-loader],
    exclude: [],
    include: []
  }]
}

 没想到test、exclude、include是resource的简写,变换如下:

module: {
  rules: [{
    use: ['babel-loader],
    resource: {
      test: /\.js$/,
      exclude: [],
      include: []
    }
  }]
}

 需要说明使用了resource,不可以同时配置test、include、exclude属性

 

 使用resource方式配置,还有or、and、not属性可以配置,完整的如下

module: {
  rules: [{
    use: ['babel-loader],
    resource: {
      test: /\.js$/,
      exclude: [],
      include: [],
      not: [],
      and: [],
      or: []
    }
  }]
}

 注意:无论是resource,还是其下的exclude、include、not、or、and,

 其值可以为function、string(字符串开头判定)、regex、array(funciton string, regex组合)

 

 与resource并列的,还有个resoureceQuery参数,

 其值参照resource参数配置,用来测试通过import/require引入的模块参数是否符合要求,比如

{
  test: /.css$/,
  resourceQuery: /inline/,
  use: 'url-loader'
}

 

 可以匹配:

 

import Foo from './foo.css?inline'

 

 RuleSet.normalizeCondition这个方法是实现and or exclude include not的关键,逻辑与的关系

  

 比如resource配置代码,解析为:

 符合js结尾的文件,并且满足在exclude指定的目录中,同时不在include指定的目录中,才使用babel-loader

 

分享到:
评论

相关推荐

    Redux-Ruleset-crx插件

    Redux-RuleSet的DevTools。 可视化数据流 Redux-RuleSet是可以管理数据流的冗余中间件。 该Chrome扩展可视化您的应用程序中的数据流动。 如果您使用Redux-RuleSET模拟整个数据流,您不仅可以可视化数据流的原因,...

    PMD_ruleset规则配置文件

    PMD_ruleset规则文件,已经最基本的验证进行了导入。在Eclipse导入即可

    ruleset-generator

    当前将其设置为"homepage": "/ruleset-generator/"以满足zgif.org的要求。 从此目录运行: npm run build以在/ build中获取构建工件。 用法 局限性 如果XSD无效,此应用程序将中断; 例如,在中没有Account 。 ...

    checkstyle_ruleset_minimal.xml

    checkstyle_ruleset_minimal.xml

    ruleset规则包

    规则包中的javabean内容规则包中的javabean内容规则包中的javabean内容规则包中的javabean内容规则包中的javabean内容

    tk10plus:看起来像德国地形图的渲染样式 1

    tk10plus tk10plus 是一组渲染样式,看起来像德国的“Topographische Karte 1:10.000”(地形图 1:... 在 Maperitive 中:use-ruleset location=/tk10plus/tk10better.mrules as-alias=tk10better 在 Maperitive 中:

    ccalc:科学的计算器,您可以在其中定义新的函数和常量

    如果您在启动时自动希望加载简化规则, /etc/ccalc/ simplification.ruleset复制到/etc/ccalc/ 。 如果要使用另一个文件夹,请调用make INSTALL_PATH=/my/path (不带斜杠)。 如何使用它 ccalc处理输入。 任何不是...

    RuleSet

    RuleSet

    Phant0m ruleset v8002破解版.rar

    Phant0m ruleset v8002 破解版.rar

    cloudflare-block-bad-bot-ruleset:使用Cloudflare防火墙规则阻止恶意爬网程序

    Cloudflare Block Bad Bot Ruleset项目停止并阻止Bad Bot,垃圾邮件引荐Cloudflare Block Bad Bot Ruleset ,广告软件,恶意软件和任何其他类型的不良Internet流量,这些垃圾流量曾经到达您的网站。受启发,并使用...

    tflint-ruleset-codestyle

    下载插件并将其放在~/.tflint.d/plugins/tflint-ruleset-template (或./.tflint.d/plugins/tflint-ruleset-template )中。 使用插件时,请在.tflint.hcl如下配置: plugin " template " { enabled = true } 规则...

    wordpress-modsecurity-ruleset:适用于WordPress的ModSecurity规则集(WPRS)

    您只需要克隆此存储库,然后将其包含在modsecurity.conf中: ...Include wordpress-modsecurity-ruleset/*.conf (可选)您可以按照01_SETUP.conf文件中所述更改默认行为: ...SecAction " phase:1,id:22000000,...

    tflint-ruleset-azurerm:实验性

    用于terraform-provider-azurerm的TFLint规则集 适用于Azure的Terraform Provider的TFLint规则集插件(资源管理器)要求TFLint v0.24 + 前往v1.16安装下载插件并将其放在~/.tflint.d/plugins/tflint-ruleset-azurerm...

    L-Schemer:Chicken Scheme编写的简单的L系统渲染软件

    该软件建立在基础之上。 建筑L-方案 为了编译L-Schemer,需要在目录中运行csc repl.scm 使用L-Schemer 使用L-Schemer有两种方法,一种可以使用源文件的文件名作为“ repl”的参数。 ./repl filename 一个人也...

    tflint-ruleset-aws:TFLint地形提供者-aws的规则集

    下载插件并将其放置在~/.tflint.d/plugins/tflint-ruleset-aws (或./.tflint.d/plugins/tflint-ruleset-aws )中。 使用插件时,请在.tflint.hcl如下配置: plugin " aws " { enabled = true } 有关插件的更多...

    kemitix-checkstyle-ruleset:集合Checkstyle规则集

    kemitix-checkstyle-规则集 提供与Checkstyle一起使用的广泛Checkstyle规则集,以及完整配置的maven-tile。 规则集包括来自核心Checkstyle库和Sevntu-Checkstyle库的检查。 用法 使用规则集的最简单方法是使用maven...

    zally-ruleset-example:自定义Zally RuleSet的示例

    Zally RuleSet示例 请注意,这正在进行中!! 例子EgoRule 愚蠢的示例规则,仅坚持要求API描述引用“ Example Corp”。 Gradle ./gradlew build 请注意,当前没有官方的公共Maven存储库来提供依赖项。 本示例使用...

    RuleSet-Validation:Angular本机验证包装器

    如果这些选项都不适合您,请对RuleSet Validation有所了解。 皮包骨头 RuleSet验证由本机Angular表单验证驱动。 $ dirty / $ pristine仍然适用,form。$ valid仍然适用,但是验证功能由RuleSet Validation使用您...

Global site tag (gtag.js) - Google Analytics