1.0.0 • Published 2 years ago

load-jsx v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

load-jsx

A real-time transform for JSX ➜ JavaScript in NodeJs

npm version npm downloads Known Vulnerabilities Buy me a coffee


The Problem:

Setting up webpack and babel for a node project can be complicated, when maybe all you want is to render some react elements.

The Solution:

load-jsx is a plug-n-play module that will dynamically parse all JSX imports. This will allow you to use JSX markup across your project without needing to worry about build or compile steps


Features

  • No configuration / bundle step needed
  • plug-and-play with just ONE import
  • Import files(.jsx, .js) using JSX markup within your NodeJs projects

Bonus

  • Can insert Import React from '{react}' at the top of files that use JSX

Install

yarn add load-jsx or npm install --save load-jsx

constructor / setup

load-jsx Should be included before you import files with JSX markup in them.

The first step to import the lib

require('load-jsx')

If you want to have you React'ish libarty imported at the top of you JSX, use.

require('load-jsx')('preact')

this will add "import React from 'preact'" for example

You only need to require('load-jsx') once on the first JS file loaded ツ


Example

index.js

//Enable JSX
require("load-jsx")("react");

//Load server
require("./server");

Elem.jsx

const Elem = () => (<>
        <div>Hi World</div>
        <button onClick={(e) => alert('Hello You!')}>Click!</button>
    </>)
export default Elem

server.js

import ReactDOMServer from 'react-dom/server'
import express from 'express'
import Elem from './Elem.jsx'

const app = express()

app.get('/', (req, res) => {
    const jsx = ReactDOMServer.renderToString(<Elem />)

    res.send(`
        <!DOCTYPE html>
        <html> <body> ${jsx} </body> </html>
    `)
})

app.listen(3000, () => console.log(`App listening on http://localhost:3000}`))