@constgen/neutrino-react-loader
Version:
Neutrino middleware for React files
78 lines (55 loc) • 2.53 kB
Markdown
# @constgen/neutrino-react-loader
[](https://www.npmjs.com/package/@constgen/neutrino-react-loader)
[](https://www.npmjs.com/package/@constgen/neutrino-react-loader)
[Neutrino](https://neutrino.js.org) middleware for React files
This middleware already includes [`@constgen/neutrino-babel-loader`](https://github.com/constgen/constgen-neutrino/packages/babel-loader)
## Features
This middleware enables many features by default with zero configuration
- Typescript support
- Decorators
- Class properties
- Babel transpilation according to browserlist
- EcmaScript polyfills
- Automatic React runtime inject to every JSX file
- Resolve URLs in JSX like in HTML for these elements: `img[src]`, `link[href]`, `Image[src]`, `video[src]`, `video[poster]`, `Video[src]`, `source[src]`, `audio[src]`, `Audio[src]`
- Remove prop types in production
## Requirements
- Node.js v10+
- Neutrino v9
- Webpack v4
## Installation
`@constgen/neutrino-react-loader` can be installed from NPM. You should install it to `"dependencies"` (--save) or `"devDependncies"` (--save-dev) depending on your goal.
```bash
npm install --save @constgen/neutrino-react-loader
```
## Usage
### In preset
Require this package and plug it into Neutrino. The following shows how you can pass an options object to the middleware, showing the **defaults**:
```js
let reactLoader = require('@constgen/neutrino-react-loader')
neutrino.use(reactLoader({
babel : {}, // custom Babel options
polyfills: false, // enable EcmaScript polyfills
browsers : ['defaults'], // replace browserlist config
node : undefined, // node version in case of server rendering
include : [], // include strategy is always used and you can only extend what is included besides `neutrino.options.source` and `neutrino.options.tests`
exclude : [] // exclude something from processing that is included
}))
```
You may enable usage of `.browserslistrc` file in your project by setting `browsers` option to any falsy value
```js
neutrino.use(reactLoader({
browsers: undefined // inherit config from `.browserslistrc` or disable if absent
}))
```
### In **neutrinorc**
The middleware also may be used together with another presets in Neutrino rc-file, e.g.:
**.neutrinorc.js**
```js
let reactLoader = require('@constgen/neutrino-react-loader')
module.exports = {
use: [
reactLoader()
]
}
```