Nuclide is a collection of packages for Atom to provide IDE-like functionality for a variety of programming languages and technologies.
Nuclide is currently in a pre-release state, and we are providing early access to a small number of external users in order to help ensure the quality of the project at launch. During this time, please do not share the code more broadly - it is changing fast and we are looking for high quality feedback from a small number of initial users.
As the project progresses over the coming weeks, we will be incrementally adding more of the Nuclide suite of packages in preparation for the full launch. The current release focusses on Hack, Flow, Mercurial, and remote development. It also includes some core utilities that will be used by the next set of packages, to be released very soon.
We want to thank you for your patience and help in putting this project together. Please feel free to raise issues and offer pull requests during this early access period, and we will work hard to get to them!
Thanks! - from all the Nuclide Team.
Most developers choose to maintain individual Node and Atom packages in their own repositories. Because Nuclide is composed of so many packages, we chose to organize all of its code in a single repository rather than across a multitude of repositories. As such, this repository is organized as follows:
pkg/
Source code for Nuclide packages.scripts/
Utilities for developing and deploying Nuclide packages.
Currently, Nuclide can be installed only from source. That is, during early access, Nuclide packages are not publicly available in npm or apm. Fortunately, building Nuclide is fairly straightforward.
System Requirements
- Python 2.6 or later.
- Atom v0.199.0 or later.
node
,npm
, andapm
must be on your$PATH
. (Node must be v0.12.0 or later.)- Optional, but strongly recommended: install the Atom linter package.
Build and install Nuclide
Run the following command from the root of the repository:
./scripts/dev/setup
This will fetch the appropriate dependencies from npm and
perform any necessary build steps. When complete, you should see several nuclide-
packages in your ~/.atom/packages
directory. Starting Atom after running ./scripts/dev/setup
for the first time may be a little slow because of the large number of Babel files that
need to be transpiled. (The results of transpilation are cached for future use.
You can see how many files were transpiled from Timecop.)
Currently, Nuclide contains the following Atom packages:
nuclide-flow
Adds support for Flow. Ifflow
is on your$PATH
, then opening.js
files with the/* @flow */
pragma under a directory with a.flowconfig
should expose information from Flow directly in Atom.nuclide-hack
Adds support for Hack.nuclide-hg-repository
Local changes to files in a Mercurial repository will be reflected in Atom's file tree and gutter UI as Atom does natively for Git repositories.
Nuclide also adds support for remote development. See the nuclide-server
package for more information on setting up remote development.
Read the packages overview to learn how to develop Nuclide.