사용 laravel-elixir
中自带的browserify
编译vue, vue-router, vue-resource
成功输出js文件后,使用时报错:Uncaught TypeError: Cannot read property 'use' of undefined
컴파일된 js 파일의 일부는 다음과 같습니다.
으아악 으아악 질문:
위에 컴파일된 두 파일은 require
配置是一样的,index.js这个可以使用,而new.js这个则报错,通过console.log()
分别查看各个依赖,new.js
里的Vue
是undefined
에 종속되어 있습니다. 가능한 이유가 무엇인지, 문제가 어디에 있는지 어떻게 알 수 있나요?
사용 방법vue
这些依赖可以只需加载一次,不必一起打包在文件里,我配置了browser-shim
, 작동하지 않는 것 같습니다. 제가 잘못 사용하고 있는 것인지 모르겠습니다.
某草草2017-05-16 16:52:14
드디어 문제의 원인을 찾았습니다(표현:울음). index.js
의 Vue
는 정상적으로 사용할 수 있지만 new.js
'는 s Vue
는 정의되지 않았습니다
. 여러 번 require
할 수는 없지만 VueRouter, VueResource
도 < code>require가 있는데 가능하다는 걸 곰곰히 생각해 보니 package.json
에 Vue<를 설정하는 문장이 있어서 그럴 수도 있겠다는 생각이 들었습니다. /code>를 전역 변수로 사용했기 때문에 문장을 변경하고 제거하고 다시 컴파일한 결과 성공한 것으로 확인되었습니다(반지식==의 부작용이군요). 제거된 설정은 다음과 같습니다:
index.js
里的Vue
可正常使用,而new.js
的Vue
则是undefined
,猜测难道它不可以多次require
,但是VueRouter, VueResource
也重复require
了,却是可用的,思索再三,想起可能是因为package.json
里写了一句把Vue
设置成全局变量,于是将该句去掉,再次编译,发现成功了(真是一知半解的副作用呀==)。去掉的那个设置如下:
"browserify-shim": {
...
"vue": "global:Vue"
}
PS:感谢朋友 Vicent Ye
으아악
Vicent Ye
에게 감사드립니다. 🎜