如何在 useminPrepare 中为 html 文件中的每个块定义单独的流程?

2024-01-01

我们在 index.html 中定义了 2 个块 - 一个用于第三方库,另一个用于我们的应用程序文件。由于第 3 方库已经缩小,我们只想将它们连接起来,而不是丑化。我怎样才能做到这一点useminPrepare?

<!-- build:js js/lib.js -->
<script src="lib/angular/angular.min.js"></script>
<script src="lib/angular-cookies/angular-cookies.min.js"></script>
<script src="lib/angular-route/angular-route.min.js"></script>
<!-- endbuild -->

 <!-- build:js js/app.js -->
<script src="js/app.js"></script>
<script src="js/controllers/LanguageCtrl.js"></script>
<!-- endbuild -->

gruntfile.js:

useminPrepare: {
        html: '<%= yeoman.app %>/index.html',
        options: {
            dest: '<%= yeoman.dist %>',
            flow: {
                html: {
                    steps: {
                        // TODO for libs.js block I don't want uglify!
                        js: ['concat', 'uglifyjs'], 
                        css: ['cssmin']
                    },
                    post: {}
                }
            }
        }
    }

似乎您需要定义自定义块。将展示示例 - 仅使用 concat 创建自定义块“myjs”。

Gruntfile.js

useminPrepare: {
  html: '<%= config.app %>/index.html',
  options: {
    dest: '<%= config.dist %>',
    flow: {
      // i'm using this config for all targets, not only 'html'
      steps: {
        // Here you define your flow for your custom block - only concat
        myjs: ['concat'],
        // Note that you NEED to redefine flow for default blocks... 
        // These below is default flow.
        js: ['concat', 'uglifyjs'],
        css: ['concat', 'cssmin']
      },
      // also you MUST define 'post' field to something not null
      post: {}
    }
  },
},

您还需要为自定义块定义块替换。这些块应该与 js 相同。

Gruntfile.js:

usemin: {
  options: {
    assetsDirs: ['<%= config.dist %>', '<%= config.dist %>/images'],
    blockReplacements: {
      // our 'replacement block'
      myjs: function (block) {
        return '<script src="' + block.dest + '"></script>';
      }
      // no need to redefine default blocks
    }
  },
  html: ['<%= config.dist %>/{,*/}*.html'],
  css: ['<%= config.dist %>/styles/{,*/}*.css']
},

所以,现在您可以在 index.html 中使用新的自定义块:

<!-- build:myjs js/lib.js -->
  <script src="lib/angular/angular.min.js"></script>
  <script src="lib/angular-cookies/angular-cookies.min.js"></script>
  <script src="lib/angular-route/angular-route.min.js"></script>
<!-- endbuild -->

<!-- build:js js/app.js -->
  <script src="js/app.js"></script>
  <script src="js/controllers/LanguageCtrl.js"></script>
<!-- endbuild -->

现在它应该按您想要的方式工作。我还没有测试过这段代码,但我的应用程序中有非常相似的配置,而且它的工作原理就像一个魅力。我在定义替换块时也遇到了一些问题 - 这非常令人沮丧。

希望能帮助到你!

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

如何在 useminPrepare 中为 html 文件中的每个块定义单独的流程? 的相关文章

