Webpack не будет компилироваться, если я использую функцию динамического импорта - PullRequest
1 голос
/ 02 мая 2019

У меня есть небольшая функция, которая выглядит следующим образом:

async importer ( path ) {
    const maxAttempts = 4;
    let p = Promise.reject();

    const rejectDelay = reason => {
        return new Promise((resolve, reject) => {
            setTimeout(reject.bind(null, reason), 1000);
            });
        };

    const attempt = () => {
        return new Promise((resolve, reject) => {
            import('../../src/pages/desktop/index.jsx').then(data => {
                resolve(data);
            }).catch(error => {
                reject(error);
            });
        });
    };

    for(let i = 0; i < maxAttempts; i++) {
      p = p.catch(attempt).catch(rejectDelay);
    }

    p = p.then(data => {
        console.log(data);
    }).catch(error => {
        console.error(error);
    });
}

Если я включу часть импорта, мой веб-пакет не скомпилируется и, в конце концов, вылетит.Затем узел выдает мне эту ошибку:

<--- Last few GCs --->

[1864:00000260CFC24890]   242486 ms: Mark-sweep 1317.0 (1441.8) -> 1301.3 (1441.3) MB, 667.9 / 0.1 ms  (average mu = 0.316, current mu = 0.275) allocation failure scavenge might not succeed
[1864:00000260CFC24890]   243400 ms: Mark-sweep 1318.2 (1442.8) -> 1304.5 (1442.8) MB, 662.4 / 0.0 ms  (average mu = 0.296, current mu = 0.275) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 000003DB79A50361]
    1: StubFrame [pc: 000003DB79A0DEF8]
Security context: 0x0369d989d949 <JSObject>
    2: /* anonymous */ [0000035D7180D9D1] [C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\acorn\dist\acorn.js:~4658] [pc=000003DB7C8C0810](this=0x008c53a992d1 <Parser map = 000003D9D2615211>,2)
    3: /* anonymous */ [0000035D7180D7D1] [C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\acor...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF7DCA221C5
 2: 00007FF7DC9FA056
 3: 00007FF7DC9FAA40
 4: 00007FF7DCE4499E
 5: 00007FF7DCE448D7
 6: 00007FF7DD11D804
 7: 00007FF7DD113444
 8: 00007FF7DD111B18
 9: 00007FF7DD11B487
10: 00007FF7DD11B506
11: 00007FF7DCCDC311
12: 00007FF7DD436DEA
13: 000003DB79A50361
events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: EOF: end of file, write
    at Socket._write (internal/net.js:58:25)
    at doWrite (_stream_writable.js:410:12)
    at writeOrBuffer (_stream_writable.js:394:5)
    at Socket.Writable.write (_stream_writable.js:294:11)
    at compilerCallback (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack-cli\bin\cli.js:512:30)
    at finalCallback (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:204:39)
    at hooks.done.callAsync.err (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:253:14)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\tapable\lib\HookCodeFactory.js:32:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\tapable\lib\Hook.js:154:20)
    at emitRecords.err (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:251:22)
    at Compiler.emitRecords (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:366:39)
    at emitAssets.err (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:245:10)
    at hooks.afterEmit.callAsync.err (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:352:14)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\tapable\lib\HookCodeFactory.js:32:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\tapable\lib\Hook.js:154:20)
    at asyncLib.forEach.err (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\webpack\lib\Compiler.js:349:27)
    at done (C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\neo-async\async.js:2854:11)
    at C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\neo-async\async.js:2805:7
    at C:\Users\Rick\PhpstormProjects\witteveen_new_dev\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqCallback.oncomplete (fs.js:148:20)
Emitted 'error' event at:
    at onwriteError (_stream_writable.js:425:12)
    at onwrite (_stream_writable.js:456:5)
    at Socket._write (internal/net.js:62:14)
    at doWrite (_stream_writable.js:410:12)
    [... lines matching original stack trace ...]
    at FSReqCallback.oncomplete (fs.js:148:20)

Странная вещь в том, что если я использую функцию импорта в другом файле, она работает отлично, но в этом файле она просто не будет работать, а компилятор веб-пакета простосдается.

...