更改Gulp中文件的目标路径

2023-12-24

我尝试创建动态 gulp 任务,它将循环遍历所有文件和文件夹,并将其连接/编译到相应的文件夹中。

文件夹结构例如:主题/框架/模块/module-1/assets/css/scss/scss-file-1.scss and 主题/框架/模块/module-2/assets/css/scss/scss-file-2.scss etc.

gulp 任务是

gulp.task('modules-sass', function () {
    return gulp.src([
        '../../framework/modules/**/assets/css/scss/*.scss'
    ])
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(sassGlob())
    .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
    .pipe(sourcemaps.write('.', {
        includeContent: false,
        sourceRoot: function(file) {
            return '../css';
        }
    }))
    .pipe(gulp.dest('../../framework/modules'));
});

结果是:

theme/framework/modules/module-1/assets/css/scss/scss-file-1.css
theme/framework/modules/module-1/assets/css/scss/scss-file-1.css.map
theme/framework/modules/module-2/assets/css/scss/scss-file-2.css
theme/framework/modules/module-2/assets/css/scss/scss-file-2.css.map

但我想将 css 和地图文件放在 css 文件夹中而不是放在 scss 中!

例如,我还尝试设置目的地的绝对路径

gulp.task('theme-modules-sass', function () {
    return gulp.src([
        '../../framework/modules/**/assets/css/scss/*.scss'
    ])
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(sassGlob())
    .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
    .pipe(sourcemaps.write('.', {
        includeContent: false,
        sourceRoot: function(file) {
            return '../css';
        }
    }))
    .pipe(gulp.dest(function(file){
        var filePath = file.path;
        var module = filePath.substring(filePath.indexOf('\\modules'), filePath.indexOf('\\assets'));
        var moduleName = module.replace('\\modules\\', '');

        return '../../framework/modules/'+moduleName+'/assets/css/';
    }));
});

但然后 gulp 在 css 文件夹内创建完整的文件层次结构,例如

主题/框架/模块/module-1/assets/css/module-1/assets/css/scss/scss-file-1.css

感谢您提供解决方案

此致, 内纳德


我相信这就是你想要的。 [看起来你的 gulpfile.js 位于模块目录中。]

// theme / framework / modules / module-1 / assets / css / scss / scss-file-1.scss
// theme / framework / modules / module-2 / assets / css / scss / scss-file-2.scss

var rename = require("gulp-rename");
var path = require("path");

gulp.task('modules-sass', function () {
  return gulp.src([
      '../../framework/modules/**/assets/css/scss/*.scss'
  ])
  .pipe(sourcemaps.init({loadMaps: true}))
  .pipe(sassGlob())
  .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
  .pipe(sourcemaps.write('.', {
      includeContent: false,
      sourceRoot: function(file) {
          return '../css';
      }
  }))

  .pipe(rename(function (file) {
      // this removes the last parent directory of the relative file path
      file.dirname = path.dirname(file.dirname);
      console.log("file.dirname = " + file.dirname);
  }))

  .pipe(gulp.dest('../../framework/modules'));
});

gulp重命名 https://www.npmjs.com/package/gulp-rename在这里工作得很好。我最初认为它只是为了重命名基本名称,例如“myFile.css”,但它可以忽略基本名称并只操作目录路径。这就是我们在这里所做的。

我们通过获取 file.dirname 的目录名来去掉最后一个目录名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改Gulp中文件的目标路径 的相关文章

