npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vite-plugin-react-js-as-jsx

v1.2.1

Published

vite plugin support for react with .js file

Downloads

313

Readme

本项目 fork 自 dravenww/vite-plugin-react-js-support

vite-plugin-react-js-as-jsx

vite 对 jsx 语法只认 tsx 和 jsx 后缀的文件,可是项目中有很多 js 类型的文件也是 jsx;

API

import vitePluginReactJsAsJsx from "vite-plugin-react-js-as-jsx";

const plugin = vitePluginReactJsAsJsx(babelPlugins, options);
  • babelPlguins:Array Babel 的插件列表。
  • options
    • jsxInject: Boolean 是否注入 "import React from 'react'", 默认为 true
    • rule: Regexp|Function|String 探测文件是否需要本插件进行处理。
    • include: Array<rule> 需要包含在内的规则数组。
    • exclude: Array<rule> 需要排除在外的规则数组。
    • ignoreNodeModules: Boolean 是否排除 node_modules 目录。默认为 true

在某些情况下,你可能需要处理从第三方导入的 '.js',可以在 'include' 中添加规则,'include' 规则高于 'exclude'。

示例:

import vitePlugin from "vite-plugin-react-js-as-jsx";
export default {
  plugins: [
    vitePlugin([], {
      jsxInject: true,
      include: ["node_module/some-third-party-lib"], // 表示some-third-party-lib 这个包下的代码需要本插件处理
    }),
  ],
};

安装


npm install --save-dev vite-plugin-react-js-as-jsx
or
yarn add vite-plugin-react-js-as-jsx

使用

import vitePlugin from 'vite-plugin-react-js-as-jsx';
export default {
    plugins: [
        vitePlugin([], { jsxInject: true }),
    ]
}

备注

// 对于vite预构建会报错的问题,需要把配置改下
export default ({command, mode}) => {
  const rollupOptions = {};
  if(command === 'serve') {
    rollupOptions.input = []
  }
  return {
    build: {
      rollupOptions: rollupOptions
    },
    optimizeDeps: {
      entries: false,
    },
  }
}

参数

// 之所以支持这个配置,是因为cra4版本以后在子文件中不会引入react;
// 如果你的子文件已经引入了react,可以把这项设置为false;
// 而且vite本身的jsxInject只对x(jsx|tsx)结尾的文件类型提供支持;
// 默认会根据react大于等于17的版本,自动注入
jsxInject: true, // 是否为js文件注入 import React from 'react';默认为true

还支持传入其他 babel 的 plugin,数组类型。