使用 Grunt Uglify 进行动态映射和连接

2023-12-04

我正在尝试使用动态映射并使用 Grunt Uglify 连接 Javascript 文件。

我有以下无法正常工作的情况。

这是我的文件夹结构:

javascript
    |- account
        |- custom.js
    |- bills
        |- billing-one.js
        |- billing-two.js
    |- test (output folder)

这是我所期待的:

javascript
    |- account
        |- custom.js
    |- bills
        |- billing-one.js
        |- billing-two.js
    |- test
        |- billing-one.min.js (this file includes billing-one.js AND custom.js)
        |- billing-two.min.js (this file includes billing-two.js AND custom.js)

这就是我目前得到的:

javascript
    |- account
        |- custom.js
    |- bills
        |- billing-one.js
        |- billing-two.js
    |- test
        |- bills
            |- billing-one.min.js (this file includes just billing-one.js)
            |- billing-two.min.js (this file includes just billing-two.js)
        |- account 
            |- custom.min.js (this file includes just custom.js)

它不包含 custom.js 文件,而是创建 2 个文件夹test/account/custom.min.js'test/bills/billing-one.js' - 见上文

options: {
    beautify: true,
    mangle: false,
    compress: false,
    preserveComments: 'all'
},
files: [
  {
    expand: true,     // Enable dynamic expansion.
    cwd: 'javascript/',      // Src matches are relative to this path.
    src: [[bills/*.js'], 'account/custom.js'], // Actual pattern(s) to match.
    dest: 'test/',   // Destination path prefix.
    ext: '.min.js',   // Dest filepaths will have this extension.
    extDot: 'first'   // Extensions in filenames begin after the first dot
  },
],

我想要其中的所有 Javascript 文件bills/包含 custom.js 的文件夹

所以如果有2个文件:bills/billing-one.js bills/billing-two.js

我希望 test/ 文件夹包含

test/billing-one.min.js(此文件将包含 billing-one + custom.js)test/billing-two.min.js(此文件将包含 billing-two + custom.js)

我不想对文件名进行硬编码。如果添加更多文件bills/文件夹应该连接并输出到test/ folder.

非常感谢任何帮助。

自接受答案以来的更新:

使用以下更新的代码来确保其按预期工作 - 否则在运行 GRUNT 时会遇到错误。

我确实尝试通过提交编辑以供审核来将其添加到答案中。但它被众所周知的所有高级模组拒绝了两次……而事实上它是一个有效的输入并且改进了给出的答案。请注意[], cwd and src变化。

files: [{
    expand: true,
    cwd: 'javascript/bills/',
    src: ['*.js'],
    dest: 'test/',
    ext: '.min.js',
    extDot: 'first'
}],

您可以使用 grunt-contrib-uglify 的横幅属性来附加内容。https://github.com/gruntjs/grunt-contrib-uglify#banner

这是 grunt 配置:

grunt.initConfig({
    uglify: {
      options: {
        banner: grunt.file.read('./javascript/account/custom.js'),
        beautify: true,
        mangle: false,
        compress: false,
        preserveComments: 'all'
      },
      files: {
        expand: true,
        cwd: 'javascript/',
        src: ['bills/*.js'],
        dest: 'test/',
        ext: '.min.js',
        extDot: 'first'
      },
    }
  });

在上面的配置中,bills 文件夹中的每个文件都将获取在banner 属性中配置的custom.js 的内容。

我希望它对你有帮助。

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

使用 Grunt Uglify 进行动态映射和连接 的相关文章

随机推荐

  • 在 JQuery 中比较日期和时间

    我想在 jquery 中按日期比较一些消息 例如 我有一个text box价值为04 01 2013 13 15 32由用户端填写 jquery 变量中的当前日期时间为04 01 2013 18 30 12如果文本框值小于当前日期时间 则显
  • 通过字距调整动态调整文本大小以占据 UILabel 的整个宽度

    我有一个布局UILabel放置在固定宽度视图上方 如下所示为灰色矩形 文本需要匹配固定灰色视图的宽度 我通过设置实现了这一点adjustsFontSizeToFitWidth财产在UILabel to YES 将字体大小设置为非常大的值 然
  • THttprio onBeforeExecute 更改soapRequest

    我已经为一个项目导入了一些 wsdl 我想更改 HttpRio onBeforeExecute 事件上的 SoapRequest 但是 当我更改请求时 我收到一些错误 如何更改请求 xml 文件 在此事件上使用 stringReplace
  • Docker - 如何访问未附加到容器的卷?

    我有一个数据容器 其中有一个由其他容器使用的卷 volumes from 数据容器被意外删除 值得庆幸的是 该卷没有被删除 有什么方法可以重新运行数据容器并将其指向该卷吗 有什么方法可以重新运行数据容器并将其指向该卷吗 当然 我在 如何从已
  • 派生对象的模板是基类型模板的子类

    如果 apple 是 fruit 的子类 那么List
  • 如何使用 iText 在 Web 环境中通过智能卡签署 PDF?

    阅读以下参考文献 iText 数字签名白皮书 and C 示例 具体来说第4章 对于那些有兴趣的人 另一个精彩而简洁的总结PDF 签名过程 CAPICOM 文档 此处和 iText 邮件列表档案上的在线示例 问题 例如here and he
  • Jekyll 插件中的“优先级”标志应该如何工作?

    我目前正在尝试为 Jekyll 开发一个插件 这将有助于使用云数对于响应式图像 当前源是在我的 Github 仓库中 稍后当 如果它有效时 我会将其变成宝石 这个插件有两个特点 用于定义 Cloudinary 图像的 Liquid 标签 例
  • 如何对没有逻辑的类进行单元测试?

    我发现为算法编写单元测试很容易 例如 sort List 很容易编写如下测试 list 2 1 4 assert sort list 1 2 4 但我发现测试没有逻辑的方法真的很难 没有if语句 只是一组调用 我主要想知道如何对它们进行单元
  • Codeigniter - 无法调用系统的 lang() 函数

    尝试调用属于 codeigniter 系统 帮助程序 language helper php 一部分的 lang 函数 导致致命错误 Fatal error Call to undefined function lang def actio
  • facebook feed 方法链接默认添加 fb_ref=Default 在最后如何删除

    我正在使用 feed 方法从我的网站使用 asp net 和 jquery javascript 发布到我的 facebook 墙 最初它工作正常 但突然在最后的链接中添加了 fb ref Default 我不知道为什么会发生我想删除请帮助
  • 使用 ARC 避免出现悬空指针

    我有一个物体 里面有一个strong对对象的引用 property nonatomic strong NSObject thing 在其他地方 我有一个传递对象引用的方法 thirdObject doSomething secondObje
  • 对 MySQL 表中的行重新排序

    我有一张桌子 ID Name Order 1 John 1 2 Mike 3 3 Daniel 4 4 Lisa 2 5 Joe 5
  • 无法使用 http/https 将 Git 推送到远程存储库

    我在服务器上的 apache 提供的目录中有一个 Git 存储库 我已经配置了 WebDAV 并且它似乎运行正常 Litmus 返回 100 成功 我可以从远程主机克隆我的存储库 但是当尝试推送 http 或 https 时 出现以下错误
  • Azure SQL 数据仓库的简单性能测试

    我们正在努力将现有应用程序移植到 Azure SQL 数据仓库 为了更好地了解 Azure SQL 数据仓库的性能 工作负载管理特征 功能 我设置了一个我认为非常简单的测试 我加载了一个静态表 即我们企业的日历 包含大约 20k 行 即对于
  • 能够使用附近连接同时向多个设备发送消息/字节

    为了尝试附近的 API 我决定构建一个应用程序 允许老师跟踪学生在课堂上的出勤情况 类似于什么张嘉伦是在做 我已经经历了谷歌关于剪刀石头布和对讲机的示例代码 但似乎只有一个设备可以连接在任何一个时间当我使用 4 部手机测试样本时 我想构建一
  • 使用 selenium 滚动抓取 javascript 表

    我正在尝试抓取通过 javascript 生成的表格 但我很挣扎 到目前为止我的代码是 driver webdriver Chrome driver get https af ktnlandscapes com get table firs
  • 如何导出具有依赖关系的 SVN 存储库的一部分?

    我正在尝试使用迁移 SVN 存储库的一部分svnadmin dump 提供的 svndumpfilter 工具不管理导出中未包含的目录的复制 移动 重命名依赖项 有没有一个工具可以管理这些依赖关系 我发现了 Simon Tatham 的一个
  • 为每个类别选择 N 条记录并按 X 排序

    我有一个包含博客文章的数据库表 我想在主页上显示每个类别的一篇 或多篇 帖子 例如按日期排序 所以我的帖子表如下所示 id title description cat filename date 我将如何创建这样的查询 我想过使用 grou
  • 如何计算正弦曲线两端的面积

    给定这个数据集 y lt c 13 16 35 40 28 36 43 33 40 33 22 5 27 31 29 25 26 31 26 24 25 29 23 4 t lt 1 24 我的目标是计算两个面积 第一个区域将仅集成来自零线
  • 使用 Grunt Uglify 进行动态映射和连接

    我正在尝试使用动态映射并使用 Grunt Uglify 连接 Javascript 文件 我有以下无法正常工作的情况 这是我的文件夹结构 javascript account custom js bills billing one js b