Fork me on GitHub

JSer.info 14주년

Translator: rewrite0w0 Edit on GitHub See Revisions

JSer.info는, 2011년 1월 16일에 시작해, 2025녀 1월 16일로 14주년을 맞이 했습니다🎉

작성하는 것이 꽤나 늦었습니다만, 14주년 맞이한 것을 기록합니다.

Node.js 주변의 변화

Node.js 주변의 변화가 컸던 1년인 듯 합니다.
Node.js에는, require(esm)이나 TypeScript 지원 같은 긴 시간 논의된 것이 도입이 크게 눈에 띄었습니다.

가령, eventmit를 새로운 Node.js 기능을 사용해 다시 작성하면 이런 변화가 생깁니다.

Node.js 자체 기능에 의해 의존이 적어지고, 또한 라이브러리를 공개할 때에 CommonJS 빌드를 공개할 필요가 없어졌습니다.

Deno도 v2를 출시하고, LTS도 공개했습니다.

또한, Server Runtime 상호운용성에 관련하여 의논이 있었고 WinterCG가, TC55으로 표준화 작업을 진행하는 것도 발표되었습니다.

Bun도 지속해서 출시되고 있고, 최근에는 Node.js가 내부에서 사용할 테스트 케이스를 실행해 Node.js compatibility를 높혔습니다.

또한, Bun v1.2.14에서는, pnpm Catalogs와 같은 기능으로 Catalogs를 지원, 패키지 매니저 기능도 충실합니다.

패키지 매니저

패키지 매니저에서는, pnpm 10으로 설치하는 패키지의 lifecycle script를 기본적으로 실행하지 않는 변화가 컸다 생각합니다.

이 변경의 직접적인 계기는 Rspack의 보안사고였습니다만, 앞으로도 이와 같은 동작하는 패키지 매니저가 늘어날지도 모르겠습니다.(Bun는 이미 이와 같은 동작)

또한, 전 npm 팀 중심으로 한 새로운 패키지 매니저 & registry vlt가 등장했습니다.
여기는, 공개 이후 특별히 큰 움직임은 없지만, JSR도 있어 Registry 관련해서 여러 움직임이 있다는 느낌이 있습니다.

pnpm(pnpm add jsr:<scope>/<pkg_name>)와 Yarn(yarn add jsr:<scope>/<pkg_name>)가 JSR 지원을 하는 등, 패키지 매니저 지원도 늘었습니다.

Linter

JavaScript Linter에서는 ESLint가 지속해서 가장 많은 이용자를 갖고 있다 생각합니다.
ESLint 9에는 Flat Config으로 이행하는 등 큰 변화도 있었기에, 일부에서 이행 문제가 있기도 했습니다.

지금까지는 ESLint본체에 TypeScript 관련한 규칙을 포함할 수 없었기에, typescript-eslint같이 다른 도구를 통해 이용했습니다.
ESLint v9.23.0 released부터는, 이 방침이 조금 변경되어, ESLint 코어 규칙도 TypeScript 구문 지원을 포함하도록 되었습니다.

또한, Biome/deno lint/oxlint 같은 JavaScript 외의 언어로 작성된 Linter도 활발히 개발되는 중입니다.

ESLint 큰 특징으로 플러그인에서 규칙을 추가하는 점이 있습니다. 여러 라이브러리나 프레임워크가 있는 JavaScript 세계에서는, Linter 플러그인 관련한 니즈가 높습니다.

이에, JavaScript 외 언어로 작성된 Linter에는, 플러그인을 어떻게 다룰까가 큰 과제입니다. 각 Linter에서 접근은 다르지만, Linterㅏ 플러그인 지원하는 구조를 개발중입니다.

한 편, ESLint는 HTML나 CSS 같은 JavaScript 외의 언어도 다루기 위한 language-agnostic linter가 될 방향성도 보였습니다.

실제 CSS Language Plugin/HTML ESLINT/JSON Language Plugin가 출시되었습니다.

그 결과, Linter 세계는 아직도 여러 움직임이 있는 상태가 지속될 듯 합니다.

정리

특별히 정리는 없지만, JSer.info는 14주년을 맞이했습니다.(언급하는 것이 꽤 늦었습니다)

내년은 15주년을 맞이함으로, 간만에 이벤트 같은 것을 할 수 있으면 좋겠다 생각합니다.

JSer.info에서는, JSer.info Sponsors를 모집하고 있습니다.

To support JSer.info

Pull Request to this article
JSer.info Slackに参加する