随机推荐

  • 在 R Shiny 中使用并行 foreach 制作进度条

    我正在尝试添加一个进度条ocr data 在 for 循环中 但是当串联使用时 该过程非常慢 我正在尝试利用并行来加快生成表的过程ocr data x 代码粘贴在这里 ui lt fluidPage Application title ti
  • 如何在Android上的文本视图中对长文本进行文本换行

    在我的应用程序中 我有包含长文本的文本视图 我需要像 android 模拟器 gt 联系人 gt 电话 屏幕上没有联系人拨号盘 那样的文本换行 but in my application i get text wrapping as fol
  • HTML5 画布中的碰撞检测。也优化了

    我正在制作一个平台游戏 但我的碰撞检测有问题 我创建了一个在屏幕 地图上绘制图块的函数 在该函数中是我的碰撞检测 当仅绘制一个图块时它工作正常 但是当我用三个图块创建 楼梯 时 第一个图块无法正常工作 玩家只是被 推 到图块上 侧面检测不起
  • iTunes Store 操作失败。您必须为此请求提供 CFBundleIdentifier

    我刚刚注册了这个地方 我已经制作了应用程序 一切正常 应用程序所有证书和文件都已更新 但是当我尝试从 Xcode 上传到应用程序商店时 我不断收到此错误 如果有人能帮我解决它 那就太好了 谢谢 iTunes Store 操作失败 您必须为此
  • 如何解除 Xcode 5 项目的工作副本与已失效的 SVN 服务器的关联

    我有一个 Xcode 5 项目的修改工作副本 该副本是从不再可用的远程 svn 服务器签出的 如何删除工作副本的 svn 关联并使其不受源代码控制 最终我想基于工作副本创建一个 git 存储库并将修改推送到它 我不需要保留 svn 历史记录
  • 读取文件时Python enumerate() tqdm 进度条?

    当我使用此代码迭代打开的文件时 我看不到 tqdm 进度条 with open file path r as f for i line in enumerate tqdm f if i gt start and i lt end print
  • 如何以 AMD 方式集成 Foundation 3

    EDIT 4 有一个模块定义在 来 自Foundation 3包裹 app js function window undefined use strict var doc document Modernizr window Moderniz
  • 在 Rails 上实现类似 Twitter 的主题标签

    我想在我的应用程序上实现类似 Twitter 的主题标签 假设我有用户输入到文本区域 我从 paris 来到 london 然后我想构建主题标签的标签云 我正在考虑使用 acts as ttagable on 因此 我从后端的文本中找到所有
  • 无法点击带有 ajax 加载的按钮

    我正在将内容加载到 result div 中 在该内容中 有一个按钮 使用ajax加载内容后 我无法单击该按钮 我没有收到警报 页面看不到
  • 为docker容器分配IP地址?

    我是 Docker 新手 是否可以将 IP 地址 从 DHCP 服务器 分配给在主机或虚拟机上运行的 Docker 容器 如果是 有人可以指出我正确的方向吗 如果不是 这是否是容器方法的基本限制 或者只是 Docker 中尚未提供的功能 D
  • 在 Java 中重构代码,替代大型 if 语句

    我正在重构我正在处理的项目中的一些代码 并且遇到了一个遵循以下格式的大型 if else if 语句 if changer instanceof AppleChanger panel new ApplePanel else if chang
  • Android 小部件 ImageButton 在屏幕旋转时丢失图像

    我的主屏幕上有一个小部件 其中有几个具有默认背景图像的图像按钮 通过配置活动 我可以更改任何 ImageButton 上的图像 问题是 当屏幕旋转时 ImageButton 上的图像消失并变回默认图像 我不知道为什么会发生这种情况或如何解决
  • 没有域名的 SSL 证书

    我有一堆 node js 应用程序通过 websockets ws 向 apache 站点提供信息 网站本身没有域名并通过其 IP 地址进行访问 不幸的是 这是不可协商的 问题如下 如果没有安全连接 浏览器将阻止 ws 交通量 所以我必须使
  • 使用mapDispatchToProps时Promise不返回

    最近 我从使用一种乐观操作转变为添加另外两种乐观操作来检测成功 失败服务器响应 通过乐观的方法 我能够通过速记方式和承诺的链条传递我的行动 class Post extends Component onUpdateClick props t
  • 弹出子导航视图时透明TabBar iOS 15

    我有一个带有 TabBar 的 SwiftUI 应用程序 如果我从 NavigationView 打开详细信息子视图 然后单击 后退 TabBar 将变为透明 显示 TabBar 图标下方的 Feed 中的项目 从主屏幕中 打开子导航详细信
  • CR 错误 无法打印组部分,因为其条件字段不存在或无效

    我继承了 CR 报告 运行时出现错误 无法打印组部分 因为其条件字段不存在或无效 格式化该部分以选择另一个条件字段 有没有办法让我知道它指的是哪个领域 关于我什么时候应该开始寻找问题的任何指示 我已经验证了 DB 它指向正确并且 Sp 返回
  • Maven 坚持认为 JAVA_HOME 未正确定义,除非我将其作为 sudo 运行

    Ubuntu 22 04 1 从 20 04 5 最新更新 当我尝试用 Maven 构建任何东西时 它会抱怨 mvn v The JAVA HOME environment variable is not defined correctly
  • Visual Studio“转到定义”菜单选项行为 - 为什么 C# 和 VB 项目之间不一致

    当使用 C 项目在 VS2005 中进行开发时 我右键单击框架方法 属性 类型并选择 转到定义 默认情况下 我们会得到一个新的锁定选项卡 其中包含从框架生成的代码 并适当标记为 来自元数据 然而 当我们在 VB NET 项目中执行相同操作时
  • 在正则表达式中匹配两个单词及其之间的一些字符

    我想在没有时对字符串进行匹配abc后面跟着一些字符 可能没有 并以 com 我尝试了以下方法 abc com or abc com or
  • 如何在 useminPrepare 中为 html 文件中的每个块定义单独的流程?

    我们在 index html 中定义了 2 个块 一个用于第三方库 另一个用于我们的应用程序文件 由于第 3 方库已经缩小 我们只想将它们连接起来 而不是丑化 我怎样才能做到这一点useminPrepare