O hirunewani blog

Frontend Weekly 2025-06-20

Created at

Cloudflare Workers BuildsでGit commit SHAとブランチ名が環境変数として利用可能、GitHub TeamプランでのRuleset、TypeScriptコンパイラに依存しない型推論を提供するBiome v2リリースについて。

Cloudflare Workers BuildsでGit情報が環境変数として利用可能に

日付:2025年6月10日

Cloudflare Workers BuildsでGit commit SHAとブランチ名にアクセス可能な環境変数が追加。CI/CDパイプラインの柔軟性向上を目的とし、Cloudflare Pagesプロジェクトと同様のデフォルト環境変数を自動注入。

デプロイメントコンテキストに基づいてbuildプロセスをカスタマイズ可能。提供される環境変数はCIWORKERS_CIWORKERS_CI_BUILD_UUIDWORKERS_CI_COMMIT_SHAWORKERS_CI_BRANCHの5種類。

Commit IDをSentryなどのエラー報告に渡したり、productionブランチでデバッグログを無効化するなどの用途で活用可能。カスタム環境変数の追加や既定値の上書きは、Worker設定のEnvironment variablesから実行。

出展:Access git commit sha and branch name as environment variables in Workers Builds

GitHub TeamプランでもOrganizationでのRulesetが利用可能に

日付:2025年6月16日

GitHub Teamプランで組織レベルRulesetの設定が可能に。従来はEnterpriseプランに限定されていたガバナンス機能がTeamプランで利用可能。

複数リポジトリにわたってブランチとタグ保護のスケールが容易になった。管理者は組織レベルでルールを定義し、一貫した強制実行が可能。プルリクエスト必須化、GitHub Actionsワークフロー必須化など組織全体での要件強制により手動設定と設定ドリフトのリスクを削減。

組織Rulesetを利用してCopilot code reviewの全リポジトリ展開が可能。UI、REST API、GraphQL APIから管理可能で、ruleset-recipesリポジトリから事前作成されたRulesetのインポートも可能。

出展:Organization rulesets now available for GitHub Team plans

Biome v2リリース

日付:2025年6月17日

TypeScriptコンパイラに依存しない型推論を提供する初のJavaScriptとTypeScriptリンター、Biome v2がリリース。TypeScriptパッケージをインストールせずに型推論ベースのlint rulesを利用可能。

次のコマンドでインストールまたマイグレーションが可能。

npm install --save-dev --save-exact @biomejs/biome
npx @biomejs/biome migrate --write

出展:Biome v2—codename: Biotype

Multi-file analysisとtype inference

v2.0以前はBiomeのlintルールは1つのファイルずつしか操作できなかった。v2では他のファイルからの情報を必要とするより複雑なルールが可能に。

file scannerがプロジェクト内の全ファイルをスキャンしてインデックス化。noFloatingPromises ruleはtypescript-eslintの約75%のケースを検出可能で、パフォーマンスへの影響は大幅に軽減。

file scannerはopt-inのため、v1からv2への移行時のパフォーマンスへの影響は最小限。デフォルトではネストした設定ファイルの発見にのみ使用され、フルスキャンはプロジェクトルールが有効な場合のみ実行。

Monorepo Support

package.jsonファイルから適切なパッケージ情報を取得し、ネストした設定ファイルをサポート。プロジェクトルートに単一のbiome.jsonまたはbiome.jsoncを持ちつつ、サブディレクトリに任意の数の設定ファイルを配置可能。

ネストした設定ファイルの定義方法:

{
    "root": false
}

または、ルート設定からの継承:

{
    "extends": "//"
}

Import Organizer Revamp

同一モジュールからのimportのマージ、カスタム順序の設定、export文の整理が可能。従来の制限が解除され、より柔軟な整理が実現。

// Before
import { util1 } from "./utils.js";
import { util2 } from "./utils.js";

// After
import { util1, util2 } from "./utils.js";

カスタム順序での整理例:

import { open } from "node:fs";

import { internalLib1 } from "@company/library1";
import { internalLib2 } from "@company/library2";

import { lib1 } from "library1";

Plugins

Linter Pluginsの初期実装により、コードスニペットのマッチングと診断レポートが可能。プラグインはソースコードの構造検索を実行するためのクエリ言語であるGritQLで記述。現在はスコープが限定されているが、将来的な拡張の基盤を提供。

参考:Linter Plugins | Biome 参考:GritQL | Biome

Assists

診断なしでのアクション実行を提供するBiome Assistを導入。Import Organizerがassistとして再実装され、useSortedKeysによるオブジェクトリテラルのキーソート、useSortedAttributesによるJSX属性のソートが可能。

参考:Assist | Biome

Improved suppressions

従来の// biome-ignoreコメントに加えて、ファイル全体でのlintルールやformatterの抑制を行う// biome-ignore-allをサポート。

範囲指定での抑制も可能:

// biome-ignore-start
// 抑制したいコード
// biome-ignore-end

HTML formatter

.htmlファイルのフォーマットが可能な実験的実装。Vue、Svelte、AstroなどのHTMLテンプレート言語への対応準備が進行中。

現在はPrettierのHTMLテストスイートの46/124を正しくフォーマット可能。デフォルトでは無効のため、手動での有効化が必要:

{
  "html": {
    "formatter": {
      "enabled": true
    }
  }
}