RomeはBabelとyarnの作成者であるSebastian McKenzieとFacebookのReact Nativeチームが作成した実験的なJavaScriptツールチェーンである。Romeには、コンパイラ、リンター、フォーマッター、バンドラー、およびテストフレームワークが含まれており、「JavaScriptソースコードの処理に関連するあらゆるもののための包括的なツール」を目指している。
さまざまなツールをワークフローに統合する類似のプロジェクトとは異なり、Romeは、既存のサードパーティに対する依存関係がなく、ツールチェーン全体への大胆なアプローチでJavaScriptエコシステムを再考している。
RomeはTypeScriptで作成されており、コードの境界を明確化するために複数の内部パッケージを含むMonorepoである。Romeは自己ホスト型で、古いバージョンのRomeでコンパイルされる。Romeは、JSX、Flow、およびTypeScriptコードの処理をサポートしている。
Rome Getting Startedドキュメントは意図的に非常にまばらであり、マニュアルはじめ、Romeの初期化に関する情報、JSONファイルの設定の定義、そして、実行、リンティング、コンパイル、ソースコード解析に関するアクションがある。
PreactとJason Miller は、Romeの概要と使用可能なCLIコマンドの詳細な使用法を作成し、そのバンドル出力をRollupと比較し、いくつかの例と、早期にその他の洞察を提供した。
Romeプロジェクトには明確な一連の開発ガイドラインがある。それには、APIフットプリントが可能な限り小さくすることで、明確でわかりやすいエラーメッセージとすることや、厳密に型指定されたコードがある。Romeチームは現在、リンティングに重点を置いており、積極的に検討されている問題のリストをメンテナンスしている。McKenzie氏は次のように説明した。
Romeが現在注力している分野は、リンティングです。これは、最も簡単に使用できるRomeの一部を仕上げるための最も抵抗の少ない道筋です。
Romeは、JavaScriptの開発とツールの現在の状態からおそらく粗雑なつくりを取り除くための有望なアイデアを提供しているが、このアプローチが現状を変えるのか、単にJavaScriptツールチェーンの別のオプションにつながるのかを判断するのは時期尚早である。コミュニティの関心は強く、RomeがWebAssemblyを将来サポートするかどうかについての議論がある。
RomeはMITライセンスで利用できるが、本番環境で使用する準備ができておらず、現在はソースからビルドすることによってのみ使用できる。Romeは、コントリビューションガイドラインと行動規範に従って実験的ツールに関心のあるコントリビューターのためにオープンである。