Когда можно считать, что вышла новая версия 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
OpenJS World 2021
#conference #freebies
На выходных на этом канале будут посты про конференции и доклады, заслуживающие внимания. Открывает эту рубрику конференция OpenJS World. Она примечательна тем, что именно на ней был бы самый крутой нетворкинг, будь она оффлайн.
Дело в том, что организатором конференции является OpenJS Foundation, которая входит в Linux Foundation. Она появилась в результате слияния #NodeJS Foundation и JavaScript Foundation. Ее задачей является развитие OpenSource проектов, значимых длякомьюнити компаний платящих членские взносы. Среди этих проектов Webpack, Node.js, jQuery, Electron и пр.
В оффлайн годы конференция призвана собрать контрибьюторов проектов и представителей компаний. Представляете какая собирается тусовка?!
К сожалению, в этом году как и в прошлом она будет только онлайн. Естественно все доклады будут только на английском. Программы на сайте пока нет, есть только keynote докладчики. Учитывая опыт прошлого года, программа будет разнообразной.
Почему стоит пойти на OpenJS World 2021:
1. Онлайн.
2. Бесплатная регистрация.
3. Дата проведения 2 июня 2021, среда. Можно потратить рабочий день, а не выходной.
4. Будут плюшки от партнеров
В завершение, плейлист с прошлого года. Разбирать его весь, я не вижу смысла, но сделаю обзор на пару докладов.
#conference #freebies
На выходных на этом канале будут посты про конференции и доклады, заслуживающие внимания. Открывает эту рубрику конференция OpenJS World. Она примечательна тем, что именно на ней был бы самый крутой нетворкинг, будь она оффлайн.
Дело в том, что организатором конференции является OpenJS Foundation, которая входит в Linux Foundation. Она появилась в результате слияния #NodeJS Foundation и JavaScript Foundation. Ее задачей является развитие OpenSource проектов, значимых для
В оффлайн годы конференция призвана собрать контрибьюторов проектов и представителей компаний. Представляете какая собирается тусовка?!
К сожалению, в этом году как и в прошлом она будет только онлайн. Естественно все доклады будут только на английском. Программы на сайте пока нет, есть только keynote докладчики. Учитывая опыт прошлого года, программа будет разнообразной.
Почему стоит пойти на OpenJS World 2021:
1. Онлайн.
2. Бесплатная регистрация.
3. Дата проведения 2 июня 2021, среда. Можно потратить рабочий день, а не выходной.
4. Будут плюшки от партнеров
В завершение, плейлист с прошлого года. Разбирать его весь, я не вижу смысла, но сделаю обзор на пару докладов.
The Benefits of a “CLI First” Development Strategy - Corey Butler
#worth_seeing
Докладов в плейлист OpenJS World 2020 много, но для #Nodejs разработчиков я бы рекомендовал начать с The Benefits of a “CLI First” Development Strategy.
📕 Slides
💻 Source on GitHub
Почему стоит посмотреть это видео:
1. Наглядно проиллюстрировано написание кода на разных стадиях Software Development Life Cycle.
2. Любой #Nodejs разработчик должен уметь написать CLI инструмент.
3. Интересная идея CLI где угодно, в том числе браузере.
4. Только 20 минут. Последние 10 минут видео, почему-то не обрезали.
Заметки:
1. Под запуском CLI в браузере автор понимает не запуске терминала в браузере аля Cloud Shell, а запуск CLI в Developer Tools во вкладке созданной с помощью Chrome Extension.
2. Странно, что в докладе нет ни слова об ChatOps.
3. Для каких-то веб-приложений строка поиска может выполнять CLI функцию. Например, AWS, GCP.
4. Рассмотренная библиотека использует императивный стиль написания. Лично мне ближе декларативный например clipanion или что-то с декораторами вроде nestjs-command.
#worth_seeing
Докладов в плейлист OpenJS World 2020 много, но для #Nodejs разработчиков я бы рекомендовал начать с The Benefits of a “CLI First” Development Strategy.
📕 Slides
💻 Source on GitHub
Почему стоит посмотреть это видео:
1. Наглядно проиллюстрировано написание кода на разных стадиях Software Development Life Cycle.
2. Любой #Nodejs разработчик должен уметь написать CLI инструмент.
3. Интересная идея CLI где угодно, в том числе браузере.
4. Только 20 минут. Последние 10 минут видео, почему-то не обрезали.
Заметки:
1. Под запуском CLI в браузере автор понимает не запуске терминала в браузере аля Cloud Shell, а запуск CLI в Developer Tools во вкладке созданной с помощью Chrome Extension.
2. Странно, что в докладе нет ни слова об ChatOps.
3. Для каких-то веб-приложений строка поиска может выполнять CLI функцию. Например, AWS, GCP.
4. Рассмотренная библиотека использует императивный стиль написания. Лично мне ближе декларативный например clipanion или что-то с декораторами вроде nestjs-command.
YouTube
The Benefits of a “CLI First” Development Strategy - Corey Butler, Ecor Ventures
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.