Skip to content

Commit 5641dd3

Browse files
2023-09-07のJS: Node.js v20.6.0(.env)、Rspackのアーキテクチャデザイン、 (#1115)
* Update 659 draft * Update 659 draft * Update 659 draft * Update 659 draft * Update 659 draft * Update 659 draft * Update 659 draft * Update 659 draft * Update 659 draft * Update _i18n/ja/_posts/2023/2023-09-07-node.js-v20.6.0.env-rspack-.md * Delete _i18n/ja/_posts/2023/2023-09-07-659draft.md * Update _i18n/ja/_posts/2023/2023-09-07-node.js-v20.6.0.env-rspack-.md * Update _i18n/ja/_posts/2023/2023-09-07-node.js-v20.6.0.env-rspack-.md --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 0c2944f commit 5641dd3

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: "2023-09-07のJS: Node.js v20.6.0(.env)、Rspackのアーキテクチャデザイン、"
3+
author: "azu"
4+
layout: post
5+
date : 2023-09-07T06:06:26.726Z
6+
category: JSer
7+
tags:
8+
- nodejs
9+
- bundler
10+
- MicroFrontend
11+
- architecture
12+
- GraphQL
13+
14+
---
15+
16+
JSer.info #659 - Node.js v20.6.0がリリースされました
17+
18+
- [Node v20.6.0 (Current) | Node.js](https://nodejs.org/ja/blog/release/v20.6.0)
19+
20+
`.env`をビルトインサポート、`import.meta.resolve`をフラグなしで利用できるように、`module.register()` APIの追加などが行われています。
21+
Loaderの`load` hookがCommonJSをサポートし、非推奨の`require.extensions`を使わなくてもCommonJSを扱うcustom loaderを書けるようになるなどといった変更も含まれています。
22+
23+
しかし、このv20.6.0ではこのloaderの変更によりBabelなどが動かなくなっているため、v20.6.1で修正される予定です。
24+
25+
- [[v20.6] CJS runs repeatedly when there are circular dependencies when loaded by ESM · Issue #49497 · nodejs/node](https://github.com/nodejs/node/issues/49497)
26+
- [esm: fix loading of (recursive) CJS modules from ESM by aduh95 · Pull Request #49500 · nodejs/node](https://github.com/nodejs/node/pull/49500)
27+
28+
29+
---
30+
31+
[Design Trade-offs in Bundler: The Rationale Behind Creating Rspack · web-infra-dev/wg · Discussion #1](https://github.com/web-infra-dev/wg/discussions/1)に、Rspackの開発の目的やwebpack/parcel/esbuild/rollupなどのbundlerのアーキテクチャについて書かれています。
32+
33+
それぞれのbundlerには長所と短所がありますが、出発点としてはesbuildとRollupのいいところを取り込んだRustバージョン作るところから始まった点について書かれています。
34+
その過程でプラグインAPIやJavaScript以外の言語を扱う仕組みの必要性などから、webpackのアーキテクチャと似たものが必要なことが分かり、Rspackはwebpack互換のアーキテクチャを採用することになったことが書かれています。
35+
36+
それぞれのbundlerのアーキテクチャ、Rspackの現在の課題、今後の方向性などについても書かれています。
37+
38+
----
39+
40+
{% include inline-support.html %}
41+
42+
----
43+
44+
<h1 class="site-genre">ヘッドライン</h1>
45+
46+
----
47+
48+
## nitrogql 1.0 release | nitrogql blog
49+
[nitrogql.vercel.app/blog/release-1.0](https://nitrogql.vercel.app/blog/release-1.0 "nitrogql 1.0 release | nitrogql blog")
50+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">GraphQL</span> <span class="jser-tag">Tools</span> <span class="jser-tag">Rust</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">ReleaseNote</span></p>
51+
52+
GraphQLからクライアントコードの生成とGraphQLのクエリの型チェック行うnitrogql 1.0リリース。
53+
54+
55+
----
56+
57+
## Node v20.6.0 (Current) | Node.js
58+
[nodejs.org/ja/blog/release/v20.6.0](https://nodejs.org/ja/blog/release/v20.6.0 "Node v20.6.0 (Current) | Node.js")
59+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>
60+
61+
Node.js v20.6.0リリース。
62+
`.env`をビルトインサポート、`import.meta.resolve`をフラグなしで利用できるように、`module.register()` APIの追加。
63+
Loaderの`load` hookがCommonJSをサポートし、非推奨の`require.extensions`を使わなくてもCommonJSを扱うcustom loaderを書けるようになるなど
64+
65+
66+
----
67+
68+
## Release v4.0.0 · actions/checkout
69+
[github.com/actions/checkout/releases/tag/v4.0.0](https://github.com/actions/checkout/releases/tag/v4.0.0 "Release v4.0.0 · actions/checkout")
70+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Github</span> <span class="jser-tag">Actions</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>
71+
72+
actions/checkout v4.0.0リリース。
73+
Node.js 20を利用するように、`show-progress`オプションを追加など
74+
75+
76+
----
77+
<h1 class="site-genre">アーティクル</h1>
78+
79+
----
80+
81+
## Design Trade-offs in Bundler: The Rationale Behind Creating Rspack · web-infra-dev/wg · Discussion #1
82+
[github.com/web-infra-dev/wg/discussions/1](https://github.com/web-infra-dev/wg/discussions/1 "Design Trade-offs in Bundler: The Rationale Behind Creating Rspack · web-infra-dev/wg · Discussion #1")
83+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">bundler</span> <span class="jser-tag">article</span> <span class="jser-tag">architecture</span></p>
84+
85+
Rspackの開発の目的やwebpack/parcel/esbuild/rollupなどのbundlerのアーキテクチャについて。
86+
webpackにはデバッグやパフォーマンスの問題があり、Vite/Rollupも大規模プロジェクトではパフォーマンスにビルド環境の差異の問題があり、esbuildはプラグインの柔軟性に問題がある。
87+
RollupはESMのみが第一級市民であり、RspackはwebpackとParcelと同じく言語に依存しないことを目的にしている。
88+
それぞれのbundlerのプラグインAPIの設計と複雑性、ASTの再利用とパフォーマンスの問題、Tree ShakingをASTベースで行った場合の課題について。
89+
また、今後のRspackが目指す方向して簡単に使えるようにすること、デバッグをしやすくすること、最適化をwebpackと同等以上にすること、リモートキャッシュなどについて触れている。
90+
91+
92+
----
93+
94+
## Mofi - Snappy UIs With WebAssembly and Web Workers
95+
[mofi.loud.red/blog/wasm-and-workers](https://mofi.loud.red/blog/wasm-and-workers "Mofi - Snappy UIs With WebAssembly and Web Workers")
96+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">webworker</span> <span class="jser-tag">article</span> <span class="jser-tag">JavaScript</span></p>
97+
98+
WebAssemblyでの処理をWebWorkerの中で動かし、メインスレッドをブロックせずに処理を行うという話。
99+
CPUのコア数を超えてWorkerを増やすと問題があるため、ワーカープールを作成しWorker数を制御している。またWorkerから進捗状況をメッセージングする方法についてなど
100+
101+
102+
----
103+
104+
## Faster Vue.js Execution in Firefox - Mozilla Hacks - the Web developer blog
105+
[hacks.mozilla.org/2023/09/faster-vue-js-execution-in-firefox/](https://hacks.mozilla.org/2023/09/faster-vue-js-execution-in-firefox/ "Faster Vue.js Execution in Firefox - Mozilla Hacks - the Web developer blog")
106+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">performance</span> <span class="jser-tag">article</span></p>
107+
108+
Vueなどが使うProxyの最適化を行うことで、TodoMVC-Vuewのパフォーマンスが40%改善される。
109+
Firefox 118のリリースにこの変更が含まれる予定。
110+
111+
112+
----
113+
114+
## How we reduced the size of our JavaScript bundles by 33% - Dropbox
115+
[dropbox.tech/frontend/how-we-reduced-the-size-of-our-javascript-bundles-by-33-percent](https://dropbox.tech/frontend/how-we-reduced-the-size-of-our-javascript-bundles-by-33-percent "How we reduced the size of our JavaScript bundles by 33% - Dropbox")
116+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">bundler</span> <span class="jser-tag">article</span></p>
117+
118+
Rollupを使ってCode Splitting/Tree Shakingを行うことでbundleサイズを小さくしたという話。
119+
一方でRollupはメモリ上に全てのコードを持つためCIのビルドが不安定になった点、細かいchunkだと圧縮効率があまりよくなかった点についてなど
120+
121+
122+
----
123+
<h1 class="site-genre">サイト、サービス、ドキュメント</h1>
124+
125+
----
126+
127+
## Modern.js
128+
[modernjs.dev/en](https://modernjs.dev/en "Modern.js")
129+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">MicroFrontend</span></p>
130+
131+
ByteDanceのJavaScript向けのウェブアプリケーションフレームワーク。
132+
Reactをベースにしたクライアントサイド向けのモデルやルーティング、Rspack/ESLint/Jestなどの統合、BFFのサポート、MicroFrontendのサポートなどをしている。
133+
134+
135+
----
136+
<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1>
137+
138+
----
139+
140+
## measuredco/puck: The self-hosted drag and drop editor for React.
141+
[github.com/measuredco/puck](https://github.com/measuredco/puck "measuredco/puck: The self-hosted drag and drop editor for React.")
142+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">editor </span> <span class="jser-tag">library</span></p>
143+
144+
D&Dで編集できるビジュアルエディタのReactコンポーネントライブラリ
145+
146+
147+
----
148+
<h1 class="site-genre">書籍関係</h1>
149+
150+
----
151+
152+
## Nuxt 3 フロントエンド開発の教科書:書籍案内|技術評論社
153+
[gihyo.jp/book/2023/978-4-297-13685-7](https://gihyo.jp/book/2023/978-4-297-13685-7 "Nuxt 3 フロントエンド開発の教科書:書籍案内|技術評論社")
154+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Vue</span> <span class="jser-tag">library</span> <span class="jser-tag">book</span></p>
155+
156+
2023年9月22日発売
157+
Nuxtについての書籍
158+
159+
160+
----

0 commit comments

Comments
 (0)