Сегодня состоялся одновременный релиз Node.js v10 (LTS) и NPM v6. Данное событие особенно важно, оно знаменует собой новую веху для всей платформы и превносит много значимых изменений и улучшений во всей кодовой базе Node.js. Появилась поддержка новых алгоритмов шифрования.
Десятая версия Node.js в октябре получит долгосрочную поддержку, которая закончится в 2021 году.
N-API вышел из тестирования и теперь стабилен. Для тех кто не знает N-API это прослойка между вашим кодом на C++ и внутренностями Node.js. Теперь при изменении версий ваши модули не придется переписывать. Теперь будет разработчикам, использующим нативные модули будет проще переключаться между версиями Node.js. И возможно мы увидим меньше заброшенных C++-модулей, авторы которых отказались от поддержки из-за ее сложности.
Так же теперь Node.js независим от виртуальной машины JS, так что в скором времени возможен релиз Node.js с Chakra Core под капотом.
В этой версии включена поддержка OpenSSL 1.1.0, теперь разработчикам будут доступно шифрование с помощью ChaCha20 и авторизаци с Poly-1305. Так же OpenSSL теперь подключен через N-API, а это значит, что с выходом версии 1.1.1 в конце апреля станет доступен TLS 1.3 (новый упрощенный и ускоренный вариант TLS).
Как я уже писал ранее, в этой версии станут доступны асинхронные циклы и новое поведение ReadStream. Вкратце теперь можно пройтись циклом по итератору, возвращающему промисы, автоматически дожидаясь их разрешения:
for await (const chunk of fs.createReadStream(filepath)) {
// ...
}
Введены коды ошибок Error#code
, которые позволят не привязваться к тексту сообщения для определения их типа. Так что теперь обработка ошибок станет более предсказуемой.
Версия v8 обновилась до 6.6. В которой так же много нововведений:
Array#reduce
до 10-ти раз, выполнения асинхронного кода и асинхронных циклов в частности.String#trimStart
, String#trimEnd
.try {
doSomethingWrongWay();
}
catch {
// Попался!..
}
Подробнее в блоге v8.
Промисы добавлены в модуль fs
. Пока экспериментально в свойство promises
.
Улучшены поддержка функционала для замера производительности. И многое другое.
Официальный анонс [EN].
В шестой версии NPM озаботились безопасностью модулей. Появилась поддержка предупреждений об уязвимостях при установке пакетов, а так же новый метод npm:
npm audit
NPM будет автоматически проходиться по базе известных уязвимостей и будет предупреждать, если среди зависимостей встретится уязвимый модуль.
Менеджер пакетов может выдать в 17 раз более высокую скорость по сравнению с предыдущей версией. А так же и без того ускоренный npm ci
стал работать в 2-3 раза быстрее.
Два года назад NPM ввела поддержку webhooks для получения уведомлений об изменении определенного пакета. Ранее для управления использовался сторонний модуль wombat, теперь поддержка вебхуков стала встроенной.
Появилось автоматическое разрешение конфликтов в lock-файлах. Так же теперь выводится больше данных для определения целостности пакетов.
Node.js можно скачать с официального сайта (поставляется с npm 5.6).
Установить NPM:
npm i -g npm@6
К сожалению, не доступен сервер mySQL