【发布时间】:2026-01-26 23:10:02
【问题描述】:
这行得通:
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/2.0.2/anime.min.js"></script>
<script type="text/javascript">
var textWrapper = document.querySelector('.ml6 .letters');
textWrapper.innerHTML = textWrapper.textContent.replace(/\S/g, "<span class='letter'>$&</span>");
anime.timeline({loop: false})
.add({
targets: '.ml6 .letter',
translateY: ["1.1em", 0],
translateZ: 0,
duration: 750,
delay: (el, i) => 50 * i
});
</script>
但是如果我在libraries.js 中包含来自CDN 的确切JS,如下所示,我会得到ReferenceError: Can't find variable: anime。
<script src="{{ mix('/js/libraries.js') }}"></script>
<script type="text/javascript">
var textWrapper = document.querySelector('.ml6 .letters');
textWrapper.innerHTML = textWrapper.textContent.replace(/\S/g, "<span class='letter'>$&</span>");
anime.timeline({loop: false})
.add({
targets: '.ml6 .letter',
translateY: ["1.1em", 0],
translateZ: 0,
duration: 750,
delay: (el, i) => 50 * i
});
</script>
我检查并混合正在编译,JS包含在libraries.js中。
这是完全相同的脚本,包含在完全相同的位置,所以我很困惑为什么这不起作用。我唯一能想到的是libraries.js 是在脚本运行之后加载的。是这样吗?如果是这样:我该如何解决?
我经常遇到这个问题。我想使用mix() 而不是asset()。
以上大约是 1 个库,但我更愿意将我使用的大部分库包含在一个文件 libraries.js 中,但由于上述问题,今天我通过 CDN 加载其中大部分。
【问题讨论】:
-
您是否尝试在文件顶部添加这些行?
<script src="{{ mix('/js/libraries.js') }}"></script> -
我不想把这个文件移到我的
<head>如果你是这个意思吗? -
因为
libraries.js可能会在您的 js 代码加载后加载。所以这就是为什么这个问题仍然存在。检查您的控制台。 -
控制台只显示
ReferenceError: Can't find variable: anime。如果你说的是真的,那么我如何控制某些东西何时加载?因为现在它更像是一场赌博,所以很难控制加载的内容和时间。我刚刚更新了这个问题,即使我在同一文件中启动库 之后 库它仍然不起作用。 -
就像测试一样,您可以在代码中从
libraries.js复制代码并尝试其是否有效。
标签: javascript laravel laravel-mix