Frontend Weekly 2024-08-16
pnpm v9.7.0
pnpm v9.7.0 がリリースされた。
https://github.com/pnpm/pnpm/releases/tag/v9.7.0
packageManager によるバージョンの切り替え
Corepack が利用する packageManager を参照して、自動的にバージョンを切り替える機能が追加された。
例えば、package.json
に次のように指定すれば、自動的に[email protected]
が利用される。
{}
この機能を有効化するには、manage-package-manager-versions
をtrue
に設定する必要がある。
次のようにコマンドを実行する。
pnpm config set manage-package-manager-versions true --location project
または.npmrc
などに次のように記述すればいい。
manage-package-manager-versions=true
パッケージの全てのバージョンをパッチを適用する
以前からpnpm
では、pnpm patch
コマンドを利用して、パッケージのコードを直接書き換えることが出来る。
次のようにコマンドを入力する。
pnpm patch <package-name>
出力に従ってパッチの記述やコマンドの入力を行うとpatches/<package-name>@<package-version>.patch
というファイルが作成され、package.json
には次のようにpatchedDependencies
フィールドが追加される。
{ "pnpm": { "patchedDependencies": { "<package-name>@<package-version>": "patches/<package-name>@<package-version>.patch" } }}
しかし、これは見て分かる通り、特定のバージョンに対してパッチを適用することしか出来ない。 つまり、パッケージのバージョンを上げるたびにパッチを適用する必要があった。
そこで、pnpm v9.7.0 ではpnpm patch
コマンドでバージョンを指定しなかった場合、全てのバージョンに対してパッチを適用する機能が追加された。
WebDriver BiDi production-ready in Firefox, Chrome and Puppeteer
W3C が従来のブラウザテスト自動化プロトコル WebDriver の拡張として策定を進めていた WebDriver BiDi が、Firefox、Chrome、Puppeteer で本番環境での利用が可能になった。
https://developer.chrome.com/blog/firefox-support-in-puppeteer-with-webdriver-bidi
従来のブラウザテスト自動化プロトコルには、いくつか問題がある。
- Selenium などで利用される WebDriver はクロスブラウザ対応が容易な一方、Flaky になりやすく遅い。
- Puppter や Playwright などが利用している Chrome DevTools Protocol(CDP)は高速であり低レベルな API を操作できるが、名前の通り本来 Chromium base のブラウザでしか動かず、Firefox や Safari にはパッチを当てて対応している。
WebDriver BiDi は、これらの問題を解決するために開発された。 WebDriver と CDP それぞれのメリットである容易なクロスブラウザ対応と高速な動作、低レベルな API の操作を全て備えている。
Others
Remix v2 の Hooks 全部使うシリーズ
Remix を現在使っていない場合も、React Router の Data Router を利用していれば同様の Hooks が利用できるので、一度軽く目を通すと多くの発見があると思う。
- https://qiita.com/kedama-t/items/f648183771585422a31d#%E5%BA%8F
- https://qiita.com/kedama-t/items/29972d958f640285abbc
- https://qiita.com/kedama-t/items/27487e3e29d8f1917959
React Router や Remix の公式ドキュメントでも確認できるが、簡素な傾向があるので、こういう網羅的な記事は有益だと思う。
リクルートのエンジニアコース新人研修資料 2024
リクルート社のエンジニア研修の資料が今年も公開された。
https://techblog.recruit.co.jp/article-4635/
React や Next.js など技術にフォーカスしたスライドが取り上げられがちだが、 個人的にはソフトウェアエンジニアとしての姿勢と心構えや 現代的なシステム設計概論も良い資料だと思う。