根据 Gulp 中的正则表达式重命名文件

2024-01-24

假设我有一个 LESS CSS 目录结构,如下所示:

less/
    core/
        _main.less
        header.less
        body.less
        footer.less
    contact/
        _main.less
        form.less
        details.less

我想编写一个 Gulp 任务来查找_main.less每个子目录下的文件less/dir,将其传递给 gulp-less 并将输出写入css/像这样的目录:

css/
    core.css
    contact.css

Because _main.less包括其目录中的其他文件,仅_main.less文件必须被解析,但我希望输出文件具有其所在目录的名称。

到目前为止我有这个:

gulp.src('less/*/*/_main.less')
    .pipe(less())
    .pipe(gulp.dest('css'));

但这将创建一个像这样的目录结构:

css/
    core/
        _main.css
    contact/
        _main.css

但这不是我想要的。我正在考虑使用正则表达式来匹配目录名称,将其返回到matchesvar,并相应地重命名该文件。像这样的事情:

gulp.src(/less\/[^\/]+\/([^\/]+)\/_main.less/)
    .pipe(less())
    .pipe(rename(function(context) {
        context.src.matches[1] + '.css'
     }))
    .pipe(gulp.dest('css'));

这段代码只是一个例子。我不知道如何做这样的事情,或者是否可能。

这可能吗?如果是这样,怎么办?


你看起来已经有了这个,但也许没有看到the gulp-rename plugin https://www.npmjs.org/package/gulp-rename#usage?

我什至不认为你需要使用RegExp,这样的事情应该有效:

var rename = require('gulp-rename'),
    path = require('path'); // node Path

//...

