Rumah > Soal Jawab > teks badan
# 相关配置版本:
laravel 5.1 LTS
laravel-elixir 3
vue 1.0.26
vue-router 2.0.0
vue-resources 1.0.3
Gunakan laravel-elixir
中自带的browserify
编译vue, vue-router, vue-resource
成功输出js文件后,使用时报错:Uncaught TypeError: Cannot read property 'use' of undefined
Sebahagian daripada fail js yang disusun adalah seperti berikut:
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');
});
Soalan:
Dua fail yang disusun di atas adalah bergantung kepada require
配置是一样的,index.js这个可以使用,而new.js这个则报错,通过console.log()
分别查看各个依赖,new.js
里的Vue
是undefined
Saya tidak tahu apakah sebab yang mungkin, atau bagaimana untuk mengetahui di mana masalahnya?
Cara menggunakan vue
这些依赖可以只需加载一次,不必一起打包在文件里,我配置了browser-shim
, tetapi ia nampaknya tidak berkesan. Saya tidak tahu sama ada saya salah menggunakannya atau sesuatu:
package.json
"browserify": {
"transform": [
"vueify",
"browserify-shim",
"stringify"
]
},
"browserify-shim": {
"bootstrap-sass": {
"depends": [
"jquery:jQuery"
]
},
"vue": "global:Vue"
}
某草草2017-05-16 16:52:14
Akhirnya menemui punca masalah (ungkapan: menangis) Vue
dalam index.js
boleh digunakan secara normal, manakala new.js
' s Vue
adalah undefined
Saya rasa ia tidak boleh memerlukan
beberapa kali, tetapi VueRouter, VueResource
juga mengulangi <. kod>memerlukan , tetapi ia tersedia Setelah memikirkannya berulang kali, saya teringat bahawa ia mungkin kerana terdapat ayat dalam package.json
yang menetapkan Vue<. /code> sebagai pembolehubah global, jadi saya menukar ayat Mengalih keluarnya, menyusunnya semula, dan mendapati ia berjaya (apa kesan sampingan separuh pengetahuan ==). Tetapan yang dikeluarkan adalah seperti berikut:
index.js
里的Vue
可正常使用,而new.js
的Vue
则是undefined
,猜测难道它不可以多次require
,但是VueRouter, VueResource
也重复require
了,却是可用的,思索再三,想起可能是因为package.json
里写了一句把Vue
设置成全局变量,于是将该句去掉,再次编译,发现成功了(真是一知半解的副作用呀==)。去掉的那个设置如下:
"browserify-shim": {
...
"vue": "global:Vue"
}
PS:感谢朋友 Vicent Ye
rrreee
Vicent Ye
kerana membantu saya mencari masalah. 🎜