импортировать модуль по имени или по пути - PullRequest
1 голос
/ 14 октября 2019

Мне не ясно с разницей между импортом модуля js по имени (например, обычная реакция или использование полимерных освещенных элементов) или по пути (также называемые модулями npm). В чем разница и почему есть разница в первую очередь? Почему я не могу импортировать lit-element используя:

import { LitElement, html } from 'lit-element'

как обычный модуль npm и использовать его в браузере, не получая эту ошибку: Failed to resolve module specifier. Relative references must start with either "/", "./", or "../".?

1 Ответ

1 голос
/ 15 октября 2019

Использование синтаксиса модуля ES6 в браузере в настоящее время поддерживается только с путями в качестве спецификаторов, потому что еще не ясно, как пустые спецификаторы будут преобразованы в URL.

  • Другие спецификаторы зарезервированы для будущегоиспользовать, например, импортировать встроенные модули.
  • Алгоритм разрешения модуля nodejs не может быть реплицирован, потому что он требует тестирования на существование файла, что является разумным локально, но не целесообразно по HTTP - и, конечно, node_modulesпапку где угодно.
  • Продолжается работа над созданием более сложных решений, например загрузчиков модулей или импорт карт . Пути были лишь минимальным жизнеспособным решением, которое можно было бы публиковать, гарантируя при этом прямую совместимость.

Источники: [1] , [2] , [3]

...