Scaffold a Neutrino Project¶
Neutrino can help you quickly start new projects by scaffolding your initial
project structure. @neutrinojs/create-project
uses middleware and presets
behind the scene to build projects. If you are not familiar with them, take a
moment to explore middleware and
presets.
Getting Started¶
Run the following command to start the process. Substitute <directory-name>
with the directory name you wish to create for this project.
Yarn¶
❯ yarn create @neutrinojs/project <directory-name>
Note: The create
command is a shorthand that helps you do two things at once.
See the Yarn create docs for
more details.
npm/npx¶
❯ npx @neutrinojs/create-project <directory-name>
Available Projects¶
@neutrinojs/create-project
presently offers a scaffolding project to build an
application, a library, or components. Depending on the project type, the CLI
helper may offer different flavors of that project to scaffold. Each project
type harnesses the power of middleware or presets to configure itself.
Project | Project Type | Middleware |
---|---|---|
React | Application | @neutrinojs/react |
Preact | Application | @neutrinojs/preact |
Vue | Application | @neutrinojs/vue |
Web | Application | @neutrinojs/web |
Node.js | Application | @neutrinojs/node |
Library | Library | @neutrinojs/library |
React Components | Components | @neutrinojs/react-components |
Test Runners¶
If you wish to use a test runner, @neutrinojs/create-project
will offer to set
one up for you during the scaffolding phase.
Test Runner | Middleware |
---|---|
Jest | @neutrinojs/jest |
Karma | @neutrinojs/karma |
Mocha | @neutrinojs/mocha |
Be sure to check out the test runner preset to get more information on its features and how files should be named.
Linting¶
If you wish to add linting to your project, Neutrino makes it simple to set up
during the scaffolding process. @neutrinojs/create-project
currently offers
two linting middleware choices.
Linting style | Middleware |
---|---|
Airbnb | With React/Preact: @neutrinojs/airbnb Other projects: @neutrinojs/airbnb-base |
StandardJS | @neutrinojs/standardjs |
Project Layout¶
@neutrinojs/create-project
follows the standard
project layout specified by Neutrino.
This means that by default all project source code should live in a directory
named src
in the root of the project. This includes JavaScript files, CSS
stylesheets, images, and any other assets that would be available to import your
compiled project. Neutrino will scaffold the project with the initial
package.json, Neutrino set up, and project layout necessary to immediately start
your project.
When it comes to test runners, all project test code should live in a directory
named test
in the root of the project. Be sure to check out the test runner
preset to get more information on its features and how files should be named.
Customization¶
No two JavaScript projects are ever the same, and as such there may be times when you will need to make modifications to the way your Neutrino presets are building your project. Neutrino provides a mechanism to augment presets and middleware in the context of a project without resorting to creating and publishing an entirely independent preset. To override the build configuration, start with the documentation on customization.
Contributing¶
This project is part of the neutrino repository, a monorepo containing all resources for developing Neutrino and its core presets and middleware. Follow the contributing guide for details.