|
|
|
# Usage
|
|
|
|
|
|
|
|
Neutrino is a command-line tool that wraps Webpack in order to support building JavaScript projects
|
|
|
|
based on shared configuration presets. You can use Neutrino within your project, preferably using
|
|
|
|
scripts defined in your project's `package.json`.
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
After completing the [installation](/installation.md) of Neutrino and your Neutrino preset, you will
|
|
|
|
want to define some scripts in your project's `package.json` in order to simply build your project.
|
|
|
|
In a typical project:
|
|
|
|
|
|
|
|
- `scripts.start` would be the command you wish to run during development
|
|
|
|
- `scripts.build` would be the command you wish to run to create a production bundle
|
|
|
|
- `scripts.test` would be the command you wish to run to execute tests
|
|
|
|
|
|
|
|
Using these script targets may not be suitable for every project; know that they are just
|
|
|
|
typical recommendations for script target names, you may choose a different name if desired
|
|
|
|
for your project.
|
|
|
|
|
|
|
|
## Building for development
|
|
|
|
|
|
|
|
Neutrino provides the command `neutrino start` for creating a bundle during development. Using
|
|
|
|
`neutrino start` sets the Node.js environment to `development` using the `NODE_ENV` environment variable,
|
|
|
|
which is available in your project source code. Depending on the presets you are using, `neutrino start`
|
|
|
|
may also spin up a development server with hot module reloading capabilities.
|
|
|
|
Check the documentation of your preset for details.
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# PRESET_MODULE is the name of the preset to build with, e.g. neutrino-preset-react
|
|
|
|
neutrino start --presets PRESET_MODULE
|
|
|
|
```
|
|
|
|
|
|
|
|
Putting this into your `package.json` will allow you to build your project using either
|
|
|
|
`yarn start` or `npm start`. Using `neutrino-preset-react` as an example:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"scripts": {
|
|
|
|
"start": "neutrino start --preset neutrino-preset-react"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Building for production
|
|
|
|
|
|
|
|
Neutrino provides the command `neutrino build` for creating a bundle for production deployment.
|
|
|
|
Using `neutrino build` sets the Node.js environment to `production` using the `NODE_ENV` environment variable,
|
|
|
|
which is available in your project source code. See the documentation for your preset for details regarding additional
|
|
|
|
steps after your build is completed.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# PRESET_MODULE is the name of the preset to build with, e.g. neutrino-preset-react
|
|
|
|
neutrino build --presets PRESET_MODULE
|
|
|
|
```
|
|
|
|
|
|
|
|
Putting this into your `package.json` will allow you to build your project using either
|
|
|
|
`yarn build` or `npm run build`. Using `neutrino-preset-react` as an example:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"scripts": {
|
|
|
|
"build": "neutrino build --presets neutrino-preset-react"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Building and running tests
|
|
|
|
|
|
|
|
Neutrino provides the command `neutrino test` for invoking a set of tests included in your project.
|
|
|
|
Using `neutrino test` sets the Node.js environment variable to `test` using the `NODE_ENV` environment
|
|
|
|
variable, which is available in your project source code. How your source code is built and consumed from tests
|
|
|
|
is determined by the preset you are using. Running suites that are built the same as source files are encouraged
|
|
|
|
to use a Neutrino-compatible preset. Neutrino currently provides three core testing presets: Karma, Jest, and Mocha.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# PRESET_MODULE is the name of the preset to build with, e.g. neutrino-preset-react
|
|
|
|
# TESTING_MODULE is the name of another preset to build with, e.g. neutrino-preset-karma
|
|
|
|
neutrino build --presets PRESET_MODULE TESTING_MODULE
|
|
|
|
```
|
|
|
|
|
|
|
|
Putting this into your `package.json` will allow you to test your project using either
|
|
|
|
`yarn test` or `npm test`. Using `neutrino-preset-react` and `neutrino-preset-karma` as an example:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"scripts": {
|
|
|
|
"test": "neutrino test --presets neutrino-preset-react neutrino-preset-karma"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Using the command `neutrino test` will execute every test file located in your
|
|
|
|
[testing directory](/project-layout#Testing). You may also provide to this command the specific test files you wish
|
|
|
|
to run individually. It is important to note that when combined with the `--presets` parameter, you should use two
|
|
|
|
dashes after the last preset to denote the end of the presets and the beginning of the test files.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
neutrino test --presets PRESET_A PRESET_B -- a_test.js b_test.js
|
|
|
|
```
|
|
|
|
|
|
|
|
## Using multiple presets
|
|
|
|
|
|
|
|
All Neutrino commands support the `--presets` command line parameter, but having to specify this for each script target
|
|
|
|
can be cumbersome, especially if you have many presets. Fortunately, Neutrino also supports specifying presets using the
|
|
|
|
`config.presets` field in your project's package.json file. By omitting the `--presets` flag and specifying a
|
|
|
|
`config.presets` array, every call to a Neutrino command will look up which presets are configured in your package.json.
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"config": {
|
|
|
|
"presets": [
|
|
|
|
"neutrino-preset-react",
|
|
|
|
"neutrino-preset-karma"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"scripts": {
|
|
|
|
"start": "neutrino start",
|
|
|
|
"build": "neutrino build",
|
|
|
|
"test": "neutrino test"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|