2017-07-27 15 views
3

これを追跡するのは難しいので、私に負けてくれてありがとう。 IE11で私たちのサイトが壊れていると不満を表明していたユーザーもいました。アプリはnextjs 3.0.1とwebpack 2.7.0を使用しています。開発モード IE11でWebpackが破損している

デバッグ私はAngular RxJs timer pausing on IE11と同様の問題があると思います。 webpack /// webpack bootstrapxxxxxxxxxx(ここで、xは16進数の数字です)というIE11のリファレンスからエラーが出ます。

// The require function 
function __webpack_require__(moduleId) { 

    // Check if module is in cache 
    if(installedModules[moduleId]) { 
     return installedModules[moduleId].exports; 
    } 
    // Create a new module (and put it into the cache) 
    var module = installedModules[moduleId] = { 
     i: moduleId, 
     l: false, 
     exports: {}, 
     hot: hotCreateModule(moduleId), 
     parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp), 
     children: [] 
    }; 

    // Execute the module function 
    var threw = true; 
    try { 
     modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); 
     threw = false; 
    } finally { 
     if(threw) delete installedModules[moduleId]; 
    } 

    // Flag the module as loaded 
    module.l = true; 

    // Return the exports of the module 
    return module.exports; 
} 

ラインmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));がエラーUnable to get property 'call' of undefined or null referenceをスロー:

は、ここで問題を引き起こしている機能です。

私は(次のためのWebPACKの設定)これが欠落しているポリフィルによるものですので、私はhttps://github.com/zeit/next.js/issues/1254でアドバイスに従い、next.config.jsにこれを追加想像:

const originalEntry = config.entry 
config.entry = function() { 
    return originalEntry() 
    .then((entry) => { 
     Object.keys(entry).forEach(k => { 
     entry[k].unshift('babel-polyfill') 
     }) 
     console.log(entry) 

     return entry 
    }) 
} 

私はまだ見ています同じエラー。面白いの生産の

追加の詳細

ことの一つは、私がnextjsアプリの生産バージョンでは別の問題を持っているということです。これは、次によって生成されたapp.jsファイルに深いですが、エラーは、このラインhttps://github.com/ianstormtaylor/heroku-logger/blob/master/src/index.js#L12から来ているようだ:それはExpected identifierを投げ

const { 
    LOG_LEVEL, 
    NODE_ENV, 
} = process.env 

。これはモジュールがES6からES5に正しく移行されないためですか? heroku-loggerライブラリの問題ではなく、おそらく根本的な問題(開発中に見た問題)があります。

これは複雑な問題であり、私はおそらくいくつかの詳細が不足していると考えています。あなたの助けを前もってありがとう!

答えて

0

は他の本と格闘場合、誰に、私はWebPACKのコンフィグでbabel-polyfillを左とするbuildコマンドを変更:いくつかのコードがあるので

next build && babel .next/*.js --out-dir . --presets=es2015,react 

これはかなり不格好であるバベル-ifiedのWebPACKで、その後再び出力ディレクトリに格納します。他の提案が大好きです!

+0

このエラーは、一般的に、クライアントにサービスされていないモジュールを含むチャンクの結果です。これは通常、コード分割の結果として起こります。特に、 '' 'import(' ./asyncComponents/$ {componentName} ')' ''のような動的インポートを行うときに起こります。インポート自体が静的ではないという点で、 "動的(dynamic)"です: 'import( './ Foo')'。動的バージョンは内部的にwebpackの "context"機能を使用します。これは基本的に '。/ asyncComponents'フォルダ内のすべてのモジュールのチャンクを作成します。 –

+0

動的インポートを行っている場合、実際には動作しません.Webpackは、 'require.resolveWeak()'メソッドに基づいたサーバ側のバージョンをまだサポートしていないためです。 ..これはあなたの問題かもしれないし、何か関連するかもしれない。あなたはNext.jsを使用しているので、おそらくそれは彼らが物事をやっている方法のバグです。 ...あなたはあなたのコード分割インポートをしているコードを貼り付けることはできますか? –

関連する問題