rollup-plugin-vue-jsx-compat

work with rollup-plugin-esbuild, and just for vue-jsx
12,282
Install
npm install rollup-plugin-vue-jsx-compat
Latest Version:0.0.6
License:MIT
Last Updated:Jun 11, 2021
Links: npm
Maintainer: xiangxiao

rollup-plugin-vue-jsx

work with rollup-plugin-esbuild, and just for vue-jsx

change foo.tsx

export default class Foo {
  render() {
    return <div className="hehe">hello there!!!</div>;
  }
}

to

import { createVNode, isVNode } from "vue";

const slice = Array.prototype.slice;
function vueJsxCompat(tag, props = null, children = null) {
  if (arguments.length > 3 || isVNode(children)) {
    children = slice.call(arguments, 2);
  }
  return createVNode(tag, props, children);
}

class Foo {
  render() {
    return /* @__PURE__ */ vueJsxCompat(
      "div",
      {
        className: "hehe",
      },
      "hello there!!!"
    );
  }
}

add vue-jsx-compat to transform vue-jsx

how to use

import vueJsx from "rollup-plugin-vue-jsx-compat"
import esbuild from "rollup-plugin-esbuild";

export default {
  ...
  plugins: [
    vueJsx(),
    esbuild({
      jsxFactory: "vueJsxCompat",
    }),
  ],
};

or you can add your config

vueJsx({
  // it only use same function name with esbuild
  jsxFactory: "vueJsxCompat",
  // if you not use default vus-jsx-transformer, you write your own file path in here
  path: "you file path",
});

Version History

Version Released License
0.0.6 MIT
0.0.5 MIT
0.0.4 MIT
0.0.2 MIT
0.0.1 MIT