teppeisさんのフィード

https://zenn.dev/teppeis

Web Developer working on @kintone at @cybozu. Loves JavaScript and Curry! 🍛

フィード

記事のアイキャッチ画像
mise (旧 rtx) で脱 node-build (asdf)
teppeisさんのフィード
年明けはまず環境整備から、ということで今年は mise を導入することにした。https://mise.jdx.dev/去年まで rtx とか rtx-cli という名前でやってた Rust 実装の asdf 代替の多用途バージョン管理ツール。この年明けに急に mise にリネームしたよ、というニュースが流れてきて、気になって見てみたら良さそうだった。一般的な解説は "rtx" でググると日本語記事も出てくるのでそっちを見て欲しいけど、個人的な asdf に対するメリットはこのあたり。とにかく速いasdf は Node の最新バージョンの反映が node-build 依存で、...
5ヶ月前
記事のアイキャッチ画像
ESLint v8.56.0 の `reportUnusedDisableDirectives` とは何か?
teppeisさんのフィード
この記事は Cybozu Frontend Advent Calendar 2023 の 24 日目の記事です。先日リリースされた ESLint v8.56.0 でオプション reportUnusedDisableDirectives が改善された話です。https://eslint.org/blog/2023/12/eslint-v8.56.0-released/ 元々どういうオプションだった?// eslint-disable-line みたいなルール無効化ディレクティブを書いたけど、しばらくして何かしらのコード修正の影響でもうそのルール違反は発生しなくなって、でも無効化デ...
5ヶ月前
記事のアイキャッチ画像
asdf で node-build の定義ファイルを手動更新する
teppeisさんのフィード
asdf で Node.js を扱う場合、内部的には node-build によってインストール可能なバージョンとアーカイブの URL の定義ファイルが管理されている。この定義ファイルが数日更新されないこともあり[1]、そういう場合に手動でローカルの定義ファイルを更新して新バージョンをインストールする方法を毎回忘れるのでメモに残しておく。手順だけ書くとこれ。DIR=/tmp/node-defsmkdir -p $DIRnpx -p @nodenv/node-build-update-defs nodenv-update-version-defs -f -d $DIRNODE_...
7ヶ月前
記事のアイキャッチ画像
TypeScript 5.0 で追加された verbatimModuleSyntax とは何か?
teppeisさんのフィード
TypeScript 5.0 で導入された新しいオプションverbatimModuleSyntaxについて少し調べた結果、とりあえず ESLint だけ設定しとこうと思った話。 背景: トランスパイル時の import 文の省略挙動がムズいTypeScript で以下の import 文を書くと、tsc はどのような JS にトランスパイルするだろうか?import { Foo } from "./foo";答えは、状況によって 3 パターンある。// A: そのまま残るimport { Foo } from "./foo";// B: 識別子 `Foo` が削除される...
1年前
記事のアイキャッチ画像
Vite 3 が採用した CJS Proxy による Dual Package 構成
teppeisさんのフィード
2022 年現在、Node.js 界隈は ESM (ES Module) への移行の過渡期であり、特に既存プロジェクトにおいては CJS (CommonJS) 構成であることがまだまだ多い。また、Pure ESM な npm パッケージは、CSJ プロジェクトからの利便性が悪く、dynamic import が必須で非同期化を強いられたり TypeScript の設定変更が必要だったりと面倒が増える。そんな状況のため、広く使われたい npm パッケージを公開する場合、importでもrequireでも利用できるよう dual package 構成を取りたくなるが、定番手法が確立している...
2年前
記事のアイキャッチ画像
M1 Mac で nodenv から Intel 版 Node.js をインストール
teppeisさんのフィード
最近になって M1 Mac 入手したので環境構築の tips をメモ。Node.js v16 以上では M1 Mac 向け arm64 バイナリが公式に提供されているが、v15 以下では提供されていない。M1 Mac で nodenv を使って Node.js をインストールする場合、v16 ではもちろん arm64 バイナリをダウンロードするが、v14 では x86_64 バイナリをダウンロードして Rosetta で動かすのではなく、ソースをダウンロードしてローカルでコンパイルが始まってしまう。この挙動は厳密に arm64 バイナリが欲しい人には嬉しいかもしれないが、ちょっとし...
2年前
記事のアイキャッチ画像
TypeScript 4.5 以降で ESM 対応はどうなるのか?
teppeisさんのフィード
!本記事で記述した Node.js ESM 対応は2022 年 5 月に TypeScript 4.7 で正式版としてリリースされました。本記事の内容との差分はmodule:node12がmodule:node16に変更されたことぐらいです。node16では top-level await が使え、現時点ではnodenextとの差分はありません。他に関連する機能としてresolution-modeや--moduleDetectionが追加されましたが、一般利用者が意識することはないでしょう。先日リリースされた TypeScript 4.5 Beta で、待望の Node.js ...
3年前
記事のアイキャッチ画像
QMK で slave 側でも process_record() を発火する
teppeisさんのフィード
左右分離型キーボードでは、キー押下イベントのハンドリングに使う process_record() 及びそこから派生する process_record_user() 等の関数は、通常は master 側でしか実行されない。通常はそれで問題ないが、slave 側でも OLED にキーイベントに関連した表示を行いたい場合に困った。ググっても良い情報は得られなかったので、ソースを追って調べてみた。 先に結論SPLIT_TRANSPORT_MIRROR を定義should_process_keypress() を override して true を返す#define SPLI...
3年前
記事のアイキャッチ画像
corepack is 何?
teppeisさんのフィード
!追記: 2023-11-19corepack v0.20.0 にて、CLI のコマンド体系が一新されて多少わかりやすくなりました (PR#291)。新しいコマンドは README を参照。追記: 2022-02-03Node.js v14.19.0 に corepack が標準バンドルされました。corepack がバンドルされていない Node.js v12 系は 2022-04-30 に EOL を迎えるので、あと 3 ヶ月もすればアクティブな Node.js 環境には必ず corepack が揃っているという状態になりますね。引き続き experimental ステータ...
3年前
記事のアイキャッチ画像
ESLint, Prettier, VS Code, npm scripts の設定: 2021春
teppeisさんのフィード
eslint-plugin-prettier 時代の設定をずっと使っていたので、重い腰を上げてアップデートした作業メモ。 背景Prettier 公式ドキュメントによれば、現在 eslint-plugin-prettier は以下の問題があるとして推奨していない。エディタが真っ赤になる(人間が気にする必要のない問題なのに!)直接実行するより遅い(同様に prettier-eslint も遅い)ESLint と Prettier の間に間接レイヤーを追加するので、壊れやすいなるほど正しい。一方、別々に実行することで以下のような問題も出てくるので、解決していく。CLI ...
3年前