0.0.3 • Published 5 years ago

babel-plugin-jsxo v0.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

 

Babel plugin that lets you write files with JSX only and converts them into components at compile time.

Sometimes I need the power of components but miss the simplicity of writing HTML files. (especially for presentation components).

This is a let the bots do the work solution.

 

You can create a file called about.js and put only the JSX you need, feels like HTML ❤️

<div>Hi, My name is Sid</div>

This will be transpiled to:

import React from 'react'

function About(props) {
  return <div>Hi, my name is Sid</div>
}

export default About

That component name is picked up from the file name.

 

Supports props:

<div>Hi my name is {props.name}</div>

Supports local variables:

const name = "Sid";

<div>Hi my name is {name}</div>

Supports imports:

import Input from './input';

<form>
  <label for="name">Name</label>
  <Input id="name"/>
</form>

Can be imported into other files

my-input.js

<input type="text" {...props} />

form.js

import Input from './my-input';

<form>
  <label for="name">Name</label>
  <Input id="name"/>
</form>

 

Usage

Step 1. Install dependency

npm install babel-plugin-jsxo --dev

yarn add babel-plugin-jsxo --dev

Step 2. Drop it in your babel config as a plugin

{
  "presets": ["@babel/preset-react"],
  "plugins": ["jsxo"]
}

 

Usage with create-react-app

It might be possible to write a babel macro for this, I'm not sure 🤷

 

like it?

:star: this repo

 

license

MIT © siddharthkp