如何将指向UI路由器版本化文件的链接替换为Usemin

how to replace links to versioned files of ui-router with usemin

本文关键字:文件 链接 替换 Usemin 版本 路由器 UI      更新时间:2023-09-26

给定以下文件应用程序.js

$stateProvider
      .state('intro', {
        url: '/intro',
        templateUrl: 'partials/intro.html',
        controller: 'IntroController as IntroCtrl'
      })
      .state('search', {
        url: '/search',
        templateUrl: 'partials/search.html',
        controller: 'SearchController as searchCtrl'
      })
      ;

任务是将模板 Url 文件更改为使用咕噜咕噜 filerev 修订的修订对应项。

我有一个咕噜咕噜的usemin目标

useminPrepare: {// configuration which tasks usemin will change/run
       html: build_src + '/index.html',             
       options: {
            dest: build_dest + '',
        }
},      
usemin: {           
     html: [build_dest + '/index.html'],            
     options: {
            dirs: [build_dest + '', build_dest + '/dist']           
     }      
}

它记录了如何在 html 中插入块注释,然后 usemin 执行修订和替换修订的文件。

如何实现javascript文件?

我继续搜索cetia的答案

我在以下位置找到了解决方案:https://github.com/yeoman/grunt-usemin/issues/235#issuecomment-33316221

usemin: {
            html: [build_dest + '/index.html'],
            js:[build_dest + '/**/*.js'],
            options: {
                dirs:[build_dest, build_dest + '/dist'],
                assetsDirs: [build_dest],
                patterns: {
                      // FIXME While usemin won't have full support for revved files we have to put all references manually here
                      js: [
                          [/(partials'/.*?'.html)/gm, 'Update the JS to reference our revved partials']
                      ]
                }
            }
        }

重要的补充是模式。你需要说如何使用 javascript 中的 html 链接。

设置assetDirs 选项也很重要,因为 usemins 文件处理器.js通过未修订到已修改文件的映射查找已修订的文件,如果未正确设置资产目录,则不会找到它。

你还需要告诉 usemin 替换 JS 文件中的"filerev"映射。

尝试在 usemin 配置中添加一个"js"部分:

usemin: {           
     html: [build_dest + '/index.html'],
     js: ['js/**/*.js']       
     options: {
            dirs: [build_dest + '', build_dest + '/dist']           
     }      
}

此外,您还可以使用角度$cacheTemplate将所有html文件连接到一个大文件(使用grunt-html2js)