2017-12-07 5 views
0

は、私はそのようなモジュールをインポートします。クローム62個のjavascriptのモジュール

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

をしかし、私は未定義

の '試験' プロパティを読み取ることができませんwindow.mod_test.test();

関数を呼び出す場合はChromeが時々言いますこれはJqueryの同期要求で呼び出されます。

私は間違っていますか?それは時々だけ起こるので、それはクロムのバグですか?あなたは何のCORSの問題を持っていないので、モジュールがその

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

export default mod_test; 
+0

あなたの 'mod_test.js'も表示できますか?どのように 'mod_test'をエクスポートしますか? – dhilt

+0

''プロパティを読み取れません 'というエラーの直後に、 'スクリプトがCORSポリシーによってブロックされました'というエラーが表示されますか? – dhilt

+0

いいえログには表示されません... – crak

答えて

2

のように見えます

、私はこの問題は、fuctionの通話をエクスポートモジュールのロードとモジュール間の競合状態になることができると思います。あなたがアプローチに従うことを試みるかもしれないことを確かめる。モジュールローダの前にアプリランナーを定義します。その後、

<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