JavaScript ES6 импортирует синтаксис? - PullRequest
0 голосов
/ 01 апреля 2019

Я просто тестирую новый синтаксис 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

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете использовать разные import звонки - может быть, даже require, если ваш сервер является Node:

const lib = require("./lib-file");
import "./lib-file";
import libFile from "lib-file"; 

Обратите внимание, что в третьем вам нужно export libFile из вашего lib-file.js.

...