我正在做一个项目, 我们正在升级Laravel的版本, 在这个过程中我们也在尝试使用 拉威尔混合. 我的主要问题是,我不明白如何在网页中使用Mix编译的脚本。
我一直在遵循 Laravel文档 在使用Mix的过程中,我根据页面顶部的文档加载编译后的Mix文件。
<script src="{{ mix('/js/manifest.js') }}"></script>
<script src="{{ mix('/js/vendor.js') }}"></script>
<script src="{{ mix('/js/app.js') }}"></script>
在我的网页顶部的文档中,我正在加载编译好的Mix文件。npm run dev
(或 prod
)命令运行得很好,但当我在浏览器中加载一个页面时就出现了问题。我使用的是 mix.extract()
函数来编译我们所有的Node.js包到我们的Node.js包中。vendor.js
文件中提到的。当我在浏览器中加载该页面时,任何软件包中的功能都不可用,而且每个软件包都会收到以下错误消息。
TypeError: $(...).xyz is not a function
我们在刀片文件本身和通过 Mix 运行的一些单独的 Javascript 文件中都有 Javascript。例如...
mix.js('resources/assets/js/public.js', 'public/js');
我已将此代码添加到我的 webpack.mix.js
其中允许 jQuery
在Javascript文件中,但没有将其用于刀片文件。而且其他的包也都不可用.
mix.autoload({
jquery: [
'$',
'jQuery',
'jquery',
'window.$',
'window.jQuery',
'window.jquery'
]
});
Laravel自带这个文件, resources/assets/js/app.js, 这是我在Mix中运行的文件之一. 我试着使用各种组合的 import
和 require()
中的文件,但到目前为止,我试过的所有方法都没有用,而且有时我的结果是重复的 vendor.js
这就有点违背了使用 mix.extract()
.
这个 mix.js('resources/assets/js/public.js', 'public/js');
将创建一个新文件,名为 和 和 <script src="{{ mix('/js/app.js') }}"></script>
指的是 app.js
而不是使用 <script src="{{ mix('/js/public.js') }}"></script>