随机推荐

  • 使用 Java 创建 .eml(电子邮件)文件

    有人知道该怎么做吗 我获取了电子邮件的所有信息 正文 主题 发件人 收件人 抄送 密件抄送 并且需要从中生成 eml 文件 您可以使用以下代码创建 eml 文件 它可以与雷鸟以及其他电子邮件客户端一起正常工作 public static v
  • 如何从 Intellij IDEA 访问 cassandra 数据库

    我在2018年10月16日安装了intellij idea 2018 2 5 我正在尝试添加到面板 数据库 cassandra 为此 我转到 Intellij 中的 数据源和驱动程序 设置并添加 cassandra 的驱动程序 gt 图片来
  • 捕获图像,上传到 Firebase 并检索 Java Android Studio

    如果这可能是一个有简单解决方案的问题 我感到非常抱歉 我想做什么 从按钮捕获图像 将该图像上传到 Firebase 存储 在 ImageView 中检索该图像 到目前为止我遇到了什么麻烦 拍照 但当我单击勾号时崩溃 因此 没有任何内容被上传
  • 如何在黑莓手机中使用相机扫描图像?

    我已经开始了一个项目 我想在其中实现二维码扫描功能 举个例子 android 中的 ZXing 我想为黑莓操作系统 6 及更高版本实现 我想使用相机扫描实时图像 是否可以 如果是的话 那怎么可能呢 您必须使用条形码 API 它是针对 OS
  • 如何在 GAE 应用程序中执行异步 api 请求?

    我正在开发一个基于 GAE 和 python 2 7 13 的应用程序 我想做的是在处理程序内进行一堆异步 API 调用 像这样的东西 class MakeRequests webapp2 RequestHandler def post s
  • 根据页面位置更改背景颜色

    我只想根据滚动更改背景颜色 例如从红到蓝 该代码有效 但如何将灰色更改为颜色 http fiddle jshell net schmudde ffk6phq0 http fiddle jshell net schmudde ffk6phq0
  • 扩展图像字段以允许 pdf ( django )

    我的表单中有 ImageField 正如我发现的 它使用枕头来验证该文件实际上是一个图像 这部分很棒 但我也需要在此表单字段中允许 pdf 所以它应该检查文件是否是图像 如果不是 则检查它是否是pdf 然后加载并存储 如果 pdf 检查能够
  • 查找特定列中最后一行的更有效方法?

    我正在编写一个应用程序 它将把列从一张纸导入到另一张纸上 getLastRow 方法仅适用于整个工作表 但不能用于获取列的最后一行 存在请求此功能的问题 我在 Google Script Examples 的人员的 2D Array 库的帮
  • 将资源转换为 byte[]

    我在将图像资源转换为 byte 时遇到问题 例如 我有以下资源 pack application AppName component Assets Images sampleimage jpg 在我的程序中 如何将其转换为 byte 我尝试
  • 页面底部固定 div 停在给定位置的问题

    我们需要一个位于页面底部的页脚工具栏 并在页面滚动到某个区域下方时粘在该区域上 我们使用以下脚本实现了这一点 固定 div 位于页面底部并停止在给定位置 https stackoverflow com questions 5141425 f
  • 在 R 中绘制巨大的数据文件?

    我有一个大约有 2000 万行的输入文件 文件的大小约为1 2 G 无论如何我可以在R中绘制数据 有些列有类别 其中大多数是数字 我已经尝试使用大约 800K 行的一小部分输入文件的绘图脚本 但即使我有大约 8G 的 RAM 我似乎也无法绘
  • Java Swing 将 JPanel 添加到 JPanel

    情况 我目前正在尝试使用 Java 的 Swing 构建 2D 游戏 为此 我有我的主课Puzzle这是子类化JFrame 在我的框架中 我添加了我的主要内容JPanel它由几个组成JPanel添加在一起 每个都是一个新的部分 EDIT 2
  • 如何将 stdout 的输出转换为 golang 中的字符串

    我有以下代码 它将数据从 stdout 输出到文件 cmd exec Command ls lh outfile err os Create out txt if err nil panic err defer outfile Close
  • 最近的 Ubuntu 版本中有 libsresample 吗?

    我想知道哪个软件包涵盖了最新 Ubuntu 版本的 libswresample 也许还有早期版本 希望也包括 Debian 它完全被覆盖了吗 如果没有 我应该使用什么其他库来重新采样音频 最好是让它在任何地方都可以工作 即该库在任何地方都可
  • 将变量传递给 Flask WTForm

    我想使用从路由传入的默认值来执行查询选择字段 我不知道如何将变量从 View 传递到 Form 类 class transactionsForm Form loan id QuerySelectField trans id validato
  • unixaccept()函数两次返回相同的文件描述符

    我的多线程网络服务器程序有问题 我有一个正在侦听新客户端连接的主线程 我使用 Linux epoll 来获取 I O 事件通知 对于每个传入事件 我创建一个线程来接受新连接并为其分配一个 fd 在重负载下 可能会发生同一个 fd 被分配两次
  • Silverlight 的双击触发器

    Related Silverlight 中最简洁的单击 双击处理 https stackoverflow com q 1274378 1001985 在 XAML 中双击触发某些操作的最简单方法是什么 我正在尝试做这样的事情 当用户双击列表
  • 调用 WebService 并有 SSL/证书问题

    首先 我对 Java 中设置密钥库等知识了解不多 我正在尝试调用 SOAP Web 服务 我获取了 wsdl 生成了代码等 在我部署它并尝试触发 WS 调用之前 一切看起来都很好 这是我的设置 雄猫7 0 35 Java jdk 1 6 0
  • TFS 2015 CI - 具有 Web、控制台和 WCF 项目的解决方案中不会为控制台应用程序生成构建工件

    我正在使用 TFS 2015 CI 创建一个项目解决方案的持续集成 该解决方案结合了 Web 项目 WCF 项目 类库和控制台应用程序 该项目的结构如下所示 Project Solution Project 1 Web UI Project
  • 更改Gulp中文件的目标路径

    我尝试创建动态 gulp 任务 它将循环遍历所有文件和文件夹 并将其连接 编译到相应的文件夹中 文件夹结构例如 主题 框架 模块 module 1 assets css scss scss file 1 scss and 主题 框架 模块