typescript 包:将内容哈希添加到html

pobjuy32  于 2022-11-18  发布在  TypeScript
关注(0)|答案(2)|浏览(201)

我有三个文件。loader.js将创建一个iframe,加载content.html,然后加载content.js。我发布loader.js,这样其他人就可以在他们的网站中包括它,内容html和js是内部的。
现在,我想在content.html和content.js中添加一个内容哈希,这样我就可以在这些文件中添加一些积极的缓存配置。
当我用parcel build content.html构建html时,我得到了content.htmlcontent.<hash>.js。有没有办法把构建哈希值也放到content.html中,同时更新loader.js以包含哈希的content.html url?
编辑:我认为我发现这是不可能的-存在未决问题https://github.com/parcel-bundler/parcel/issues/4498

yh2wf1be

yh2wf1be1#

从未处理过包裹,但文件上说:
入口点从不进行哈希处理
因此,您的content.html不会被散列,因为它是入口点:parcel build content.html

h7appiyu

h7appiyu2#

有一种方法可以添加它:

  • 将id添加到其中一个资产,例如css文件
  • 在javascript中,获取链接的href
  • 使用正则表达式获取哈希值。
  • 在需要地方注入哈希。

示例:

<link id="ui-styling" rel="stylesheet" type="text/css" href="styles/default/style.less">

    <script>
        var href = document.getElementById("ui-styling").getAttribute("href");
        var m = /\.([^.]+)\.css$/.exec(href);
        var hash = m[1];
        
        // use or inject hash elsewhere ...
    </script>

相关问题