babel-plugin-react-import-extends

1.0.4 • Public • Published

babel-plugin-react-import-extends

Write React Components without having to extend React.Component or importing React with every Component.

Have you ever wondered how easy it would be to get rid of the annoying ...extends React.Component and not having to manually import React with every component that you write?

Enter babel-plugin-react-import-extends

This babel plugin auto-magically extends a "React Component", and imports React within the component if the detects the file type to be a React Component, so that you don't have to repeat that annoying stuff anymore, yay!

Install

npm install --save-dev babel-plugin-react-import-extends

Usage

Add the plugin to the plugins list in your .babelrc file

Via .babelrc (recommended):

{
  plugins: ['react-import-extends', ...otherPlugins]
}

Via CLI

babel --plugins react-import-extends script.js

Standard Input & Output Examples

1. With a Stateful Component

In

class StatefulComponent {
  componentDidMount() {
    console.log('mounted')
  }

  render() {
    return (
      <div className="test">
        Hello!
      </div>
    )
  }
}
export default StatefulComponent;

Out

import React, {PropTypes, Component} from "react";
class StatefulComponent extends Component {
  componentDidMount() {
    console.log('mounted');
  }

  render() {
    return <div className="test">
        Hello!
      </div>;
  }
}
export default StatefulComponent;

2. With functional components

In

const StatelessComponent = () => {
  return (
    <div className="test">
      Hello!
    </div>
  )
}

export default StatelessComponent;

Out

import React, {PropTypes, Component} from "react";
const StatelessComponent = () => {
  return <div className="test">
      Hello!
    </div>;
};

export default StatelessComponent;

Todo

  • Options to add more imports
  • PureComponent implementation

License

MIT © vijaysutrave

Package Sidebar

Install

npm i babel-plugin-react-import-extends

Weekly Downloads

1

Version

1.0.4

License

MIT

Last publish

Collaborators

  • vijaysutrave