问题标签 [gulp-rev]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
28 浏览

node.js - 尝试创建 rev.manifest 时出现问题

我正在尝试从我的 gulpfile 中更改一项任务,以创建一个 rev 清单,以便在另一个时刻使用。在这段代码工作之后,我将添加 gulp-sourcemap 来创建一些源映射。但是,这个简单的事情需要先工作。

目标是连接脚本文件夹和脚本子文件夹(如“c.js”)中的一些脚本,在这个新脚本 vendor.js 中应用 rev,然后填充 rev 清单以用于另一个任务。

我不是 Node.js 或 Gulp 方面的专家。这是我第一次尝试这样做。所以,这将是我忘记的一件愚蠢的事情。

这是我的代码(修改为看起来像一个示例),并在此先感谢

我在我的 rev-manifest.json 上得到了这个:

但它应该是这样的:

0 投票
1 回答
407 浏览

gulp - 如何使用 rev-replace 替换 manifest.json 文件中的文件名

我有点卡住了——我想用我的清单文件中的散列版本替换图像文件名。

清单看起来像这样:

我希望将这些图标 src 替换为如下所示的散列文件名:“android-chrome-192x192-b03df0131.png”

我的 gulp 文件应该是这样的:

0 投票
1 回答
686 浏览

javascript - AngularJS,Gulp 静态资源修改

我正在使用gulp-rev模块对我的源文件进行静态资产重新构想,它会生成所有文件 - CSS、JS 和 HTML,其中包含新文件名并在其中附加哈希码。

但是在我的 AngularJS 代码和 HTML 页面中,我使用实际名称引用了其他 HTML,当我使用时如何处理gulp-rev

例如:

HTML 代码:

JS代码:

$routeProvider

吞咽代码:

0 投票
1 回答
1272 浏览

gulp-rev - 使用 gulp 对 css 和 js 文件进行版本控制

我们正在向 css 和 js 文件添加版本以进行缓存清除。我已经使用 gulp-rev-manifest 和 gulp-rev-collector 来实现这一点。但是每次我们使用新版本号构建所有更新的文件时,都必须推送到生产环境,这并不理想。有没有其他方法可以做到这一点。

谢谢

0 投票
2 回答
2244 浏览

javascript - Gulp 使用 gulp-rev 处理文件数组

语境

我有一个gulpfile.js. 它基本上将两个带有 js 文件的文件夹连接到两个文件以导出到 dist 文件夹。它还添加了一个缓存破坏器和一个用于生产的丑陋版本。

输出

gulpfile.js作品。它构建了一个rev-manifest.json这样的:

问题

为了让它工作,我为每个 js 文件复制了_concatScriptsand任务:和. 使 gulpfile 不必要的大且难以维护。_minifyScriptsapp.jsmain.js

我试过的

我尝试使用数组来定义脚本源文件和输出名称。这不起作用,因为循环块中的代码不会等待前一个块准备好。因此,缩小任务有时会失败,因为原始 js 文件尚不存在,有时rev-manifest.json会被先前的代码块覆盖。所以它不再是一个真正的 gulp 系列了。做这样的事情的最佳做法是什么?

更新

我的 gulp 文件现在看起来像这样:

动态任务创建者工作。不幸的是,缩小任务在连接任务完成之前就开始了。我收到以下错误,添加 allowEmpty 选项确实有效,但随后错误的连接文件被缩小:

0 投票
1 回答
202 浏览

javascript - rev-manifest.json 文件路径中的问题

我正在使用 gulp-rev,它工作正常。但我有一个问题。我有多个 gulp 任务,我想跟踪 rev-mainfest.json 文件中的所有内容,因此我在 rev.manifest() 中提供 merge:true 配置,但它不是在我提供的路径上创建文件,而是在目录的根级别。这是我提供路径的方式:

我在这里想念什么?

0 投票
1 回答
34 浏览

javascript - 有什么方法可以跟踪 gulp-rev 在 rev-mainfest.json 文件中创建的所有 js 文件?

我正在使用 gulp-rev 生成缩小的 js 文件。现在 gulp-rev 只跟踪 rev-mainfest.json 文件中的最新版本,例如

但我想跟踪所有生成的文件,例如

有没有办法做到这一点?

0 投票
2 回答
230 浏览

gulp - 如何调整我的 gulp 静态资产修订以与 ServiceWorkers 一起使用?

上下文:我有一个生产应用程序(如果你想看这里),它当前正在使用静态资产修订,除了它在生成内容哈希时也处理依赖项之外gulp-rev-allgulp-rev它生成一组具有静态名称(例如goals.jsbecome goals.6a5aa614.js)并使用这些静态名称相互引用的新文件。然后我在生产环境中使用 Fastly CDN 提供这些文件,因此我的 NodeJS 服务器没有被积极用于静态资产。这一直很好。

现在我正在使站点与服务人员离线工作。由于我去年在同步逻辑上做了很多工作,所以网站的动态部分很容易检修。但是我对如何处理我的静态资产有点不知所措。

我想我会使用工作箱,这似乎工作正常。但是workbox precache使用查询来破坏缓存而不是更改文件名,两者都做似乎很愚蠢。但是,如果我停止使用版本化名称,那么如何在不支持 service worker 的浏览器上破坏缓存?

(我还有另一个相关的问题,考虑到 Fastly 的响应对 SW 来说是不透明的,因此继续使用 Fastly 是否有意义,因此不一定是预缓存的好选择?虽然没有 Fastly,但对于任何人来说,应用程序会变得慢很多没有使用服务工作者,这听起来与 PWA 方法对立。我应该添加一个 nginx 缓存还是什么?(我不知道这是什么,但我听说过几次))

在我看来,这必须有一个优雅的解决方案,但我的理解gulp非常有限,我很难知道什么是可能的,而且我对 ServiceWorkers 和缓存的理解非常有限,我很难知道正是我想要的。

因此,我无法在这个问题上获得任何牵引力:

如何调整我的 gulp 静态资产修订以与 ServiceWorkers 一起使用?

有用的一件事是链接到其他生产应用程序如何处理此问题的示例。

0 投票
1 回答
257 浏览

javascript - gulp-rev-rewrite 未写入所有文件

我有多个文件,我需要从 manifest.json 重命名散列 css,但我似乎无法让它工作。

我尝试创建一个具有多个源和目标的数组,但我认为我错过了一些东西。基本上我希望它更改多个文件中的值以匹配 manifest.json 中的特定 css 文件。

0 投票
0 回答
82 浏览

javascript - 哈希已更新,但浏览器仍使用 gulp-rev 加载旧缓存

由于这个原因,我一直在挠头

我已经使用 gulp-rev 将 hash 设置为所有 html 文件的名称,它们都在 manifest file 中匹配。我也使用 gulp-rev-collector 来匹配所有更新的哈希。

我确定如果客户端文件的任何内容发生了变化,我在 gulp 构建后得到了新的散列文件名,但浏览器没有更新并请求新文件,它仍然使用旧的缓存文件,直到我清理缓存和硬重新加载。这是下面的简化代码:

gulp-rev

修订分布视图

吞咽构建

我可以看到内置 /dist 文件夹后的哈希值发生了变化。但 Chrome 仍然使用旧缓存而不是新文件

客户端可以使用任何解决方案吗?

注意:响应头中没有设置缓存策略