Я просто тестирую новый синтаксис import
.Но я немного расстроен, так как синтаксис, который я должен использовать, похоже, не тот, который я читал.Почему синтаксис ниже работает (в Chrome, в расширении)?
import * as lib from "./lib-file.js";
Какие есть альтернативы для этого специального синтаксиса?
РЕДАКТИРОВАТЬ: я думаю, что я должен уточнить некоторыевещи.Я пытаюсь заставить это работать в расширении Chrome.Синтаксис выше работает в скрипте popup (в скрипте, загруженном из html-файла).Я написал этот пост, потому что был удивлен, что мне нужно расширение ".js".
Однако затем появилась новая проблема.Приведенный выше синтаксис не работает в сценарии «содержимого».Я получаю ту же ошибку, что и всплывающее окно, когда в теге script в html-файле нет type="module"
.(Uncaught SyntaxError: Unexpected token *
) Это похоже на ошибку при импорте в скрипт контента, но я совсем не уверен.Я что-то там упустил?
РЕДАКТИРОВАТЬ 2: Я только что нашел эту статью, которая, кажется, покажет, как исправить эти проблемы:
Использование модулей импорта / экспорта JavaScript ES6 в ChromeРасширения https://medium.com/@martinnovk_22870/using-javascript-es6-import-export-modules-in-chrome-extensions-f63a3a0d2736
РЕДАКТИРОВАТЬ 3: Я только что получил указатель на эту утилиту.Я заметил, что они не используют импорт ES6 в предложенной ими настройке в браузере.mozilla / webextension-polyfill: легкая библиотека полизаполнения для API-интерфейсов WebExtension на основе Promise в Chrome https://github.com/mozilla/webextension-polyfill