2017-12-07 14 views
0

그와 같은 모듈을 가져옵니다크롬 (62) 자바 스크립트 모듈

<script type="module"> 
    import mod_test from '../classes/mod_test.js'; 
    window.mod_test= mod_test; 
</script> 

하지만 난 함수를 호출하는 경우 크롬은 때때로 말한다 window.mod_test.test();

정의되지 않은

의 특성 '테스트'를 읽을 수 없습니다 이것은 Jquery 동기 요청에서 호출됩니다.

내가 뭘 잘못하고 있니? 또는 크롬과 관련된 버그입니다. 때때로 발생하기 때문에? 더 CORS의 문제가 없기 때문에

모듈은 내가 문제가 모듈로드 및 모듈 수출 fuction를 호출 사이에 경쟁 상태에있을 수 있다고 생각하는

var mod_test = { 
    a: null, 
    test: function (b) { 
     this.a=b; 
    } 
}; 

export default mod_test; 
+0

또한 'mod_test.js'도 표시 할 수 있습니까? 그것으로부터'mod_test'를 어떻게 export합니까? – dhilt

+0

''속성을 읽을 수 없습니다 '오류가 발생하면 바로'CORS 정책에 의해 스크립트가 차단되었습니다. '오류가 표시됩니까? – dhilt

+0

아니요 로그에 표시되지 않습니다 ... – crak

답변

2

것 같습니다. 접근을 시도 할 수 있는지 확인하십시오. 응용 프로그램 러너 호출하여 모듈을로드 한 후

<script> 
    window.runTheApp = function(mod_test) { 
    mod_test.test(); 
    // ... 
    } 
</script> 

과 : 모듈 로더 전에 응용 프로그램 러너 정의

<script type="module"> 
    import mod_test from '../classes/mod_test.js'; 
    window.runTheApp(mod_test); 
</script> 

는 또한, dynamic import이 유용 할 수 있습니다. 나에게 접근법을 더 명확하게 만든다 :

<script type="module"> 
    import('../classes/mod_test.js') 
    .then(function(module) { 
    console.log('module loaded'); 
    window.runTheApp(module.default); 
    }) 
</script> 
+0

동일한 오류가 발생했지만 Strg + F5 또는 location.reload (true)로 다시로드하면 나타납니다. 캐시를 만들지 않고 HTML의 메타 태그가 작동하지 않습니다 .... – crak

+0

@crak 모듈 로더에 로그를 추가했는데 콘솔에서 "속성을 읽을 수 없습니다"오류 바로 전에 "모듈로드 됨"메시지가 표시됩니까? – dhilt