如何用usemin替换ui-router的版本化文件的链接

Dav*_*ang 2 javascript gruntjs angular-ui-router grunt-usemin

给出以下文件app.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'
      })
      ;
Run Code Online (Sandbox Code Playgroud)

任务是将templateUrl文件更改为使用grunt 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']           
     }      
}
Run Code Online (Sandbox Code Playgroud)

记录了如何在html中插入块注释,然后使用min执行修订以及更换修订文件.

如何实现javascript文件?

Dav*_*ang 5

我继续搜索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']
                      ]
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

重要的补充是模式.您需要说使用min如何在javascript中搜索html链接.

assetDirs选项对于设置也很重要,因为usemins fileprocessor.js通过未恢复到已加速文件的映射查找加速文件,如果assetDirs设置不正确,则无法找到它.