gulp.src('less/**/_main.less')
    .pipe(less())
    .pipe(rename(function(filepath) {
        // replace file name to that of the parent directory
        filepath.basename = path.basename(filepath.dirname);
        // remove parent directory from relative path
        filepath.dirname = path.dirname(filepath.dirname);
        // leave extension as-is
     }))
    .pipe(gulp.dest('css'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据 Gulp 中的正则表达式重命名文件 的相关文章

随机推荐

  • 在执行 $price = (int) ( (0.1+0.7) * 10 ); 之类的操作时要采取什么预防措施得到 7 作为答案

    in PHP echo int 0 1 0 7 10 或者用红宝石 p 0 1 0 7 10 to i 结果是 7 而不是 8 可能真的很难发现这样的陷阱 我认为如果在北美 这不是一个问题 因为我们计算价格最多为多少美分 所以 17 28
  • 如何将整个数据库复制到另一个服务器数据库?

    我目前正在开发一个带有 MySQL 后端的 Windows 应用程序 现在我想将旧的数据库结构和数据复制到新的数据库服务器 如何使用 MySQL Workbench 解决这个问题 谢谢你 打开 MySQL 工作台 创建旧服务器的连接 如果没
  • SSIS:默认日志记录 OnError 不适用于 RetainSameConnection

    我在连接管理器中使用 RetainSameConnection true 因为我正在使用事务 如果成功 失败 则最后开始事务 提交或回滚 我还使用默认的 SQL Server 日志记录提供程序并选择了 OnError 事件 以及其他事件 问
  • awk 输出到多个 shell 变量

    我的 awk 程序中有多个打印语句 我希望它们将其传递回 shell 变量 是否可以 For eg awk r 10 q 20 rr sprintf 04 0f r qq sprintf 05 0f q 我可以将 rr 和 qq 的输出传递
  • 错误:[$resource:badcfg] 资源配置错误。预期响应包含一个数组,但得到一个对象?

    如何修复错误 resource badcfg 资源配置错误 预期回应 包含一个数组但有一个对象 服务 angular module admin services ngResource GET TASK LIST ACTIVITY facto
  • Groovy/Grails 浮点值和 HTML5 数字输入

    在 Groovy Grails 2 0 中 我有一个带有 Float 变量的域 例如 Float Weight 25 28 当 Grails 生成具有相应数字输入字段的表单时 验证会抱怨 25 28 值 并且只接受 int 值 有人可以阐明
  • 从后端发送Excel文件到前端并在前端下载

    我使用 Exceljs npm 模块在后端 Express JS 创建了一个 Excel 文件 我将其存储在临时目录中 现在我想将文件从后端发送到前端 并在用户单击按钮时将其下载到前端 我对两件事感到震惊 1 如何通过HTTP POST请求
  • django 快速登录系统

    我已经创建了一个 Django Web 应用程序 其中包含一个简单的用户表 用户名 密码 我还设置了一个 iOS 应用程序 swift 并且想知道对登录系统进行编码的最佳方法是什么 根据我从研究中收集到的信息 我将不得不对从现有 djang
  • 更改首选项的高度

    我有一个 PreferenceFragment 子类 我希望其每一项 Preferences 和 SwitchPreferences 的高度为 120dp 怎么做 这是相关代码 public class SettingsFragment e
  • 无法从 pine 编辑器中的函数访问值

    我正在尝试测试 RSI 14 DI 反转策略 但无法从它们所在的函数访问 DI 或 DI 变量为 加 和 减 有关如何访问它们的任何想法 这是代码 version 4 strategy RSI 14 DI DI Reversal Strat
  • 如何设置UISwitch边框颜色?

    我的应用程序有 UIView appearance setTintColor UIColor whiteColor 这就是我所拥有的on and off 我需要做UISwitch边框可见 如 Settings app 中所示 Your UI
  • Homestead 2.0 多个站点,全部链接到同一网址

    大家好 小问题 我已经设置了 Homestead 2 0 一切正常 我想在同一代码目录中添加另一个项目 但将其链接到另一个网址 所以我将其添加到站点列表中 但是当我访问 laravel app 时 一切正常 但是当我访问 larabook
  • 制作 2 个子集向量,以便值在索引方向上不同

    我想从相同的数据中提取 2 个向量的子集 其中replace TRUE 即使两个向量可以包含相同的值 它们在同一索引位置也不能相同 例如 gt set seed 1 gt a lt sample 15 10 replace T gt b l
  • 针对特定产品的颤动增量计数器?

    我正在flutter中做一个包含产品的应用程序 我需要做的是能够增加并获取要存储的增加产品的密钥 目前它们正在增加所有产品 我留下了图片和代码 感谢您的帮助 当按下添加图标时 增加两个计数器的乘积 https i stack imgur c
  • 访问 TWinControl 的受保护事件

    想象一下 您想要分配自己的事件过程 procedure TSuperObject DoSomething Sender TObject Button TMouseButton Shift TShiftState X Y Integer be
  • Zend Framework:如何处理 Ajax 请求中的异常?

    通常 当引发异常时 错误控制器会接受命令并显示带有常规公共页眉和页脚的错误页面 Ajax 请求中不需要这种行为 因为如果发生错误 整个 html 页面都会被发送过来 如果我直接在 div 中加载 http 响应的内容 则这是更不受欢迎的 相
  • 将 AT&T 语法转换为 Intel 语法 (ASM)

    我一直在尝试访问可执行文件的 peb 信息 如下所示 访问 x64 TEB C 和汇编 https stackoverflow com questions 21973330 access x64 teb c assembly noredir
  • TypeError:Google App Engine 的 Python 中存在预期的字符串或缓冲区

    我想使用以下代码显示对象的内容 def get self url https www googleapis com language translate v2 key MY BILLING KEY q hello source en tar
  • java中模拟全局变量的查询

    我有一个问题 我想这对于这里的大多数人来说都是微不足道的 然而 这里是 我有一个连接到数据库以读取特定信息的应用程序 现在 这种读取根据每个请求发生在应用程序中的许多类中 所以我想将每个请求的数据库连接数限制为 1 个 这就是我所做的 假设
  • 根据 Gulp 中的正则表达式重命名文件

    假设我有一个 LESS CSS 目录结构 如下所示 less core main less header less body less footer less contact main less form less details less