Ниже приведена структура проекта аддона, который я пытаюсь разработать.
.
├── sc_back.js
├── sc_cont.js
├── icons
│ ├── addon
│ │ ├── icon-48.png
│ │ └── icon-96.png
│ └── context
│ ├── d-16.png
│ ├── d-32.png
│ ├── e-16.png
│ └── e-32.png
├── manifest.json
├── modules
│ └── sc_de.js
└── popup
├── action.css
├── action.html
└── action.js
Существует некоторый JS-код, который является избыточным между скриптом содержимого sc_cont.js
и скриптом всплывающих действий в popup/action.js
, поэтому я решил переместить эту избыточную часть в отдельную папку на modules/sc_de.js
.
Я добавил следующие строки в свой content_script и скрипт модуля:
//sc_cont.js
import { xyz } from './modules/sc_de.js'
//modules/sc_de.js
export const xyz = {...}
Я попытался добавить скрипт модулей в manifest.json
в массиве content_script, но он не работает. Не пробовал в web_accessible_resources, так как это не должно быть доступно из DOM.
Проблема в том, что когда я запускаю отладчик аддона, он показывает следующую ошибку:
SyntaxError: import declarations may only appear at top level of a module
SyntaxError: export declarations may only appear at top level of a module
Как устранить эти ошибки, чтобы аддон работал? Кроме того, мне нужно делать что-то особенное в случае popup/action.js
?