【问题标题】:How to add version number to js and css files如何将版本号添加到 js 和 css 文件
【发布时间】:2016-02-22 19:57:15
【问题描述】:

我想用适当的版本后缀将我所有的 bower 组件插入到我的索引页中。版本后缀是指每个组件在其bower.json 文件中的特定version 属性中的版本号。

举个例子,

我的应用程序的 bower.json 依赖项中有 jquery。

{
    "dependencies": {
        "jquery": "^2.2.0",
    }
}

并且 jquery 组件有自己的 .bower.json 并且该 json 有一个 version 属性。

{
  "name": "jquery",
  "main": "dist/jquery.js",
  "license": "MIT",
  "version": "2.2.0"
  // ETC...
}

我想要的是从组件的.bower.json文件中提取这个版本号并创建一个像这样的脚本标签

<script src="/bower_components/jquery/dist/jquery.js?version=2.2.0"></script>

我正在使用 gulp wiredep 任务自动将我的组件插入 index.html。我可以通过覆盖wiredep的options属性,使用fileTypes属性为脚本标签的src属性添加自定义后缀。

fileTypes: {
    html: {
        replace: {
            js: '<script src="{{filePath}}?v=0.1"></script>'
        }
    }
}

但我不知道如何获取每个特定组件的版本号,以及当wiredep 在页面上插入它们时如何单独覆盖它们。

我的方法正确吗?那么,我该如何进行呢? 或者有更好的方法来完成这个......

附注-- 此要求与缓存清除有关。但一点也不。我正在使用 gulp-rev 来缓存我的自定义应用程序 js 和 css 文件。但是凉亭组件不应该在每个构建中都被缓存。我想用它们的版本号来引用它们,并且只在我更新它们时使用缓存破坏,并使用新版本后缀缓存破坏。

【问题讨论】:

  • 这是为了缓存破坏吗?
  • 是的。我知道用于缓存破坏的“gulp-rev”。但它总是为每个构建创建一个新的后缀。我将 gulp-rev 用于我的自定义 css 和 js 文件。对于凉亭组件,我不想缓存它们。
  • gulp-cache-bust 使用 MD5 根据内容进行缓存清除
  • 很高兴知道 :) 一定会试一试的。您想写一个答案并对该主题进行一些解释吗?顺便说一句,gulp-cache-bust 已被弃用。可能是另一个仍在维护的?

标签: javascript gulp bower


【解决方案1】:

根据要求 --

有几种缓存清除机制使用校验和或数据哈希来实现缓存清除,这可能比更新版本号更适合您的需求:

  • gulp-cache-bust
  • gulp-cachebust
  • 吞下胸围

是我在谷歌搜索时发现的一些

我最近使用的是第一个(gulp-cache-bust)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2012-12-26
    • 1970-01-01
    • 2010-09-11
    • 2012-03-02
    • 2020-10-18
    • 2018-02-17
    相关资源
    最近更新 更多