Как стать автором
Обновить

Комментарии 14

НЛО прилетело и опубликовало эту надпись здесь
К сожалению поддержка ECMAScript-модулей в 13.2 не очень удобно. Только сегодня с утра пытался рабочий проект запустить без Бабеля на ней, не вышло. Указал в корневом Package.json type module:

1. При import локальных модулей почему-то надо обязательнео указывать полный путь к модулю с расширением! import model from '../models/index.js' — почему не работает стандартная конструкция не понятно
2. При import сторонних модулей написанных как CommonJS — ругается что они не ECMAScript. Т.е их в любом случае подключать надо через require

Вообщем пока еще все сыро и не удобно. Подождем, может к апрелю станет поудобнее
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Будет не очень хорошо, если «path/to/module/», «path/to/module/index» и «path/to/module/index.js» будут возвращать один и тот же файл.
Браузер то этого не знает. Это 3 запроса, 3 файла в кэше и 3 инстанса модуля.
import {someFunc as func1} from './path/to/module/';
import {someFunc as func2} from './path/to/module/index.js';
func1 === func2 //false
При import локальных модулей почему-то надо обязательнео указывать полный путь к модулю с расширением!

Потому что вообще-то это нужно делать согласно спецификации. На фронте этого никто не делает, потому что там всегда пишутся alias, которые затем при транспиляции или даже в import-map через подстановку превратятся в полные пути. Но если этот сахар выкинуть, то в браузере (работающему согласно спецификации) без полных путей вы никуда не денетесь. В ноде так же.
Пользуйтесь каким-нибудь инструментом, который вам обеспечит алиасы. Ну или делайте это через package.json, это будет обрабатываться правильно самой нодой (другое дело, что вешать в каждую папку с сорсами свой package.json как-то мягко говоря неудобно).

При import сторонних модулей написанных как CommonJS — ругается что они не ECMAScript.

Предположу, что тут вы сами делаете что-то не так; у меня такие случаи отрабатывали как надо (согласно доке, которая говорит, что они будут импортированы так же, как если б это было через require).

В браузере этого не делается потому что больно много файлов придётся скачивать. Но нода-то могла бы и воспользоваться преимуществами наличия файловой системы...

В браузере этого не делается потому что больно много файлов придётся скачивать.

… что в контексте работы кода не имеет никакого значения.
1. При import локальных модулей почему-то надо обязательнео указывать полный путь к модулю с расширением! import model from '../models/index.js' — почему не работает стандартная конструкция не понятно
Полный путь указывать не нужно, достаточно относительный. Только что проверил, Ваш пример работает.

2. При import сторонних модулей написанных как CommonJS — ругается что они не ECMAScript. Т.е их в любом случае подключать надо через require
У меня не ругается. Вы перепутали с другим предупреждением, видимо. Перечитайте текст внимательнее.
НЛО прилетело и опубликовало эту надпись здесь
Я полагаю, что это сарказм. Но всё равно не улавливаю суть. Не могли бы вы пояснить смысл шутки?
НЛО прилетело и опубликовало эту надпись здесь
Может вебшторм?
Или вскод с плагинами под автодополнение пакетов в пекедж джсоне (ну такой наверняка есть)
Стабильный API Worker Threads
Worker Threads стали стабильными ещё в 12.11.0.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий