@nodejs_ru

Страница 1236 из 2748
Никита
15.10.2017
14:36:12
> As you can see, the most updated PHP wouldn't be able to serve JavaScript modules with an extension only NodeJS recognizes. Чё?

https://github.com/nodejs/node/pull/16170#issuecomment-336318420

Vladimir
15.10.2017
14:36:58
Да он вообще ахинею несет

illiatshurotshka❄️
15.10.2017
14:37:24
чет вообще не понял зачем отдельное расширение

Google
Никита
15.10.2017
14:38:02
Аргумент против m.js очень простые - ломает обратную совместимость
По поводу обратной совместимости — это допустимо если *.m.js никто больше не использует.

Vladimir
15.10.2017
14:38:54
По поводу обратной совместимости — это допустимо если *.m.js никто больше не использует.
Да, но это все равно ломает обратную совместимость, а mjs - нет

Зачем кому то запускать mjs в браузере не понятно

Никита
15.10.2017
14:39:32
Да, но это все равно ломает обратную совместимость, а mjs - нет
Не совсем. Всё в какой-то мере ломает обратную совместимость.

Vladimir
15.10.2017
14:39:35
CommonJS не запускается в браузере и никто не умер

Ҫѐҏӗѫӑ
15.10.2017
14:40:07
Зачем кому то запускать mjs в браузере не понятно
тем не менее, это будет возможно

Vladimir
15.10.2017
14:40:28
Не совсем. Всё в какой-то мере ломает обратную совместимость.
Ну да. Но есть разумные ожидания. Например, полагаться на отсутствие метода не разумно, а на присутствие - разумно

Ҫѐҏӗѫӑ
15.10.2017
14:40:31
а вебрефлекшн тупенький

он там полчаса назад очередной шитсторм в твиттере поднял

Vladimir
15.10.2017
14:40:54
В том чтобы использовать file.m.js нет ничего не разумного, поэтому ломать нельзя

Никита
15.10.2017
14:41:57
Ҫѐҏӗѫӑ
15.10.2017
14:42:16
да все верно

.м.жс ломает намного больше, чем .мжс

Google
Никита
15.10.2017
14:42:48
.м.жс ломает намного больше, чем .мжс
Это выводы. А логика неверна.

В том чтобы использовать file.m.js нет ничего не разумного, поэтому ломать нельзя
По ней, в том, чтобы использовать file.m2076527k.js нет ничего не разумного, поэтому ломать совместимость с *.m2076527k.js нельзя.

Vladimir
15.10.2017
14:43:37
Ну да

Никита
15.10.2017
14:44:33
Но я думаю, что если сломать совместимость с *.m2076527k.js — это не сделает плохо никому.

Ты не согласен?

Vladimir
15.10.2017
14:45:10
Да, это маловероятно. Но если этого можно избежать, то лучше этого избежать

Я честно скажу, я лично предпочел бы флаг в CLI

Но и с mjs особых проблем не вижу

Ҫѐҏӗѫӑ
15.10.2017
14:49:45
с флагом не будет интеропа

а с mjs он есть

Vladimir
15.10.2017
14:49:53
Да и ладно

Ҫѐҏӗѫӑ
15.10.2017
14:50:09
в этом и суть

ну как ладно

Vladimir
15.10.2017
14:50:20
Я знаю

Ҫѐҏӗѫӑ
15.10.2017
14:50:35
ты думаешь весь нпм перепишут в момент релиза 9 ноды на мжс?

Vladimir
15.10.2017
14:50:35
Но на мой взгляд без интеропа норм

Нет, зачем

Нужен cjs модуль - делаешь require

Ҫѐҏӗѫӑ
15.10.2017
14:51:18
так кстати в 9 будет оно?

я чот так и не понял

Google
Vladimir
15.10.2017
14:51:48
Пока не ясно

Думаю, что нет

Никита
15.10.2017
14:53:58
Vladimir
15.10.2017
14:54:24
Ну для этого нужно чтобы tc39 это принял

Никита
15.10.2017
14:54:38
И я готов это аргументировать, кмк это было бы единственным разумным решением для всех.

Ҫѐҏӗѫӑ
15.10.2017
14:54:59
в ecma262 и так юз модуль имплицитный

Никита
15.10.2017
14:55:03
Ну для этого нужно чтобы tc39 это принял
Да, очевидно. Он был бы разумным только в случае если бы ему следовали все.

Ҫѐҏӗѫӑ
15.10.2017
14:55:07
в стрикте

Никита
15.10.2017
14:55:13
А браузеры это заблокировали.

Ҫѐҏӗѫӑ
15.10.2017
14:55:29
браузеры тут ни при чем

Sergey
15.10.2017
14:55:29


Никита
15.10.2017
14:55:38
А без браузеров следующий вариант — *.mjs.

Никита
15.10.2017
14:56:11
браузеры тут ни при чем
Как не при чём? Они сказали что не будут следовать 'use module'; даже если его кто-то введёт, и будут его игнорить.

Ҫѐҏӗѫӑ
15.10.2017
14:56:20
они не говорили ничего такого

их не спрашивали

в es только одни модули есть

require - самодеятельность ноды

так что этот use module и так бай дефолт

Никита
15.10.2017
14:58:35
Он включается из хтмл.

Google
Никита
15.10.2017
14:59:10
они не говорили ничего такого
Ок, это то, что сказали отдельные разрабы браузеров.

Сами браузеры молчали, да.

Ҫѐҏӗѫӑ
15.10.2017
14:59:24
Никита
15.10.2017
15:00:41
https://developer.mozilla.org/ru/docs/Web/HTML/Element/script#attr-type

так что этот use module и так бай дефолт
Если бы так было, проблем бы не было вообще.

Ҫѐҏӗѫӑ
15.10.2017
15:02:23
это для обратной совместимости

Никита
15.10.2017
15:02:27
Модули и скрипты несовместимы в обе стороны.

Admin
ERROR: S client not available

Никита
15.10.2017
15:02:34
Ҫѐҏӗѫӑ
15.10.2017
15:03:05
а для чего?

Никита
15.10.2017
15:03:35
Для того, чтобы включить режим esm для этого скрипта. Чтобы там делать export/import.

Аналог *.mjs в ноде и 'use module'; если бы он был.

По умолчанию это всё выключено, иначе бы была сломана обратная совместимость.

Ҫѐҏӗѫӑ
15.10.2017
15:04:49
это нужно чтобы статически разрешать зависимости

а не динамически

Никита
15.10.2017
15:05:24
это — что?

Ҫѐҏӗѫӑ
15.10.2017
15:05:38
type=module

явно указывает браузеру, что надо до исполнения их разрешить

Никита
15.10.2017
15:07:11
Эм. То есть ты утверждаешь, что без type=module ключевые слова import/export в браузерах будут работать?

Google
Ҫѐҏӗѫӑ
15.10.2017
15:07:36
они будут парситься (и давно парсятся)

но будет поздно разрешать зависимости

поэтому будет какая-то ошибка, но не из js

а от энва

который не нашел их

с т.з. js там все легально

Никита
15.10.2017
15:09:31
они будут парситься (и давно парсятся)
Эм. Но модули/скрипты — это таргет на этапе парсинга, и его надо указать _до_ парсинга. Иначе не спарсится.

Хотя дабл парс можно, он не сильно медленный в реале.

Ҫѐҏӗѫӑ
15.10.2017
15:10:20
я и говорю type=module как раз для того, чтобы после парсинга и до выполнения сделать статический резолв

хотя может там и дважды парсят, я не знаю как в разных браузерах это сделано

и позволяют ли движки после парсинга выполнить что-то внешнее

наверняка да

Никита
15.10.2017
15:12:15
Скрипты и модули это синтаксически разные штуки. До парсинга надо понять под что мы парсим.

На пальцах: «спарсиСкрипт(текст)» и «спарсиМодуль(текст)» которые выдают дерево.

https://tc39.github.io/ecma262/#sec-ecmascript-language-scripts-and-modules

Дабл парс никто не хотел делать, и я сомневаюсь что браузеры его таки делают.

Ҫѐҏӗѫӑ
15.10.2017
15:13:48
нет, синтаксически это одно и то же

семантически они разные

Vladimir
15.10.2017
15:13:56
Нет

Никита
15.10.2017
15:14:09
они будут парситься (и давно парсятся)
Можешь проверить в хроме и посмотреть, какая конкретно будет ошибка?

Страница 1236 из 2748