2015-01-12 29 views
2

鉴于以下文件app.js如何更换链接版本UI路由器的文件与usemin

$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文件改变向其中revisioned与grunt filerev他们revisioned同行。

我有一个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执行revisioning并更换revisioned文件。

javascript文件是如何实现的?

回答

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'] 
         ] 
       } 
      } 
     } 

重要的补充是模式。你需要对usemin说如何在javascript中搜索html链接。

assetDirs选项对于设置也很重要,因为usemins fileprocessor.js会通过未复制文件到revved文件的映射来查找rev文件,并且如果assetDirs设置不正确,它将无法找到它。

1

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

尝试增加在usemin配置了 “JS” 的一部分:

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

此外,你也可以Concat的所有HTML文件只有一个大的(与咕噜-html2js)采用了棱角分明$ cacheTemplate

+0

我补充了解决方案和其他选项,我不得不设置 –

+1

做得好。很高兴你的错误得到解决。你现在可以接受你自己的答案:p –

相关问题