|
| 1 | +--- |
| 2 | +title: "2025-02-24: Create React App 비권장으로, Deno 2.2, Bun 1.2.3, ESLint의 CSS 지원" |
| 3 | +author: "azu" |
| 4 | +translator: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date: 2025-02-24T13:09:04.703Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | +- vite |
| 10 | +- browser |
| 11 | +- WebPlatformAPI |
| 12 | +- TypeScript |
| 13 | +- pnpm |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info #726 - Create React App가 비권장이 되었습니다. |
| 18 | + |
| 19 | +- [Sunsetting Create React App – React](https://react.dev/blog/2025/02/14/sunsetting-create-react-app) |
| 20 | + |
| 21 | +`create-react-app`는 비권장이 되어, React 사용한 프레임워크나 Vite/Parcel/Rsbuild 빌드 도구로의 이행이 권장됩니다. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +Deno 2.2가 출시되었습니다. |
| 26 | + |
| 27 | +- [Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite](https://deno.com/blog/v2.2) |
| 28 | + |
| 29 | +lint 빌트인 규칙 추가, JavaScript으로 작성가능한 Lint Plugin API 추가, `deno task`가 wildcard(`*`) 지정에 대응합니다. |
| 30 | +또한, `deno outdated`에 interactive mode 추가, `deno compile` 개선도 포함되고 있습니다. |
| 31 | +unstable한 기능으로 OpenTelemetry 지원, `WebTransport` API 지원도 추가되었습니다. |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +Bun v1.2.3가 출시되었습니다. |
| 36 | + |
| 37 | +- [Bun v1.2.3 | Bun Blog](https://bun.sh/blog/bun-v1.2.3) |
| 38 | + |
| 39 | +`bun ./index.html`로 개발 서버 세울 수 있도록, `Bun.serve`의 `static` 옵션을 `routes` 옵션으로 변경했습니다. |
| 40 | +`bun init`에서 React 프로젝트 작성할 수 있도록, `bun install --analyze`에 부족한 의존을 `pacakge.json`에 추가할 수 있도록 했습니다. |
| 41 | +또한, Wasm의 interpreter로 LLInt가 아니라 IPINT를 사용하는 것을 기본으로 하고, `BUN_JSC_useWasmIPInt=0`으로 돌릴 수 있도록 했습니다. |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +ESLint가 CSS의 Lint 지원합니다. |
| 46 | + |
| 47 | +- [ESLint now officially supports linting of CSS - ESLint - Pluggable JavaScript Linter](https://eslint.org/blog/2025/02/eslint-css-support/) |
| 48 | + |
| 49 | +CSSTree 사용한 CSS 파서와 몇몇 Lint 규칙이 구현되었습니다. |
| 50 | + |
| 51 | +---- |
| 52 | + |
| 53 | +{% include inline-support.html %} |
| 54 | + |
| 55 | +---- |
| 56 | + |
| 57 | +<h1 class="site-genre">헤드라인</h1> |
| 58 | + |
| 59 | +---- |
| 60 | + |
| 61 | +## Announcing TypeScript 5.8 RC - TypeScript |
| 62 | +[devblogs.microsoft.com/typescript/announcing-typescript-5-8-rc/](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8-rc/ "Announcing TypeScript 5.8 RC - TypeScript") |
| 63 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">ReleaseNote</span></p> |
| 64 | + |
| 65 | +TypeScript 5.8 RC 출시. |
| 66 | +conditional return type 개선, `require(esm)` 대응, `--module node18` 추가. Node.js의 `--experimental-strip-types`와 같이 설정하는 `--erasableSyntaxOnly`플래그 추가, `--libReplacement`플래그 추가 |
| 67 | + |
| 68 | + |
| 69 | +---- |
| 70 | + |
| 71 | +## Release pnpm 10.4 · pnpm/pnpm |
| 72 | +[github.com/pnpm/pnpm/releases/tag/v10.4.0](https://github.com/pnpm/pnpm/releases/tag/v10.4.0 "Release pnpm 10.4 · pnpm/pnpm") |
| 73 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 74 | + |
| 75 | +pnpm v10.4.0 출시. |
| 76 | +`pnpm approve-builds --global` 추가, `pnpm --allow-build=<pkg> add` 추가, `pnpm approve-builds` 버그 수정 |
| 77 | + |
| 78 | + |
| 79 | +---- |
| 80 | + |
| 81 | +## Sunsetting Create React App – React |
| 82 | +[react.dev/blog/2025/02/14/sunsetting-create-react-app](https://react.dev/blog/2025/02/14/sunsetting-create-react-app "Sunsetting Create React App – React") |
| 83 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">news</span></p> |
| 84 | + |
| 85 | +`create-react-app` 비권장, React 사용하는 프레임워크로 이행 하는 문서 공개. |
| 86 | + |
| 87 | + |
| 88 | +---- |
| 89 | + |
| 90 | +## vite/packages/vite/CHANGELOG.md at main · vitejs/vite |
| 91 | +[github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#610-2025-02-05](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#610-2025-02-05 "vite/packages/vite/CHANGELOG.md at main · vitejs/vite") |
| 92 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">ReleaseNote</span></p> |
| 93 | + |
| 94 | +Vite 6.1.0 출시. |
| 95 | + |
| 96 | + |
| 97 | +---- |
| 98 | + |
| 99 | +## Release v3.0.5 · vitest-dev/vitest |
| 100 | +[github.com/vitest-dev/vitest/releases/tag/v3.0.5](https://github.com/vitest-dev/vitest/releases/tag/v3.0.5 "Release v3.0.5 · vitest-dev/vitest") |
| 101 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">security</span> <span class="jser-tag">ReleaseNote</span></p> |
| 102 | + |
| 103 | +vitest v3.0.5 출시. |
| 104 | +Vitest UI의 API 서버는 리퀘스트 Origin 체크하지 않았기에, 낚시 사이트로 접근할 때 호스트 머신에서 임의 코드 실행이 가능했던 RCE 취약성 수정 포함. |
| 105 | + |
| 106 | + |
| 107 | +---- |
| 108 | + |
| 109 | +## Release v2.20.0 · codesandbox/sandpack |
| 110 | +[github.com/codesandbox/sandpack/releases/tag/v2.20.0](https://github.com/codesandbox/sandpack/releases/tag/v2.20.0 "Release v2.20.0 · codesandbox/sandpack") |
| 111 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">editor</span> <span class="jser-tag">ReleaseNote</span></p> |
| 112 | + |
| 113 | +sandpack 2.20.0 출시. |
| 114 | +React 19 대응 |
| 115 | + |
| 116 | + |
| 117 | +---- |
| 118 | + |
| 119 | +## Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite |
| 120 | +[deno.com/blog/v2.2](https://deno.com/blog/v2.2 "Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite") |
| 121 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span></p> |
| 122 | + |
| 123 | +Deno v2.2 출시. |
| 124 | +lint 빌트인 설치 추가, JavaScript으로 작성하는 Lint Plugin API 추가, `deno task`가 wildcard(`*`) 지정에 대응. |
| 125 | +`deno outdated`에 interactive mode 추가, `deno compile` 개선. |
| 126 | +unstable한 기능으로 OpenTelemetry 지원, `WebTransport` API 지원 |
| 127 | + |
| 128 | + |
| 129 | +---- |
| 130 | + |
| 131 | +## Bun v1.2.3 | Bun Blog |
| 132 | +[bun.sh/blog/bun-v1.2.3](https://bun.sh/blog/bun-v1.2.3 "Bun v1.2.3 | Bun Blog") |
| 133 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 134 | + |
| 135 | +Bun v1.2.3 출시. |
| 136 | +`bun ./index.html`으로 개발 서버 세울 수 있음, `Bun.serve`의 `static` 옵션을 `routes` 옵션으로 변경. |
| 137 | +`bun init`으로 React 프로젝트 작성하도록, `bun install --analyze`으로 부족한 의존을 `pacakge.json`에 추가. |
| 138 | +Wasm의 interpreter로 LLInt가 아니라 IPINT 사용하는 것을 기본으로 하고, `BUN_JSC_useWasmIPInt=0`으로 본래대로 돌릴 수 있도록 |
| 139 | + |
| 140 | + |
| 141 | +---- |
| 142 | + |
| 143 | +## Release v2.6.0 · reduxjs/redux-toolkit |
| 144 | +[github.com/reduxjs/redux-toolkit/releases/tag/v2.6.0](https://github.com/reduxjs/redux-toolkit/releases/tag/v2.6.0 "Release v2.6.0 · reduxjs/redux-toolkit") |
| 145 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">redux</span> <span class="jser-tag">ReleaseNote</span></p> |
| 146 | + |
| 147 | +Redux Toolkit v2.6.0 출시. |
| 148 | +Infinite Query 지원 |
| 149 | + |
| 150 | + |
| 151 | +---- |
| 152 | + |
| 153 | +## ECMAScript proposal updates @ 2025-02 | ECMAScript Daily |
| 154 | +[ecmascript-daily.github.io/ecmascript/2025/02/24/ecmascript-proposal-update](https://ecmascript-daily.github.io/ecmascript/2025/02/24/ecmascript-proposal-update "ECMAScript proposal updates @ 2025-02 | ECMAScript Daily") |
| 155 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ECMAScript</span> <span class="jser-tag">news</span></p> |
| 156 | + |
| 157 | +2025년 2월 TC39 Meeting에서 ECMAScript Proposal 상태 변경 정리. |
| 158 | +`RegExp.escape`과 Float16가 Stage 4가 되어, ECMAScript 2025에 도입 결정 |
| 159 | + |
| 160 | + |
| 161 | +---- |
| 162 | +<h1 class="site-genre">읽을거리</h1> |
| 163 | + |
| 164 | +---- |
| 165 | + |
| 166 | +## ESLint now officially supports linting of CSS - ESLint - Pluggable JavaScript Linter |
| 167 | +[eslint.org/blog/2025/02/eslint-css-support/](https://eslint.org/blog/2025/02/eslint-css-support/ "ESLint now officially supports linting of CSS - ESLint - Pluggable JavaScript Linter") |
| 168 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">css</span> <span class="jser-tag">article</span></p> |
| 169 | + |
| 170 | +ESLint가 CSS의 Lint 정식 지원. |
| 171 | +`@eslint/css` 플러그인으로 CSS의 Lint 대응, `tolerant` 옵션으로 구문 에러 케이스에도 대응, `customSyntax`으로 독자 `@at-rule`에도 대응 |
| 172 | + |
| 173 | + |
| 174 | +---- |
| 175 | + |
| 176 | +## The Popover API is now Baseline Newly available | Blog | web.dev |
| 177 | +[web.dev/blog/popover-baseline?hl=en](https://web.dev/blog/popover-baseline?hl=en "The Popover API is now Baseline Newly available | Blog | web.dev") |
| 178 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">browser</span> <span class="jser-tag">article</span></p> |
| 179 | + |
| 180 | +Popover API가 Baseline가 되어 많은 브라우저에서 이용 가능. |
| 181 | + |
| 182 | + |
| 183 | +---- |
| 184 | + |
| 185 | +## Interop 2025 스타트 | 프론트엔드Blog | 미츠에링크스 |
| 186 | +[www.mitsue.co.jp/knowledge/blog/frontend/202502/17\_0829.html](https://www.mitsue.co.jp/knowledge/blog/frontend/202502/17_0829.html "Interop 2025 스타트 | 프론트엔드Blog | 미츠에링크스") |
| 187 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">browser</span> <span class="jser-tag">article</span> <span class="jser-tag">WebPlatformAPI</span></p> |
| 188 | + |
| 189 | +브라우저 상호 운용성 향상을 위한 Interop 2025 발표. |
| 190 | + |
| 191 | +- [Announcing Interop 2025 | WebKit](https://webkit.org/blog/16458/announcing-interop-2025/ "Announcing Interop 2025 | WebKit") |
| 192 | +- [Interop 2025 Launch - Bocoup](https://www.bocoup.com/blog/interop-2025 "Interop 2025 Launch - Bocoup") |
| 193 | +- [Interop 2025: another year of web platform improvements | Blog | web.dev](https://web.dev/blog/interop-2025 "Interop 2025: another year of web platform improvements | Blog | web.dev") |
| 194 | +- [Interop 2025 | Igalia](https://www.igalia.com/2025/02/13/Interop-2025.html "Interop 2025 | Igalia") |
| 195 | +- [Microsoft Edge and Interop 2025 - Microsoft Edge Blog](https://blogs.windows.com/msedgedev/2025/02/13/microsoft-edge-and-interop-2025/ "Microsoft Edge and Interop 2025 - Microsoft Edge Blog") |
| 196 | +- [Launching Interop 2025 - Mozilla Hacks - the Web developer blog](https://hacks.mozilla.org/2025/02/interop-2025/ "Launching Interop 2025 - Mozilla Hacks - the Web developer blog") |
| 197 | + |
| 198 | +---- |
| 199 | + |
| 200 | +## Web 기술 호환성을 파악하기 위한 Baseline와 Web Platform Status Dashboard |
| 201 | +[zenn.dev/sakito/articles/26cba8397c4dbe](https://zenn.dev/sakito/articles/26cba8397c4dbe "Web 기술 호환성을 파악하기 위한 Baseline와 Web Platform Status Dashboard") |
| 202 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebPlatformAPI</span> <span class="jser-tag">article</span></p> |
| 203 | + |
| 204 | +Baseline와 Web Platform Status Dashboard에 대하여 |
| 205 | + |
| 206 | + |
| 207 | +---- |
| 208 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 209 | + |
| 210 | +---- |
| 211 | + |
| 212 | +## The Typescript AI framework - Mastra |
| 213 | +[mastra.ai/](https://mastra.ai/ "The Typescript AI framework - Mastra") |
| 214 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">LanguageModel</span> <span class="jser-tag">API</span> <span class="jser-tag">library</span></p> |
| 215 | + |
| 216 | +OpenAI/Anthropic/Google Gemini의 LLM Provider API를 사용해 Agent나 도구를 작성하는 AI 프레임워크. |
| 217 | +Gatsby 제작자들이 작성 |
| 218 | + |
| 219 | + |
| 220 | +---- |
| 221 | + |
| 222 | +## le0pard/re2js: RE2JS is the JavaScript port of RE2, a regular expression engine that provides linear time matching |
| 223 | +[github.com/le0pard/re2js](https://github.com/le0pard/re2js "le0pard/re2js: RE2JS is the JavaScript port of RE2, a regular expression engine that provides linear time matching") |
| 224 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">RegExp</span> <span class="jser-tag">library</span></p> |
| 225 | + |
| 226 | +정규표현 엔진 RE2의 JavaScript Port |
| 227 | + |
| 228 | + |
| 229 | +---- |
0 commit comments