【问题标题】:File versioning and updating their names in dist files文件版本控制和更新它们在 dist 文件中的名称
【发布时间】:2016-02-04 18:36:07
【问题描述】:

我正在努力制作我的应用程序的 dist 版本。我已经用 r.js 打包了我的应用程序(应用程序正在使用 requirejs)。所以我有

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

现在我想对 dist 文件进行版本控制并更新 js、css 和 html 中的适当依赖项。 使用 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 build 中丢失 require.js,因为它不再需要了。欢迎任何指针,教程。

【问题讨论】:

  • 以防万一:不要对文件名进行版本控制,哈希! index-1.0.0.js 很好,但 index-afb56344c.js 更具体,更容易缓存(您可以将其绑定到源代码管理中的单个修订版)。

标签: javascript gruntjs requirejs


【解决方案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

【讨论】:

  • 我无法让 cachebuster 与 require 一起正常工作,最终使用 grunt-version-assets 稍作修改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多