Когда можно считать, что вышла новая версия Node.js?
#docker #devops
У #Nodejs есть официальный график выхода и поддержки мажорных версий. Так 20 апреля ожидается первый релиз 16 версии Node.js.
Выход минорных и патч версий не имеет графика, а определяется Node.js Release Working Group.
Например, 6 апреля была опубликована версии 14.16.1. Спустя 24 часа Node.js Docker Working Group опубликовали эту версию на Docker Hub.
Еще раз, за выпуск binary и Docker image отвечают разные люди, поэтому задержка составляет сутки и более.
В современных проектах Node.js запускается как Docker контейнер, поэтому именно появление новой версии Docker Image стоит считать выходом новой версии.
#docker #devops
У #Nodejs есть официальный график выхода и поддержки мажорных версий. Так 20 апреля ожидается первый релиз 16 версии Node.js.
Выход минорных и патч версий не имеет графика, а определяется Node.js Release Working Group.
Например, 6 апреля была опубликована версии 14.16.1. Спустя 24 часа Node.js Docker Working Group опубликовали эту версию на Docker Hub.
Еще раз, за выпуск binary и Docker image отвечают разные люди, поэтому задержка составляет сутки и более.
В современных проектах Node.js запускается как Docker контейнер, поэтому именно появление новой версии Docker Image стоит считать выходом новой версии.
Как правильно настроить TypeScript в Node.js проекте?
#typescript #best_practice
Как
1. Сделан фреймворком. В моем тех стэке, это
2. Результат команды
3. Копирование из другого проекта.
Каждый из этих вариантов, не учитывает под какой версией #nodejs вы будете запускать ваш проект. В результате этого, вы не можете использовать новые JavaScript конструкции.
TypeScript Wiki рекомендует такие настройки под Node.js v14:
Для сравнения стандартная настройка Nest.js:
После изменения конфигурации у меня заработал
#typescript #best_practice
Как
tsconfig.json появился в вашем проекте? Наиболее распространенные варианты:1. Сделан фреймворком. В моем тех стэке, это
npx @nestjs/cli new project-name2. Результат команды
./node_modules/.bin/tsc --init3. Копирование из другого проекта.
Каждый из этих вариантов, не учитывает под какой версией #nodejs вы будете запускать ваш проект. В результате этого, вы не можете использовать новые JavaScript конструкции.
TypeScript Wiki рекомендует такие настройки под Node.js v14:
{ "compilerOptions": { "lib": ["ES2020"], "module": "commonjs", "target": "ES2020" }}Для сравнения стандартная настройка Nest.js:
{ "compilerOptions": { "module": "commonjs", "target": "ES2017" }}После изменения конфигурации у меня заработал
Array.flat, ради которого я изучал этот вопрос. Полный список новых поддерживаемых фич ECMAScript можно посмотреть в исходниках typescript@src/lib.Как исправить код в node_modules?
#package
Мир OpenSource не идеален. В используемых вами пакетах могут быть баги. Предположим, что вы нашли дебагером причину бага и она оказалась в node_modules. Вы можете открыть pull request, чтобы его исправить, но, что делать пока выйдет новая версия?
А если речь идет не о баг фиксе, а новой фиче, которая нужна только вам? Конечно, можно сделать fork и опубликовать свой пакет... Но хватит вступления!
Сегодня речь идет о замечательный пакет patch-package. Он решает задачу внести изменения в
Пример из документации:
Изменения из сгенерированного
С поставленной задачей пакет справляется на 5 из 5, имеет хорошую документацию. Кстати, там вы найдете когда все же стоит делать свой fork.
#package
Мир OpenSource не идеален. В используемых вами пакетах могут быть баги. Предположим, что вы нашли дебагером причину бага и она оказалась в node_modules. Вы можете открыть pull request, чтобы его исправить, но, что делать пока выйдет новая версия?
А если речь идет не о баг фиксе, а новой фиче, которая нужна только вам? Конечно, можно сделать fork и опубликовать свой пакет... Но хватит вступления!
Сегодня речь идет о замечательный пакет patch-package. Он решает задачу внести изменения в
node_modules (что очевидно под .gitignore) и сохранить эти изменения в git.Пример из документации:
# fix a bug in one of your dependenciesvim node_modules/some-package/brokenFile.js# run patch-package to create a .patch filenpx patch-package some-package# commit the patch file to share the fix with your teamgit add patches/some-package+3.14.15.patchgit commit -m "fix brokenFile.js in some-package"Изменения из сгенерированного
patch файла будут применяться после каждого npm install за счет такой настройки: "scripts": {+ "postinstall": "patch-package" }С поставленной задачей пакет справляется на 5 из 5, имеет хорошую документацию. Кстати, там вы найдете когда все же стоит делать свой fork.
👍4🔥2