Комментарии 14
К сожалению поддержка ECMAScript-модулей в 13.2 не очень удобно. Только сегодня с утра пытался рабочий проект запустить без Бабеля на ней, не вышло. Указал в корневом Package.json type module:
1. При import локальных модулей почему-то надо обязательнео указывать полный путь к модулю с расширением! import model from '../models/index.js' — почему не работает стандартная конструкция не понятно
2. При import сторонних модулей написанных как CommonJS — ругается что они не ECMAScript. Т.е их в любом случае подключать надо через require
Вообщем пока еще все сыро и не удобно. Подождем, может к апрелю станет поудобнее
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 инстанса модуля.
Браузер то этого не знает. Это 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 ThreadsWorker Threads стали стабильными ещё в 12.11.0.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Что нового можно ожидать от Node.js в 2020 году?