В Chrome 61 была добавлена поддержка модулей в JavaScript. Сейчас я использую Chrome 63.
Я пытаюсь использовать синтаксис импорта/экспорта в скрипте содержимого расширения Chrome для использования модулей.
В manifest.json:
"content_scripts": [
{
"js": [
"content.js"
],
}
]
В my-script.js в той же директории, что и content.js
'use strict';
const injectFunction = () => window.alert('hello world');
export default injectFunction;
В content.js
'use strict';
import injectFunction from './my-script.js';
injectFunction();
Я получаю эту ошибку: Uncaught SyntaxError: Неожиданный идентификатор
Если я изменю синтаксис импорта на import {injectFunction} from './my-script.js';
Я получаю эту ошибку: Uncaught SyntaxError: Неожиданный токен {
Есть ли проблема с использованием этого синтаксиса в content.js в расширении Chrome, поскольку в HTML вы должны использовать синтаксис <script type="module" src="script.js">
, или я что-то делаю не так? Кажется странным, что Google игнорирует поддержку расширений.