# 相关配置版本:
laravel 5.1 LTS
laravel-elixir 3
vue 1.0.26
vue-router 2.0.0
vue-resources 1.0.3
Verwenden Sie laravel-elixir
中自带的browserify
编译vue, vue-router, vue-resource
成功输出js文件后,使用时报错:Uncaught TypeError: Cannot read property 'use' of undefined
Ein Teil der kompilierten js-Datei lautet wie folgt:
var Vue = require("vue");
var VueRouter = require('vue-router');
var VueResource = require('vue-resource');
Vue.use(VueRouter);
Vue.use(VueResource);
gulpfile.js
// 局部
elixir(function(mix) {
mix.browserify('index.js', 'public/dist/js/index.js');
mix.browserify('new.js', 'public/dist/js/new.js');
});
Frage:
Die beiden oben zusammengestellten Dateien sind abhängig von require
配置是一样的,index.js这个可以使用,而new.js这个则报错,通过console.log()
分别查看各个依赖,new.js
里的Vue
是undefined
Ich weiß nicht, was die möglichen Gründe sind oder wie ich herausfinden kann, wo das Problem liegt?
Wie benutzt man vue
这些依赖可以只需加载一次,不必一起打包在文件里,我配置了browser-shim
, aber es scheint nicht zu funktionieren, ob ich es falsch verwende oder so:
package.json
"browserify": {
"transform": [
"vueify",
"browserify-shim",
"stringify"
]
},
"browserify-shim": {
"bootstrap-sass": {
"depends": [
"jquery:jQuery"
]
},
"vue": "global:Vue"
}
终于找到问题原因了(表情:泣不成声)
index.js
里的Vue
可正常使用,而new.js
的Vue
则是undefined
,猜测难道它不可以多次require
,但是VueRouter, VueResource
也重复require
了,却是可用的,思索再三,想起可能是因为package.json
里写了一句把Vue
设置成全局变量,于是将该句去掉,再次编译,发现成功了(真是一知半解的副作用呀==)。去掉的那个设置如下:PS:感谢朋友
Vicent Ye
帮助我找到了问题所在。