ES6 импорт и npm пакеты - PullRequest
       7

ES6 импорт и npm пакеты

1 голос
/ 28 января 2020

Кто-нибудь получил ссылку на документацию, объясняющую, как именно импорт ES6 должен работать с пакетами npm (в отличие от javascript файлов модулей)?

Также (и, возможно, связанные) ссылка на документацию об использовании / значении «модуля» в качестве ключа верхнего уровня в пакете npm. json файл?

Например. рассмотрим следующее из пакета juggle / resize-наблюдателя ;

. json

{
...
"module": "lib/exports/resize-observer.js",
...
}

потребитель javascript файл

import { ResizeObserver } from '@juggle/resize-observer';

При вышеупомянутом импорте Chrome отправляет серверу запрос на '@ juggle / resize-наблюдатель', который является каталогом ..... так что будет дальше? (У меня нет рабочего экземпляра этого, и мой сервер еще ничего не возвращает, так как я не знаю, что он должен / в каком формате). Разве этот синтаксис предназначен только для использования с каким-либо инструментом сборки, где он в конечном итоге заменяется реальным файлом?

Я посмотрел на npm site / googled и не могу найти соответствующую документацию.

ОБНОВЛЕНИЕ Все еще жду ссылку на соответствующую документацию (в настоящее время нет соответствующих результатов Google), но для всех, кто задает тот же вопрос: очевидно, вам нужен ваш сервер для "разрешения модуля". В качестве альтернативы вы можете использовать Snowpack или пакет, например. Webpack.

1 Ответ

0 голосов
/ 02 марта 2020

Очевидно, что пакеты npm / node не упакованы с учетом браузеров или основаны на какой-либо стандартной спецификации W3C / Web-модулей.

См. здесь для получения информации о разрешении модуля.

Таким образом, в настоящее время для использования пакета npm в браузере необходимо выполнить одно из следующих действий

  1. использовать такой пакет, как webpack
  2. использовать snowpack
  3. использовать CDN, который разрешает запрос модуля
  4. внедрить npm разрешение модуля в ваш собственный сервер
  5. Найдите точку входа в пакет и используйте ее в своем операторе импорта ES6. Однако, если свойство json "main" пакета изменится в последующем обновлении, вам потребуется обновить код, чтобы отразить это.
...