В выпуске webpack v2.1.0-beta.28 они добавили (я использую 2.2.0-rc.1):

добавить import() как конструкцию разделения кода. Его следует использовать вместо System.import, если возможно. System.import будет устаревшим в выпуск webpack 2 (удален в webpack 3), так как его поведение некорректно согласно спец.

Итак, я преобразовал:

require.ensure(['./hero/homepage'], () => {
  require('./hero/homepage')
}, 'hero-homepage')

В:

import('./hero/homepage')
  .then(module => module.default)
  .catch(err => console.error(`Chunk loading failed, ${err}`))

Но получите: Module build failed: SyntaxError: 'import' and 'export' may only appear at the top level

Есть ли что-то, что я должен добавить в конфигурацию веб-пакета, чтобы разрешить использование импорта там, где они предлагают?

4
Dan Gamble 22 Дек 2016 в 13:54

1 ответ

Лучший ответ

Согласно:

https://twitter.com/addyosmani/status/811958786273333248 и https://twitter.com/usefulthink/status/811958593100587009

Ответ: вам понадобится babel-plugin-dynamic-import-webpack

5
Dan Gamble 22 Дек 2016 в 18:42
Вместо преобразования import в require - убедитесь, почему бы немного не изменить правило eslint с помощью babel-eslint. stackoverflow.com/questions/39158552/…
 – 
chetan pawar
7 Июл 2017 в 02:23