【发布时间】:2018-08-03 10:28:38
【问题描述】:
我需要从 --prod 构建中调用 scripts.bundle.js 中的函数。
我们在 angular-cli json 文件中有这个:
"scripts": [
"./assets/scripts/analytics.js",
"../node_modules/moment/min/moment.min.js",
],
当用户使用不受支持的浏览器进入时,我需要使用 scripts.bundle.js 中的函数进行分析,例如 index.html:
<script type="text/javascript">
// Detect browser and redirect IE11 or earlier users
(function() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE '); // IE10 or earlier
var trident = ua.indexOf('Trident/'); // IE11
if ( msie > 0 || trident > 0 ) {
analyticsTrack("/browser-error")
window.location.href = "/browser-error.html";
}
})();
</script>
这不起作用,因为脚本在底部注入。此时,尚未定义分析。
我尝试将代码放在 browser-error.html 中,方法是将其包含在 scripts.bundle.js 中,但是一旦使用 --prod 构建,它就不适用于缓存清除(因为哈希被注入到名称中文件的 - 比如 scripts.sadf345dsfg.bundle.js)
<script type="text/javascript" src="scripts.bundle.js"></script>
<script type="text/javascript">
analyticsTrack("/browser-error")
</script>
除了关闭缓存清除之外,关于如何调用 scripts.bundle.js 中的函数还有其他建议吗?
【问题讨论】:
-
你有没有尝试把你的脚本放在一个 JS 文件中,并将它添加到 angular-cli json 数组的末尾?
标签: angular