O hirunewani blog

Frontend Weekly 2025-06-13

Created at

Oxlint v1.0の安定リリース、GitHub Pull Request リマインダーのSlack統合、GitHub App Manager のチーム付与、Node.js v24.2.0のimport.meta.main対応、VS Code 1.101リリース、ESLint 9.29.0の using declarations サポートについて、pnpm 10.12.1のGlobal Virtual Storeの追加について。

Oxlint v1.0 Stable リリース

日付:2025年6月10日

Rust製のJavaScript/TypeScript linterであるOxlintがついに安定版v1.0をリリース。ESLintと比較して50~100倍の高速化を実現し、500以上のルールをサポート。設定不要のゼロコンフィグで即座に利用開始でき、VS Code、IntelliJ、Zedエディターでの完全サポートも提供。Shopify、Airbnb、Mercedes-Benzなどの主要企業で採用済み。

npx oxlint@latest

既存のESLintプロジェクトからの移行が支援されており、oxlint-migrateで設定を自動移行できる。またeslint-plugin-oxlintでESLintルールの重複を無効化し、併用することも可能。加えて、設定ファイル.oxlintrc.jsonはESLintと同様にflat config形式を採用。

出展:Oxlint v1.0 Stable

GitHub Pull RequestのSlackリマインダー機能が強化

日付:2025年6月11日

GitHub Pull Requestのスケジュールリマインダー機能が強化され、より詳細な制御と明確性を提供。SlackとMicrosoft Teamsでのリマインダー受信をより精密に管理可能に。

最大20件のPRを最大5つのリポジトリから条件に基づいてリマインダーとして受信できる。リポジトリ選択は手動で行うか、組織内で最も古い平均PR年数を持つ5つのリポジトリを自動選択することも可能。

以前の「全リポジトリ」オプションでは、どのリポジトリがリマインダーに含まれるかが不明確だった。今回のアップデートでリポジトリ選択がより透明化され、注意が必要なPull Requestの優先順位付けと管理が容易に。

出展:Gain more control and clarity with scheduled reminders for pull requests

参考:Managing scheduled reminders for your organization

GitHub App Manager がチーム付与に対応

日付:2025年6月9日

GitHubのApp Managerロールがチーム割り当てをサポートし、標準的な組織ロールに変換された。組織設定とAPIで管理され、チームを特定またはすべてのGitHub Appのアプリマネージャーとして割り当て可能に。

App Managerロール自体に変更はなく、組織が所有する1つまたはすべてのGitHub Appの表示、編集、削除権限を提供。組織ロールとして割り当てられた場合、新しいGitHub Appの作成権限も含む。

出展:GitHub App Manager can now be granted to teams

Node.js v24.2.0リリース、import.meta.main サポート

日付:2025年6月9日

Node.js v24.2.0がリリースされ、import.meta.mainプロパティをサポート。ESモジュールで現在のモジュールがプロセスのエントリポイントかを判定できるブール値を提供。CommonJSのrequire.main === moduleと同等の機能をESモジュールで実現。

import.meta.mainは、現在のモジュールがNode.jsプロセスの開始点として実行されている場合にtrue、他のモジュールからインポートされている場合にfalseを返す。この機能により、ライブラリとスクリプトの両方で使用できるデュアルパーパスモジュールの作成が可能。

export function foo() {
  return 'Hello, world';
}

function main() {
  const message = foo();
  console.log(message);
}

if (import.meta.main) main();
// 他のモジュールからimportされた場合、mainは実行されない

この機能はDenoとBunでも既にサポートされており、JavaScriptランタイム間での相互運用性が向上。同じAPIを使用してエントリポイント判定が可能になり、クロスランタイム対応のライブラリ開発が容易に。

出展:Node.js v24.2.0

Visual Studio Code 1.101 リリース

日付:2025年6月12日

Visual Studio Code 1.101(May 2025)がリリース。エディター機能の改善、ソース管理の強化、ターミナル機能の向上など、開発体験を向上させる複数のアップデートを提供。

出展:Visual Studio Code 1.101

Find-as-you-typeの制御とカスタムメニュー対応

Find-as-you-typeの制御が可能になり、editor.find.findOnType設定でリアルタイム検索の有効/無効を切り替えできる。無効にした場合、Enterキーを押した後にのみ検索が実行される。

またWindowsとLinuxでカスタムメニューとネイティブウィンドウタイトルバーの組み合わせが可能になり、window.menuStyle設定でメニューバーとコンテキストメニューのスタイルを制御可能。

Source Control Graph viewでのファイル表示対応

Source Control Graph viewでファイル表示が可能に。履歴アイテムを選択すると、そのアイテムのリソースがツリービューまたはリストビューで表示される。Open Changesアクションでマルチファイル差分エディターでの一括表示も対応。

言語サーバーによるターミナル内Pythonの補完

言語サーバーベースの補完機能がPython REPLセッションで利用可能になり、エディターと同等の言語補完をターミナル内で提供。Pylanceを通じてPythonサポートが開始され、今後他の言語への拡張も予定。

WindowsでのPowerShellシェル環境検出

WindowsでPowerShellのシェル環境検出を実装し、PowerShellプロファイルで設定された環境変数をVS Codeが継承するように。これによりNode.jsなどのバージョンマネージャーがPowerShellプロファイルで設定したPATH更新をVS Codeが自動的に認識。

ESLint 9.29.0リリース、using declarations サポート

日付:2025年6月13日

ESLint 9.29.0がリリースされ、ECMAScript 2026のExplicit Resource Management構文であるusingawait using宣言をサポート。デフォルトパーサーespreeで新しい構文を解析可能になり、languageOptions.ecmaVersion2026または"latest"に設定することで利用できる。ただし、コアルールはまだこの構文に対応していないため注意。

if (something) {
    using someResource = getSomeResource();
    // ... use `someResource`
} // dispose `someResource`

async function foo() {
    if (something) {
        await using someResource = getSomeResource();
        // ... use `someResource`
    } // await dispose `someResource`
}

加えてTypeScript構文サポートがさらに拡張され、no-restricted-globalsno-varルールでTypeScriptファイルのlintが可能に。またno-restricted-propertiesルールにallowPropertiesオプションが追加され、特定のプロパティのみを許可する設定が可能になった。

出展:ESLint v9.29.0 released

pnpm 10.12.1リリース、実験的なGlobal Virtual Storeの追加

日付:2025年6月11日

pnpmがバージョン10.12.1をリリース。高速インストールを実現する実験的なglobal virtual storeの追加とversion catalog systemの機能強化など。

実験的なGlobal Virtual Storeを有効化すると、従来のnode_modules/.pnpmへの依存関係リンクを<store-path>/linksの共有ディレクトリに変更。複数プロジェクトで同一依存関係インスタンスを再利用可能で、再リンクや再ダウンロード不要によりインストール時間を大幅短縮。warm cacheが利用可能な開発マシンでほぼ瞬時のインストールを実現。

Global Virtual Storeはpnpm-workspace.yamlenableGlobalVirtualStore: trueを設定するか、次のようにグローバルに設定することで利用可能。

pnpm config -g set enable-global-virtual-store true

出展:pnpm Introduces Global Virtual Store and Expanded Version Catalogs