facebookexperimental / rome
- суббота, 29 февраля 2020 г. в 00:19:23
TypeScript
An experimental JavaScript toolchain
Rome is an experimental JavaScript toolchain. It includes a compiler, linter, formatter, bundler, testing framework and more. It aims to be a comprehensive tool for anything related to the processing of JavaScript source code.
Rome is not a collection of existing tools. All components are custom and use no third-party dependencies.
Rome is experimental and in active development. It's open for contributors and those interested in experimental tools. It is not ready for production usage. The only way to use it is to build from source.
Rome aims to be a replacement for many existing JavaScript tools. We will, however, offer integrations for components in other tools. For example, using the Rome compiler as a plugin for another bundler.
Rome is MIT licensed, and the project managed under the Contributor Covenant Code of Conduct.
Rome was started by Sebastian McKenzie, the author of Babel and Yarn.
Rome is a project from the React Native team at Facebook.
Rome gets its name from proverbs such as "All Roads Lead to Rome", "Rome wasn't built in a day" and "When in Rome, do as the Romans do". This refers to the expansive scope and the desire for conformity across the project. It started as a joke at the office.
Rome has a logo of an ancient Greek spartan helmet. It's not very relevant since it's not Roman, but it looks cooler than a Galea.
Rome is written completely in TypeScript with sparing usage of loose types.
Rome is a monorepo with internal packages to delineate code boundaries.
Rome is self-hosted and compiles itself with an old version.
Rome supports processing JSX as well as Flow and TypeScript annotated code.
See CONTRIBUTING for more information.
The current area of focus is linting. See the umbrella task #20 for tracking.
To setup Rome in a project, all you need is a rome.json file.
$ mkdir hello-world
$ cd hello-world
$ echo '{}' >rome.jsonThis file is used to configure Rome and indicates the boundaries of your project.
See Getting Started for more usage instructions.
This list includes general ethos the project should abide by. This list is not comprehensive. Some of these are obvious but are stated for completeness.
any. Where possible, refine and validate input. Aim for sound types.Contribution and development instructions can be found in CONTRIBUTING.
Additional project coordination and realtime discussion happens on our Discord server. Remember that all activity on the Discord is still moderated and will be strictly enforced under the project's Code of Conduct.