Skip to content
This repository was archived by the owner on May 15, 2021. It is now read-only.

tommyxu/babel-plugin-set-react-class-displayname

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

babel-plugin-set-react-class-displayname

Babel plugin that adds class name as static property displayName.

Disclaimer:

This project directly introduces the code from following git repositories:

  • Krizzu/babel-plugin-transform-react-class-displayname
  • opbeat/babel-plugin-add-react-displayname

What it does

  1. Detect the class declaration or class expression which has render() method (considering it as React.Component)
  2. Add displayName class property (static property) on it.

Nothing else.

Updates

1.0.2 Accept a merge request to support anonymous class (const A = class extends Component { ... }). The displayName is set to AnonymousClass. Here's the original comment from the contributor:

I personally find useful AnonymousClass as a hint rather than no displayName which then gets mangled when minifying the source.

1.0.3 Update doc to the latest.

Install:

npm i -D babel-plugin-set-react-class-displayname

or

yarn add --dev babel-plugin-set-react-class-displayname

Usage:

via .babelrc or webpack

{
   "plugins": ["set-react-class-displayname"],
}

via cli

babel --plugins set-react-class-displayname script.js

Note:

If You want to use this plugin with es2015 preset, you need to install transform class properties plugin

plugins: ['transform-class-properties']

Example:

In:

const component = class Class1 extends React.Component {
  render() {
    // ...
  }

};

class Class2 extends React.Component {
  render() {
    // ...
  }
}

Out:

const component = class Class1 {
  static displayName = "Class1";
};

class Class2 {
  static displayName = "Class2";
}

About

Injects a static class property 'displayName' into class

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%