gulp入门教程5:node-glob

node-glob模块简介

node-glob是一个基于Node.js的文件匹配库,它允许用户使用类似于shell的通配符(如***)来匹配文件路径。这个库基于JavaScript,使用了minimatch库来进行匹配。node-glob在处理大型项目中的文件匹配任务时非常有用,例如配置Webpack的入口文件或gulp中的文件处理。

node-glob模块在gulp中的应用

在gulp中,node-glob模块主要用于gulp.src()方法中,以确定哪些文件需要被操作。gulp.src()方法接受一个glob字符串或由多个glob字符串组成的数组作为参数,用于匹配文件路径。匹配到的文件会被读取到内存中,并生成一个Node流(stream),以便后续处理。

node-glob匹配规则

node-glob模块支持多种匹配规则,以下是一些常用的匹配规则:

  • *:匹配文件路径中的0个或多个字符,但不会匹配路径分隔符(除非路径分隔符出现在末尾)。
  • **:匹配路径中的0个或多个目录及其子目录。需要单独出现,即它左右不能有其他字符。如果出现在末尾,也能匹配文件。
  • ?:匹配文件路径中的一个字符(不会匹配路径分隔符)。
  • [...]:匹配方括号中出现的字符中的任意一个。当方括号中第一个字符为^!时,表示不匹配方括号中出现的其他字符中的任意一个。
  • !(pattern|pattern|pattern):匹配任何与括号中给定的任一模式都不匹配的文件。
  • ?(pattern|pattern|pattern):匹配括号中给定的任一模式0次或1次。
  • +(pattern|pattern|pattern):匹配括号中给定的任一模式至少1次。
  • *(pattern|pattern|pattern):匹配括号中给定的任一模式0次或多次。
  • @(pattern|pattern|pattern):匹配括号中给定的任一模式1次。

使用node-glob模块的注意事项

  • 当使用glob数组时,会按照每个glob在数组中的位置依次执行匹配。这对于取反(negative)glob特别有用,因为取反glob必须跟在一个非取反(non-negative)glob后面才能生效。
  • 在glob中,分隔符永远是/字符,不区分操作系统。即使在采用\作为分隔符的Windows操作系统中,也应使用/作为分隔符。
  • \字符在glob中被保留作为转义字符使用。如果需要将通配符(如*)作为普通字符处理,可以使用\进行转义。
  • 避免使用Node的path类方法来创建glob,因为path.join等方法在Windows中会使用\作为路径分隔符,从而产生无效的glob。

示例

以下是一个使用node-glob模块在gulp中匹配文件的示例:

var gulp = require('gulp');// 匹配js文件夹下所有.js格式的文件
gulp.src('./js/*.js').pipe(gulp.dest('./dist/'));// 匹配js文件夹的0个或多个子文件夹中的.js文件
gulp.src('./js/**/*.js').pipe(gulp.dest('./dist/'));// 匹配除了index.js之外的所有js文件
gulp.src(['./js/*.js', '!./js/index.js']).pipe(gulp.dest('./dist/'));// 使用数组匹配多种文件类型
gulp.src(['./js/*.js', './css/*.css', './*.html']).pipe(gulp.dest('./dist/'));

通过以上介绍,您应该对node-glob模块在gulp中的应用有了更深入的了解。这个模块为gulp提供了强大的文件匹配功能,使得文件处理变得更加灵活和高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[mysql]数据定义语言DDL和数据操作语言DCL

目录 前文提要 数据定义语言DDL 数据操作语言DML 数据控制语言DCL 基础知识: 标识符(命名规则): 数据定义语言DDL 创建和管理数据库.: 管理数据库 切换数据库 修改数据库 更改数据库字符集 删除数据库 如何创建表 方式1:”白手起家的方式”创建表 方式2:已经有…

[NOIP2006 普及组] 明明的随机数

题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到 1000 之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同…

webpack使用详解

摘要:webpack作为一款主流的构建工具,对比后来者Vite虽然存在一些缺点,例如启动慢,配置复杂等。在很多项目中使用依然基于webpack构建,有必要掌握其概念、构建流程和配置方法。 1 webpack概述 1.1 基本概念 webpack …

基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

找树根和孩子c++

题目描述 给定一棵树&#xff0c;输出树的根root&#xff0c;孩子最多的结点max以及他的孩子 输入 第一行&#xff1a;n&#xff08;0<结点数<100&#xff09;&#xff0c;m&#xff08;0<边数<200&#xff09;。 以下m行&#xff1b;每行两个结点x和y&#xf…

Zypher Network:全栈式 Web3 游戏引擎,服务器抽象叙事的引领者

近期&#xff0c;《黑神话&#xff1a;悟空》的爆火不仅让 AAA 游戏重回焦点&#xff0c;也引发了玩家与开发者的热议。Web2 游戏的持续成功导致部分 Web3 玩家们的倒戈&#xff0c;对比之下 Web3 游戏存在生命周期短且商业模式难以明确的问题&#xff0c;尤其在当前加密市场环…

数据挖掘(七)

