为什么用Laravel会得到未定义的JS?

时间:2018-09-18 00:43:09

标签: javascript laravel ecmascript-6 laravel-mix

我正在使用Laravel,并且在我的bootstrap.js文件中

window.ProgressBar = require('progressbar.js');

然后我需要将bootstrap.js文件放入app.js

require('./bootstrap');

然后我用webpack.mix.js进行编译

mix.js('resources/assets/js/app.js', 'public/js')

如果我尝试访问app.js内的progressbar.js,则效果很好。

但是,如果我尝试在页面上 app.js之后的脚本标签中的app.js之外使用它,则ProgressBar为{{1} }。

如何在undefined之外访问ProgressBar,但如何通过app.js导入它?

app.js上的示例

index.blade.php

2 个答案:

答案 0 :(得分:1)

我在脚本标签上有defer,由于某种原因,它停止了工作。

解决方案:

<script src="app.js" defer></script>

更改为

<script src="app.js"></script>

答案 1 :(得分:0)

我认为,即使您已将ProgressBar分配给window,Webpack也会对您隐藏ProgressBar。因为您知道,Webpack认为该捆绑包包含您应用程序的所有代码。解?不捆绑!而是使用缩小版本的ProgressBar并像过去一样加载它。完全可以,更好或更差几纳秒,不明显。