Приветствую. Не знаю как сформулировать вопрос.. но суть такая. Есть файл request.js в котором написаны функции запроса. Есть service worker расширения, есть content page. Сперва использовал функции запросов в service worker. Теперь, чтобы не писать одно и тоже, хочу использовать эти запросы и на content page. Но проблема заключается в том, что в service worker они импортируются как из модуля. А как их использовать на веб-странице? Возможно ли использовать один файл или какие костыли есть для этого? В общем, вот пример, чтобы было понятней.
Сам
reuqests.js файл:
// requests.js
function RequestToSite() {
return fetch('https://somesite.com').then(function(data) {
return data.json()
})
export { RequestToSite }
}
Вот как используется в service worker:
// background.js - service_worker
import { RequestToSite } from './requests.js'
async function someFunction() {
let data = await RequestToSite();
return data
}
Вот как тестировал, проверял заработает ли в content page:
// index.html - content page
///////////////////////////////////////////////////////////////
//
// <script type="text/javascript" src="./main.js"></script>
// <script type="text/javascript" src="./script_1.js"></script>
// <script type="text/javascript" src="./script_2.js"></script>
// пытался так 1: функции из requests.js отсутствуют
// и ошибка SyntaxError: Unexpected token 'export'
// <script type="text/javascript" src="./requests.js"></script>
// пытался так 2: писал в main.js import, но очевидно было, что не заработает.
// <script type="module" src="./requests.js"></script>
////////////////////////////////////////////////////////////////
// main.js
import { RequestToSite } from './requests.js' // строка использовалась при попытке 2
// использовать RequestToSite из requests.js и тут
async function getSomeData() {
let data = await RequestToSite()
}