爲此,我使用grunt-filerev作爲版本號,grunt-usemin用於自動更新源文件中的引用。
這兩個模塊工作得很好(usemin與filerev提供的映射替換引用)
希望這有助於
編輯:幾個代碼示例(只顯示你什麼你的情況很有趣) :
包裝,只有當我的應用程序(用於部署)我用usemin & filerev:
在我的index.html的頭部,下面的代碼告訴usemin採取所有文件build
標籤之間和agregate它變成一個名爲ie-shims.js
[...]
<!-- build:js /js/ie-shims.js -->
<script src="/vendor/html5shiv/dist/html5shiv.js"></script>
<script src="/vendor/respond/dest/respond.src.js"></script>
<!-- endbuild -->
[...]
接下來,在我的gruntfile.js,我有兩個節點:
[...]
filerev: {
options: {
encoding: 'utf8',
algorithm: 'md5',
length: 8
},
source: {
files: [{
src: [
'www/js/**/*.js',
'www/assets/**/*.{jpg,jpeg,gif,png,ico}'
]
}]
}
},
useminPrepare: {
html: 'src/index.html',
options: {
dest: 'www'
}
},
// usemin has access to the revved files mapping through grunt.filerev.summary
usemin: {
html: ['www/*.html'],
css: ['www/css/**/*.css'],
js: ['www/js/**/*.js'],
options: {
dirs: ['www'],
assetsDirs: ['www'],
patterns: {
js: [
[/["']([^:"']+\.(?:png|gif|jpe?g))["']/img, 'Image replacement in js files']
]
}
}
} [...]
最後,我有把所有的一起一咕嚕任務:
grunt.registerTask('build', 'Build task, does everything', ['useminPrepare', 'filerev', 'usemin']);
然後,生成的HTML是這樣的:
[...]
<script src="/js/ie-shims.9f790592.js"></script>
[...]
非常感謝你的回覆。我閱讀了這些模塊的文檔並試圖使用它們。他們工作,但似乎我必須創建一個額外的目標文件夾,這是不正確的。是否有可能將html和js文件保存在自己的目錄中,而不是將它們移動到新目錄中?請參閱我的項目的當前結構:http://pastebin.com/qcsaUBHC – Andreas