BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より

GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より

ブックマーク

原文(投稿日:2020/09/26)へのリンク

GitHubでnpmのプロダクトマネージャを務めるEdward Thomson氏は、先日のGitHub Satellite 2020で、npmがGitHubに加わったことによるJavaScript開発者への影響と、オープンソース開発とプロフェッショナル開発がともにGitHubを最大限に活用する方法について説明した。

今年4月にnpmの買収を完了したGitHubは、npmを3つの軸 — インフラストラクチャ、開発者エクスペリエンス、コミュニティ — において成長させる計画を発表している。Thomson氏は講演の中で、npm CLIとnpmレジストリの改善を目的として、GitHubが現在行っているイニシアティブについて説明した。

最初に言及したのは、CLIを対象とする活動についてである。

チームは今現在、CLIの次期バージョンである NPM v7の開発を行っています。このバージョンは、非常に大きな変革となります。CLIチームは大幅なリファクタリングを行い、正確性とパフォーマンスの向上に取り組んでいます。利用ソフトウェアのセキュリティ向上と合わせて、エコシステムにおける他ツールとの互換性の向上にもトライしています。

npm CLIチームは現在、npm audit関連のエクスペリエンスの改善を行っている。Thomson氏は新たな機能の説明として、npm v6とv7のCLIアウトプットの違いを示した。前者にはminimistパッケージに関連する脆弱性が発見されていることに加えて、表示空間を無駄遣いするテーブル形式の表示になっている。しかも、このminimistの問題は、依存関係として使用しているすべてのパッケージについて報告されるのだ。npm v7では、セキュリティ上の脆弱性に関する情報と修正方法が、より短時間でアクセスできるように簡潔に表示される。それに伴い、minimistの脆弱性問題に関する表示も1回のみになっている。npm v7はさらに、問題を発生させるパッケージがminimistのみであることを認識し、問題を自動修正するためにnpm audit fixを実行するようユーザに促してくれる。

npm 6でも主要な依存関係のアップデートに関しては、問題点の修正 — コードのリファクタリングが必要な可能性のある大幅な変更を伴うアップデートなど — を推奨する場合もあったが、npm 7はそれとは違い、パッケージバージョンのダウンロードによる問題の自動修正を提案することが可能になっている。さらにnpm v7では、yarn (およびyarnロックファイル9との共存性も向上している。Thomson氏は次のように説明する。

この2つのツールが、できる限りよい状態でインタラクションできるようにしたいと思っています。2つのコマンドラインインターフェース(yarnとnpm)が壁で仕切られていた時代もありましたが、npm 7は互換性面で大きく改善されています。

大規模プロジェクトではポピュラーな機能であるワークスペースも、npm v7でサポートされるようになる。npm v7では最低限としてYarnのワークスペース機能がサポートされており、v8で導入される高度なワークスペース機能の布石になっている。ワークスペースによって、インストレーションスクリプト(例えばyarn install)を一度実行するだけで、複数パッケージをセットアップしてインストールする作業を単一パスで行うことが可能になる。プロジェクト毎に別々ではなく、単一のロックファイルが使用されるため、コンフリクトの可能性が低減され、レビューも容易になっている。

npmレジストリに関しては、GitHubがnpmとGitHubの統合性の改善、npmのインフラストラクチャ強化、npmの有償ユーザのGitHubパッケージへの移行などを検討している。Thomson氏が詳細を説明する。

現在のnpmには、プライベートパッケージのホスト用にいくつかの有償プランが用意されています。これらnpmの有償ユーザのGitHubパッケージへの移行を可能にする設定を行う予定です。これによって各リポジトリを、それぞれ最適なものに集中させることが可能になります。つまり、プライベートパッケージのホスティングにはGitHubパッケージが適切なソリューションになり、npmはオープンソース用の充実したパブリックレジストリであることに集中し続けられるようになるのです。

Thomson氏はnpmに関するGitHubのイニシアティブに対して、開発者からのフィードバックを求めている。資料として、npmのRFCnpmのブログが参照可能である。Thomson氏の講演の全内容はオンラインで公開されており、npmに関するGitHubのイニシアティブについて、さらに詳細な情報が提供されている。

この記事に星をつける

おすすめ度
スタイル

BT