├── .gitignore ├── LICENSE ├── Readme.md ├── index.js ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2017 TJ Holowaychuk tj@tjholowaychuk.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # neutrino-preset-react-require 2 | 3 | Auto import React when JSX is detected. 4 | 5 | ## Installation 6 | 7 | Grab the preset: 8 | 9 | ``` 10 | $ yarn add -D neutrino-preset-react-require 11 | ``` 12 | 13 | Add it to your package.json: 14 | 15 | ```json 16 | { 17 | "neutrino": { 18 | "use": [ 19 | "neutrino-preset-react", 20 | "neutrino-preset-react-require" 21 | ] 22 | } 23 | } 24 | ``` 25 | 26 | ## Example 27 | 28 | Instead of: 29 | 30 | ```js 31 | import React from 'react' 32 | 33 | export default function Spinner({ size = 'small' }) { 34 | return
35 | } 36 | ``` 37 | 38 | Just write: 39 | 40 | ```js 41 | export default function Spinner({ size = 'small' }) { 42 | return
43 | } 44 | ``` 45 | 46 | --- 47 | 48 | ![](https://img.shields.io/badge/license-MIT-blue.svg) 49 | ![](https://img.shields.io/badge/status-stable-green.svg) 50 | 51 | 52 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 2 | const merge = require('deepmerge') 3 | 4 | module.exports = neutrino => { 5 | neutrino.config.module 6 | .rule('compile') 7 | .use('babel') 8 | .tap(options => merge(options, { plugins: ['babel-plugin-react-require'] })) 9 | } 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "neutrino-preset-react-require", 3 | "version": "2.0.0", 4 | "description": "Inject React import when JSX is detected.", 5 | "keywords": [ 6 | "neutrino", 7 | "neutrino-preset", 8 | "web", 9 | "import", 10 | "require", 11 | "react" 12 | ], 13 | "dependencies": { 14 | "babel-plugin-react-require": "^3.0.0", 15 | "deepmerge": "^2.0.1" 16 | }, 17 | "peerDependencies": { 18 | "neutrino": "^8.0.18" 19 | }, 20 | "files": ["index.js"], 21 | "license": "MIT" 22 | } 23 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | babel-plugin-react-require@^3.0.0: 6 | version "3.0.0" 7 | resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.0.0.tgz#2e4e7b4496b93a654a1c80042276de4e4eeb20e3" 8 | 9 | deepmerge@^1.3.2: 10 | version "1.3.2" 11 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.3.2.tgz#1663691629d4dbfe364fa12a2a4f0aa86aa3a050" 12 | --------------------------------------------------------------------------------