【发布时间】:2017-09-07 18:40:49
【问题描述】:
在我的webpack.mix.js 我有这样的东西:
// vue components
mix.js('resources/assets/js/app.js', 'public/js');
// scripts which I need
mix.scripts([
'resources/assets/js/jquery-2.2.4.min.js',
'resources/assets/js/bootstrap.min.js',
'resources/assets/js/fastclick.js',
'resources/assets/js/toastr.min.js',
'resources/assets/js/select2.min.js',
...
], 'public/assets/js/scripts.js');
// styles which I need
mix.styles([
"resources/assets/css/bootstrap-colorpicker.min.css",
"resources/assets/css/bootstrap-select.min.css",
"resources/assets/css/bootstrap.min.css",
"resources/assets/css/select2.min.css",
...
], 'public/assets/css/styles.css');
例如,我可以在我的 vue 组件之外初始化一个 select2。
但是当我尝试使用这个插件(或我的 mix.scripts 块的任何脚本)时,我得到下一个错误:
$(...).select2 is not a function
好吧,我搜索了一下,我找到了一个“解决方案”,在我的 vue 组件的 export default{} 之前,我需要 select2 脚本:
...
import Vue from 'vue';
require('../select2.min.js');
export default{
...
现在它可以在我的 vue 组件内部和外部工作:但是我“导入”了我的 select2 插件两次:
- 在我的
public/assets/js/scripts.js中(我需要它,因为我使用 select2 和其他没有 vue 组件的插件) - 在我的
resources/assets/js/app.js内部(当我运行npm run watch或npm run production时,编译器会将我的vue 组件的要求添加到这个脚本文件中)
所以,我的问题是:如何让 VUE 中的组件使用来自我的 public/assets/js/scripts.js 文件的 JQuery 脚本,而不必在每个 vue 组件中都要求它们? p>
我希望有办法做到这一点
【问题讨论】:
标签: jquery vuejs2 laravel-5.4 vue-component laravel-mix