Javascript 如何用usemin替换ui路由器版本文件的链接

Javascript 如何用usemin替换ui路由器版本文件的链接,javascript,gruntjs,angular-ui-router,grunt-usemin,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: '

给定以下文件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'
      })
      ;
任务是将templateUrl文件更改为使用修改过的修订副本

我有一个使用grunt的目标

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文件是如何实现的?

您还需要告诉usemin替换JS文件中的“filerev”映射

尝试在usemin配置中添加“js”部分:

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

此外,您还可以使用angular$cacheTemplate将所有html文件压缩为一个大文件(使用grunt-html2js),我继续搜索cetia的答案

我在以下位置找到了解决方案:

重要的补充是模式。您需要告诉usemin如何在javascript中搜索html链接


assetDirs选项的设置也很重要,因为usemins fileprocessor.js通过未更新到已更新文件的映射来查找已更新的文件,如果assetDirs设置不正确,它将找不到该文件。

我用其他选项来补充解决方案,我必须设置好这些选项。很高兴你的错误解决了。你现在可以接受你自己的答案了:p
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']
                      ]
                }
            }
        }