数据挖掘&#xff08;七&#xff09; 文章目录 数据挖掘&#xff08;七&#xff09;加载数据集用现有模型进行分类构建网络 寻找子图连通分支 社交网络具有很高的商业价值&#xff0c;比如QQ、微信等拥有大量活跃用户的应用&#xff0c;通过投放广告可以获得不菲的收入。对于网…

深度学习-迁移学习

深度学习中的迁移学习是通过在大规模数据上训练的模型&#xff0c;将其知识迁移到数据相对较少的相关任务中&#xff0c;能显著提升目标任务的模型性能。 一、迁移学习的核心概念 源任务&#xff08;Source Task&#xff09;与目标任务&#xff08;Target Task&#xff09;&…

H7-TOOL自制Flash读写保护算法系列,为兆易创新GD32E23X制作使能和解除算法,支持在线烧录和脱机烧录使用(2024-10-29)

说明&#xff1a; 很多IC厂家仅发布了内部Flash算法文件&#xff0c;并没有提供读写保护算法文件&#xff0c;也就是选项字节算法文件&#xff0c;需要我们制作。 实际上当前已经发布的TOOL版本&#xff0c;已经自制很多了。但是依然有些厂家还没自制&#xff0c;所以陆续开始…

flutter 写个简单的界面

起因&#xff0c; 目的: 来源: 客户需求。 着急要&#xff0c;我随便写的&#xff0c;应付一下。 过程: 略&#xff0c;直接看代码&#xff0c;看注释。 代码 1 xxx import package:flutter/material.dart;void main() {runApp(const MyApp()); }// # class MyApp extends…

.NET 8 中 Entity Framework Core 的使用

本文代码&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89935738 概述 Entity Framework Core (EF Core) 已成为 .NET 开发中数据访问的基石工具&#xff0c;为开发人员提供了强大而多功能的解决方案。随着 .NET 8 和 C# 10 中引入的改进&#xff0c;开发人…

推荐一款可视化和检查原始数据的工具:RawDigger

RawDigger是一款强大的工具&#xff0c;旨在可视化和检查相机记录的原始数据。它被称为一种“显微镜”&#xff0c;使用户能够深入分析原始图像数据&#xff0c;而不对其进行任何更改。RawDigger并不是一个原始转换器&#xff0c;而是一个帮助用户查看将由转换器使用的数据的工…

第三十三章 Vue路由进阶路由模块封装

目录 一、引言 二、完整代码 main.js index.js App.vue Find.vue My.vue 一、引言 在上一个章节中&#xff0c;我们将所有的路由配置都堆在main.js中来实现路径组件的路由&#xff0c;这样做的话非常不利于我们后期对项目的维护。因此正确的做法是将路由模块抽离出来&a…

基于java+SpringBoot+Vue的新闻推荐系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

指派问题的求解

实验类型&#xff1a;◆验证性实验 ◇综合性实验 ◇设计性实验 实验目的&#xff1a;学会使用Matlab求解指派问题。 实验内容&#xff1a;利用Matlab编程实现枚举法求解指派问题。 实验例题&#xff1a;有5人分别对应完成5项工作&#xff0c;其各自的耗费如下表所示&#…

商品满减、限时活动、折扣活动的计算最划算 golang

可以对商品的不同活动&#xff08;如满减、限时价和折扣&#xff09;进行分组&#xff0c;并在购物车中显示各个活动标签下的最优价格组合。以下代码将商品按活动类别进行分组计算&#xff0c;并输出在购物车中的显示信息。 package mainimport ("fmt""math&qu…

AWS RDS Oracle hit ORA-39405

报错信息&#xff1a; ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version 42 into a target database with TSTZ version 35. 分析过程&#xff1a; 这个报错是由于timezone_file的版本&#xff0c;源端比目标端高&#xf…

显卡服务器和普通服务器之间的区别有哪些?

显卡服务器也被称之为GPU服务器&#xff0c;显卡服务器与普通的服务器之间有着很明显的区别&#xff0c;下面就让我们共同来了解一下吧&#xff01; 普通服务器的主要处理器通常都是配备的中央处理器&#xff0c;可以用于执行大部分通用计算任务和操作系统的管理&#xff1b;而…

下载安装COPT+如何在jupyter中使用(安装心得,windows,最新7.2版本)

目录 1.到杉树科技官网申请下载COPT 2.安装COPT&配置许可文件 3.在jupyter中使用COPT的python接口 最近看到一本和数学建模有关的新书&#xff1a;《数学建模与数学规划&#xff1a;方法、案例及编程实战》&#xff0c;作为数学建模老手&#xff0c;肯定要学习一下&…

Python自动化运维:技能掌握与快速入门指南

#编程小白如何成为大神&#xff1f;大学生的最佳入门攻略# 在当今快速发展的IT行业中&#xff0c;Python自动化运维已经成为了一个不可或缺的技能。本文将为您详细介绍Python自动化运维所需的技能&#xff0c;并提供快速入门的资源&#xff0c;帮助您迅速掌握这一领域。 必备…