У меня есть работающее приложение Flask, которое я пытаюсь реорганизовать для использования импорта ES6.Мне не нужно, чтобы он работал на старых браузерах, а ES6 импортирует работу в современные браузеры без трансплантации, верно?
Я сейчас запускаю это через встроенный сервер Flask.Вместо этого производственное приложение обслуживается через Gevent, но я, очевидно, еще не дошел до этих изменений.
Ниже приведено то, что я пробовал до сих пор.Где я ошибся?
views.py
@app.route('/home')
def serve_home():
return render_template('home.html')
formatting.js
export function formatNumber(...) {
...
}
Попытка 1
home.html
<script type="text/javascript" src="/static/js/main.js"></script>
main.js
import {formatNumber} from "/static/js/formatting.js";
Ошибка (main.js, строка 1)
Uncaught SyntaxError: Неожиданный токен {
Попытка 2
- Изменен тип сценария на «модуль»
home.html
<script type="module" src="/static/js/main.js"></script>
Ошибка (main.js, строка 1)
Не удалось загрузить скрипт модуля: сервер ответил не MIME-типом «text / plain», кроме JavaScript.Строгая проверка типов MIME применяется для скриптов модулей в соответствии со спецификацией HTML.
Попытка 3
- Изменено расширение каждого из двух файлов Javascript с "js" на "mjs"
home.html
<script type="module" src="/static/js/main.mjs"></script>
main.mjs
import {formatNumber} from "/static/js/formatting.mjs";
Ошибка (main.mjs, строка 1)
Не удалось загрузить скрипт модуля: сервер ответил не MIME-типом «JavaScript / application-octet-stream», кроме JavaScript.Строгая проверка типов MIME применяется для скриптов модулей в соответствии со спецификацией HTML.