Qrac

Results 43 comments of Qrac

当面のReact 17系アップグレードコマンド。 ```sh $ ncu '/^(?!react|@types/react).*$/' $ ncu -u '/^(?!react|@types/react).*$/' $ npm i -D react@17 react-dom@17 @types/react@17 @types/react-dom@17 ```

`ReactDOM.render()` は内部で使わなくなった。`ReactDOM.hydrate()` を条件分岐でハイブリッド対応してみる。

独自ドメインの当て方など知らないので調べる。

16.8以上をユーザーが使っているかどうかの上手い判定方法が見つからない...。

`this.emitFile` で追加したHTMLはそこからバンドルを行わないので普通にoutputした場合と同じになる。 - https://rollupjs.org/guide/en/#thisemitfile

HTMLを仮想モジュール化してバンドルに含めることで理想的な処理になりそうだったが `this.emitFile()` されたHTMLの`fileName` のパスがおかしくなりビルドが通らない。 - https://github.com/vitejs/vite/issues/9662 - [仮想モジュールの規約 | Vite](https://ja.vitejs.dev/guide/api-plugin.html#%E4%BB%AE%E6%83%B3%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E8%A6%8F%E7%B4%84) Vite及びrollupにもemitした後のリストを修正する機能はないようなので厳しい。 - https://github.com/rollup/rollup/issues/3778 - [this.emitFile | rollup.js](https://rollupjs.org/guide/en/#thisemitfile) `src/pages` に一度HTMLファイルを出力して一時ファイルとして使えば通りそうだけど、あまり綺麗ではない...。 仮想モジュール化する場合の実装↓ ```tsx import type { Plugin } from "vite" import path...

とりあえず、srcへの一時ファイル出力でなんとかした。バグが消えたら作り直したい。

参考:仮想モジュールを追加するViteプラグイン - https://github.com/patak-dev/vite-plugin-virtual

参考:HTMLを追加するViteプラグインは仮想モジュールを使っておらず、どれも既存のHTMLを使うか生成した後に動かすか消すかを行なっている。 - https://github.com/vbenjs/vite-plugin-html - https://github.com/windsonR/vite-plugin-virtual-html - https://github.com/IndexXuan/vite-plugin-html-template - https://github.com/Djaler/vite-plugin-asciidoc

HTMLをエントリーするのではなく、一度SSR用にビルドしてプラグインをページのtsxに反映。nodeでHTMLを生成する。