2014-09-25 59 views
1

我需要你的幫助:)咕嚕-usemin:不產生我的新的index.html,但它是串聯和涅槃我的腳本

我試圖用usemin建立我的角度應用程序。 基本上我想要生成一個新的index.html,它只能引用一個正確縮小的.js文件。

正在生成app.js文件,但我的新index.html不是。

我是很新的呻吟usemin,但這裏是我gruntfile:

grunt.initConfig({ 
    pkg: grunt.file.readJSON('bower.json'), 

    useminPrepare: { 
     html: 'public/index.html', 
     options: { 
     dest: 'dist' 
     }  
    }, 

    concat: { 
     generated: { 
     files: [ 
      { 
      dest: '.tmp/concat/js/app.js', 
      src: ['public/**/*.js', '!public/bower_components/**'] 
      } 
     ] 
     } 
    }, 

    uglify: { 
     generated: { 
     files: [ 
      { 
      dest: 'dist/js/app.js', 
      src: [ '.tmp/concat/js/app.js' ] 
      } 
     ] 
     } 
    } 

    }); 

grunt.registerTask('build', [ 
'useminPrepare', 
'concat:generated', 
'uglify:generated', 
'usemin' 
]); 

這裏是我的index.html的相關章節:

<!-- build:js js/app.js --> 
<script src="app.js"></script> 
<script src="domain/domain.js"></script> 
<script src="domain/landingPage/landingPageController.js"></script> 
... 
<!-- endbuild --> 

我的文件夾結構是:

+- public 
| +- index.html 
| +- domain 
|  +- js files  
+- gruntfile 

感謝您的幫助!

+0

我用一個非常類似的過程,和我之間的唯一的主要區別,而你是我除了useminPrepare一個usemin選項區域。爲了簡單起見,我只會發布我的gruntfile [這裏](http://pastebin.com/LKVBqLB6)。唯一的區別是我首先將所有相關文件複製到輸出文件夾中,然後在那裏處理它們,而不是一步完成。這當然與你的問題無關。 – 2014-09-25 18:17:54

+0

@KevinB,我把你的文件作爲例子,並設法讓我的場景工作。非常感謝您的意見! 我將在github上發佈我的gruntfile,以便儘快回答問題。乾杯! – 2014-09-26 09:06:11

回答

1

我從@KevinB拿了這個file,並創建了一個簡單的,做了我想要的。 仍然有一些粗糙的邊緣,但它確實回答了這個問題。

grunt.initConfig({ 
 
    pkg: grunt.file.readJSON('bower.json'), 
 

 
    clean: [ 'dist' ], 
 

 
    copy: { 
 
     build: { 
 
     files: [ 
 
      { 
 
      expand: true, 
 
      cwd: 'public/', 
 
      src: [ '**', '!**/**/*.js' ], 
 
      dest: 'dist' 
 
      }   
 
     ] 
 
     } 
 
    }, 
 

 
    processhtml: { 
 
     dist: { 
 
      files: { 
 
      'dist/index.html': ['dist/index.html'] 
 
      } 
 
     } 
 
    }, 
 

 
    concat: { 
 
     generated: { 
 
     files: [ 
 
      { 
 
      dest: 'dist/js/app.js', 
 
      src: ['public/**/*.js', '!public/bower_components/**'] 
 
      } 
 
     ] 
 
     } 
 
    }, 
 
    
 
    uglify: { 
 
     generated: { 
 
     files: [ 
 
      { 
 
      dest: 'dist/js/app.js', 
 
      src: [ 'dist/js/app.js' ] 
 
      } 
 
     ] 
 
     } 
 
    }  
 

 
    }); 
 
    
 
    grunt.registerTask('build', [ 
 
    'clean', 
 
    'copy', 
 
    'processhtml', 
 
    'concat:generated', 
 
    'uglify:generated' 
 
    ]);

+0

請注意,processhtml方法當然是不相關的,它所做的只是允許您更改文件的特定部分,例如,更改生產版本和開發版本之間的''。 – 2014-09-26 14:19:04

+0

@ rafael-audy-glanzner你不需要重寫*:生成的任務。有'useminPrepare'使用構建註釋配置來配置。 – stefbach 2015-02-25 01:29:34

+1

我的建議是將html和所有靜態資產複製到dist目錄,然後運行useminPrepare,* min任務,然後usemin。 – stefbach 2015-02-25 01:33:13