Codemod в JavaScript: как менять сотни файлов кода с помощью jscodeshift

Всем привет! Меня зовут Саша. Я тимлид команды разработки личного кабинета пользователя в Банки.ру. В какой-то момент я понял, что мы тратим слишком много времени на однотипные изменения в коде: обновления зависимостей, правки после breaking changes, синхронизация между проектами. Всё это делается через поиск, регулярки и ручное редактирование и быстро начинает масштабироваться в боль. В статье разобрал, как можно подойти к этому иначе: использовать codemod и jscodeshift, чтобы автоматизировать такие изменения и применять их сразу ко всей кодовой базе. Как это работает через AST, и посмотрим на примере, как писать свои трансформации.

https://habr.com/ru/companies/banki/articles/1011580/

#codemod #jscodeshift #AST_JavaScript #рефакторинг_JavaScript #автоматический_рефакторинг_кода #AST_transformation #JavaScript_codemod #AST_Explorer #code_transformation #массовый_рефакторинг_кода

Codemod в JavaScript: как менять сотни файлов кода с помощью jscodeshift

Всем привет! Меня зовут Саша. Я тимлид команды разработки личного кабинета пользователя в Банки.ру, и хочу рассказать про свой опыт изучения codemod и jscodeshift для оптимизации работы с кодом. ...

Хабр

[AI 시대, 리팩터링은 더 이상 노가다가 아니다

AI와 Codemod(jscodeshift)를 활용해 대규모 리팩터링을 효율적으로 수행한 사례를 소개. Deprecated Typography 컴포넌트를 새 Design System으로 자동 변환하여 코드 일관성과 온보딩 경험을 개선했다.

https://news.hada.io/topic?id=26040

#ai #refactoring #codemod #designsystem #jscodeshift

AI 시대, 리팩터링은 더 이상 노가다가 아니다

<p>AI + Codemod로 Design System 레거시를 정리한 글입니다.<br /> 대규모 리팩터링을 앞두고 있는 분들께 참고가 되었으면 합니다.</p> <h3>문제...

GeekNews

#astgrep (aka sg) a tool for structural search and replace (and an apparent replacement for stuff like #jscodeshift for doing codemods)

This looks super interesting!

https://ast-grep.github.io/

ast-grep | structural search/rewrite tool for many languages

ast-grep is a fast and polyglot tool for code structural search, lint, rewriting at large scale.

Мощь AST в действии, или как переписать код 10 летней давности на ES6-модули и ничего не сломать

Всем привет! Меня зовут Кирилл и я работаю фронтенд-разработчиком. Я расскажу о том, как мы перевели несколько тысяч файлов, написанных на JavaScript, с легаси кода, который использовал goog.module , на новые ES6-модули с помощью построения и преобразования абстрактного синтаксического дерева. Эта статья будет полезна тем, у кого тоже возникла потребность в рефакторинге большого количества кода.

https://habr.com/ru/companies/ispring/articles/822975/

#javascript #jscodeshift #ast #рефакторинг #codemod

Мощь AST в действии, или как переписать код 10 летней давности на ES6-модули и ничего не сломать

Всем привет! Меня зовут Кирилл и я работаю фронтенд-разработчиком. Я расскажу о том, как мы перевели несколько тысяч файлов, написанных на JavaScript, с легаси кода, который использовал goog.module ,...

Хабр

Loving #jscodeshift. It lets you write little refactor scripts for #JavaScript and #TypeScript

Managed to cobble something together pretty quickly that had a few little bugs That weren’t too hard to hack around. Didn’t even consult docs once, but will to learn more.

Maybe a bit better than hacky little regex/unix scripts. Not sure how it compares to #eslint fixers… would like to try that to compare.

https://github.com/facebook/jscodeshift

GitHub - facebook/jscodeshift: A JavaScript codemod toolkit.

A JavaScript codemod toolkit. Contribute to facebook/jscodeshift development by creating an account on GitHub.

GitHub