在我的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');
例如,我可以select2
在我的 vue 组件之外初始化一个。
但是当我尝试使用这个插件(或我的mix.scripts
块的任何脚本)时,我得到下一个错误:
$(...).select2 is not a function
好吧,我搜索了一下,发现了一个“解决方案”,在export default{}
我的 vue 组件之前我需要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 组件中要求它们中的每一个?
我希望有办法做到这一点