import-jsx

Require and transpile JSX on the fly

Usage no npm install needed!

<script type="module">
  import importJsx from 'https://cdn.skypack.dev/import-jsx';
</script>

README

import-jsx Build Status

Require and transpile JSX on the fly

  • Doesn't install any require() hooks
  • Auto-detects React pragma (React.createElement) and falls back to h pragma supported by Preact and others
  • Caches transpiled sources by default
  • Bundles in object rest spread transform

Install

$ npm install --save import-jsx

Usage

const importJsx = require('import-jsx');

const reactComponent = importJsx('./react');
const preactComponent = importJsx('./preact');
const customComponent = importJsx('./custom', {pragma: 'x'});

React

const React = require('react');

module.exports = <div />;

Preact

const {h} = require('preact');

module.exports = <div />;

Any JSX pragma

const x = (tagName, attrs, ...children) => {};

module.exports = <div />;

API

importJsx(moduleId, [options])

moduleId

Type: string

Module id.

options

pragma

Type: string
Default: h

Override JSX pragma.

pragmaFrag

Type: string
Default: Fragment

Override pragma for JSX fragments.

cache

Type: boolean
Default: true

Cache transpiled source code.

importJsx.create([options])

Factory method to create a version of importJsx() with pre-defined options. Useful when you need a custom pragma, but don't want to pass it along with each importJsx() call.

options

Type: object

Options to pass to importJsx().

// Before
const importJsx = require('import-jsx');

importJsx('./a', {pragma: 'x'});
importJsx('./b', {pragma: 'x'});

// After
const importJsx = require('import-jsx').create({pragma: 'x'});

importJsx('./a');
importJsx('./b');