gpt4 book ai didi

javascript - Grunt 文件输出静态资源指向指定的 URL

转载 作者:行者123 更新时间:2023-12-03 12:42:35 25 4
gpt4 key购买 nike

在我的索引文件中,我有这样的内容:

<!-- build:js({.tmp,app}) scripts/main.js -->
<script src="scripts/foo.js"></script>
<script src="scripts/bar.js"></script>
<!-- endbuild -->

然后输出到我的 dist,如下所示:

<script src="scripts/cce9cd3a.main.js"></script>

我想做的是修改 dist 的渲染方式,使其显示如下内容:

<script src="https://s3.amazonaws.com/etc/etc/static/scripts/cce9cd3a.main.js"></script>

我的想法是我希望它以相同的方式输出到 dist 文件夹,我将其移至 s3。使用 grunt 将所有静态资源添加到同一个静态服务 URL 之前的干净方法是什么?

最佳答案

根据我们在评论中进行的讨论,在 grunt-usemin 起作用后,您有两个常规选项。

1) 从 shell 中查找并替换。

如果您使用带有 grep 和类似工具的 *nix 系统,您可以将该文件放在易于 grep 和替换的位置。例如,您可以将构建 block 更改为:

<!-- build:js({.tmp,app}) awsreplacepath/main.js -->
<script src="scripts/foo.js"></script>
<script src="scripts/bar.js"></script>
<!-- endbuild -->

所以你会得到类似的东西:

<script src="awsreplacepath/cce9cd3a.main.js"></script>

然后使用 grep-and-replace shell 脚本(如这些问题中讨论的脚本)将 awsreplacepath 替换为要引用的路径。

2) 在 grunt 完成之前查找并替换。

有一些用于 grunt 的查找和替换插件,但是 grunt-string-replace根据 npmjs.org,似乎使用率最高。

这与第一个选项没有太大不同。

在这两种情况下,正则表达式都应该很简单,因为您可以选择一个本质上肯定是唯一的字符串...因此您只需将“awsreplacepath”之类的内容放入正则表达式即可。

...只需记住,您需要移动的 usemin 生成的 main.js 文件仍位于 awsreplacepath 目录中。我们所做的只是更改 HTML,以防止您必须自己编辑文件。

关于javascript - Grunt 文件输出静态资源指向指定的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com