2016-02-04 17 views
0

我正在努力製作我的應用程序的dist版本。我用r.js打包了我的應用程序(應用程序使用requirejs)。所以,我有在dist文件中對文件進行版本控制和更新他們的名字

dir- 
    -index.html 
    -css 
     -style.css 
    -js 
     main.js 
    assets 
     -img1.jpg 
     -img2.png 

現在我想版本JS,CSS和HTML文件DIST和更新適當的依賴關係。 使用requirejs對版本化文件進行版本控制和自動裝配的適用工具是什麼?

我已經使用很多不同版本的插件從NPM如

grunt-version-assets 
grunt-assets-versioning 
grunt-version 
usemin 
etc. 

還沒有與他們多少運氣試過,有些似乎做親密的東西,我需要,但不完全。

我也嘗試使用grunt-filerev改寫文件並替換js,css和html中的字符串。在我還失敗了,無法弄清楚如何正確地更換

<script data-main="js/main" src="./lib/require.js"></script> 

和所有的最好的結果將是如不再需要它失去從DIST構建require.js一起。任何指針,教程都歡迎。

+0

以防萬一:沒有版本的文件名,哈希! 'index-1.0.0.js'很好,但'index-afb56344c.js'更具體,更容易緩存(並且可以將它綁定回源代碼管理中的單個修訂版本)。 – ssube

回答

-1

嘗試這兩個鏈接中的任何一個,它可能會很有幫助,也很容易實現。 1.

cacheBust: { 
    options: { 
     assets: ['assets/**/*'], 
     baseDir: './public/' 
    }, 
    taskName: { 
     files: [{ 
      expand: true, 
      cwd: 'public/', 
      src: ['templates/**/*.html', 'assets/**/*'] 
     }] 
    } 
} 

的更多信息,請到https://github.com/hollandben/grunt-cache-bust

2.

'cache-busting': { 
    requirejs: { 
     replace: ['tmp/**/*.html'], 
     replacement: 'MainApp', 
     file: 'tmp/deploy/js/app/MainApp.min.js' 
    }, 
    css: { 
     replace: ['tmp/**/*.html'], 
     replacement: 'style.css', 
     file: 'tmp/deploy/css/style.css', 
     cleanup: true //Remove previously generated hashed files. 
    } 
}, 

的更多信息,請到https://www.npmjs.com/package/grunt-cache-busting

+0

我不能讓cachebuster與require一起工作,最後只需稍作修改即可使用grunt-version-assets。 – Noripsni

相關問題