Vladimir
https://github.com/nodejs/node/pull/16170
Gleb
Vladimir
Ирония в том, что естественно этот вариант рассматривали
Vladimir
Но у этого чувака синдром гения
Vladimir
Он регулярно придумывает какие то элементарные вещи и считает, что это гениальная идея
Vladimir
Аргумент против m.js очень простые - ломает обратную совместимость
Nikita
> As you can see, the most updated PHP wouldn't be able to serve JavaScript modules with an extension only NodeJS recognizes.
Чё?
Nikita
https://github.com/nodejs/node/pull/16170#issuecomment-336318420
Vladimir
Да он вообще ахинею несет
Anonymous
чет вообще не понял зачем отдельное расширение
Vladimir
Vladimir
Зачем кому то запускать mjs в браузере не понятно
Nikita
Vladimir
CommonJS не запускается в браузере и никто не умер
Anonymous
Anonymous
а вебрефлекшн тупенький
Anonymous
он там полчаса назад очередной шитсторм в твиттере поднял
Vladimir
В том чтобы использовать file.m.js нет ничего не разумного, поэтому ломать нельзя
Nikita
Anonymous
да все верно
Anonymous
.м.жс ломает намного больше, чем .мжс
Nikita
Vladimir
Ну да
Nikita
Но я думаю, что если сломать совместимость с *.m2076527k.js — это не сделает плохо никому.
Nikita
Ты не согласен?
Vladimir
Да, это маловероятно. Но если этого можно избежать, то лучше этого избежать
Vladimir
Я честно скажу, я лично предпочел бы флаг в CLI
Vladimir
Но и с mjs особых проблем не вижу
Anonymous
с флагом не будет интеропа
Anonymous
а с mjs он есть
Vladimir
Да и ладно
Anonymous
в этом и суть
Anonymous
ну как ладно
Vladimir
Я знаю
Anonymous
ты думаешь весь нпм перепишут в момент релиза 9 ноды на мжс?
Vladimir
Но на мой взгляд без интеропа норм
Vladimir
Нет, зачем
Vladimir
Нужен cjs модуль - делаешь require
Anonymous
так кстати в 9 будет оно?
Anonymous
я чот так и не понял
Vladimir
Пока не ясно
Vladimir
Думаю, что нет
Nikita
Vladimir
Ну для этого нужно чтобы tc39 это принял
Nikita
И я готов это аргументировать, кмк это было бы единственным разумным решением для всех.
Anonymous
в ecma262 и так юз модуль имплицитный
Anonymous
в стрикте
Nikita
А браузеры это заблокировали.
Anonymous
браузеры тут ни при чем
Anonymous
Nikita
А без браузеров следующий вариант — *.mjs.
Nikita
браузеры тут ни при чем
Как не при чём? Они сказали что не будут следовать 'use module'; даже если его кто-то введёт, и будут его игнорить.
Anonymous
они не говорили ничего такого
Anonymous
их не спрашивали
Anonymous
в es только одни модули есть
Anonymous
require - самодеятельность ноды
Anonymous
так что этот use module и так бай дефолт
Nikita
Nikita
Он включается из хтмл.
Nikita
Сами браузеры молчали, да.
Anonymous
Nikita
Nikita
https://developer.mozilla.org/ru/docs/Web/HTML/Element/script#attr-type
Anonymous
это для обратной совместимости
Nikita
Модули и скрипты несовместимы в обе стороны.
Nikita
Anonymous
а для чего?
Nikita
Для того, чтобы включить режим esm для этого скрипта. Чтобы там делать export/import.
Nikita
Аналог *.mjs в ноде и 'use module'; если бы он был.
Nikita
По умолчанию это всё выключено, иначе бы была сломана обратная совместимость.
Anonymous
это нужно чтобы статически разрешать зависимости
Anonymous
а не динамически
Nikita
это — что?
Anonymous
type=module