찾다

 >  Q&A  >  본문

vue.js - laravel-elixir 3: .browserify()의 컴파일된 파일에서 종속 파일을 찾을 수 없다고 보고했습니다. 정의되지 않음

으아악

사용 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里的Vueundefined에 종속되어 있습니다. 가능한 이유가 무엇인지, 문제가 어디에 있는지 어떻게 알 수 있나요?

사용 방법vue这些依赖可以只需加载一次,不必一起打包在文件里,我配置了browser-shim, 작동하지 않는 것 같습니다. 제가 잘못 사용하고 있는 것인지 모르겠습니다.

으아악
淡淡烟草味淡淡烟草味2792일 전690

모든 응답(1)나는 대답할 것이다

  • 某草草

    某草草2017-05-16 16:52:14

    드디어 문제의 원인을 찾았습니다(표현:울음).
    index.jsVue는 정상적으로 사용할 수 있지만 new.js'는 s Vue정의되지 않았습니다. 여러 번 require할 수는 없지만 VueRouter, VueResource도 < code>require가 있는데 가능하다는 걸 곰곰히 생각해 보니 package.jsonVue<를 설정하는 문장이 있어서 그럴 수도 있겠다는 생각이 들었습니다. /code>를 전역 변수로 사용했기 때문에 문장을 변경하고 제거하고 다시 컴파일한 결과 성공한 것으로 확인되었습니다(반지식==의 부작용이군요). 제거된 설정은 다음과 같습니다: index.js里的Vue可正常使用,而new.jsVue则是undefined,猜测难道它不可以多次require,但是VueRouter, VueResource也重复require了,却是可用的,思索再三,想起可能是因为package.json里写了一句把Vue设置成全局变量,于是将该句去掉,再次编译,发现成功了(真是一知半解的副作用呀==)。去掉的那个设置如下:

    "browserify-shim": {
        ...
        "vue": "global:Vue"
    }

    PS:感谢朋友 Vicent Ye 으아악

    PS: 문제를 찾는 데 도움을 준 내 친구 Vicent Ye에게 감사드립니다. 🎜

    회신하다
    0
  • 취소회신하다