Я уже некоторое время пытаюсь использовать модули ES6, но всегда получаю сообщение «Не удалось загрузить скрипт модуля: сервер ответил не-1012 * MIME-типом text / html». , После долгих чтений и экспериментов я понял, что должен заставить свой сервер отправлять заголовок Content-Type, который соответствует типу MIME каждого из файлов, и я попробовал некоторые методы из предыдущих вопросов здесь и в других местах, и это было моим Самый последний эксперимент:
server.use(express.static(path.join(__dirname, '../dist/czWordGame'), {
setHeaders: (res, path) => {
const extractExtensionRegEx = /\.[a-z]+/ig
const fileExtension = path.match(extractExtensionRegEx)[0].slice(1);
res.type(fileExtension);
}
}));
Кроме того, я установил тип своих скриптов в индексе. html page на 'module' и использовал все в соответствии со ссылкой MDN на модулях следующим образом:
<script type="module" src="./scripts/homepage/forms.js"></script>
<script type="module" src="./scripts/homepage/modal.js"></script>
<script type="module" src="./modules/data-validation.js"></script>
При условии, что при проверке заголовков ответов я обнаружил, что все файлы действительно отправляются с правильным заголовком «Content-Type», включая файл, который вызывает ошибку (это единственный модуль I) m экспортирует функции из), но на странице сети есть другой ответ с именем того же файла, без расширения. js и с заголовком «Content-Type», установленным в «text / html», так как вы можно посмотреть здесь на скриншоте: Content-Type: text / html; charset = UTF-8
Я действительно пытаюсь реорганизовать свой код и применить больше хороших практик, так как это первый проект, который входит в мой портфель, и модульность является важной частью его, так как я могу это исправить? Если проблема не в сервере, я неправильно использую модули ES6?