
Product
Introducing Tier 1 Reachability: Precision CVE Triage for Enterprise Teams
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
unplugin-react-components-updated
Advanced tools
npm i unplugin-react-components -D
// vite.config.ts
import Components from 'unplugin-react-components/vite'
export default defineConfig({
plugins: [
React(),
Components({ /* options */ }),
],
})
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-react-components/webpack')({ /* options */ })
]
}
Use components in templates as you would usually do, it will import components on demand, and there is no import and component registration required anymore! If you register the parent component asynchronously (or lazy route), the auto-imported components will be code-split along with their parent.
It will automatically turn this
export function App() {
return (
<CompA />
)
}
into this
import { CompA } from './CompA'
export function App() {
return (
<CompA />
)
}
Components({
dts: true, // enabled by default if `typescript` is installed
})
Once the setup is done, a components.d.ts will be generated and updates automatically with the type definitions. Feel free to commit it into git or not as you want.
Make sure you also add components.d.ts to your tsconfig.json under include
Use third-party components in your components as you would usually do, it will import components on demand, and there is no import and component registration required anymore!
At present, the number of UI supported is limited. If you want to provide more UI support, you are welcome to propose PR or you can use custom resolver.
Supported Resolvers:
import { AntdResolver, MuiResolver } from 'unplugin-react-components'
Components({
resolvers: [
AntdResolver(),
MuiResolver()
],
})
Components({
resolvers: [
() => [
/**
* in App.tsx
* import { Form } from 'formik'
*
* in components.d.ts
* const MikForm: typeof import('formik')['Form']
*
* **/
{ name: 'MikForm', from: 'formik', type: 'Export', orignalName: 'Form' },
/**
* in App.tsx
* import XXX fro
*
* in components.d.ts
* const Component: typeof import('ui')['default']
*
* **/
{ name: 'Component', from: 'ui', type: 'ExportDefault', orignalName: 'XXX' }
]
],
})
or you can use createResolver
import { createResolver } from 'unplugin-react-components'
Components({
resolvers: [
createResolver({
module: 'react-ui',
prefix: 'RUi',
exclude: (name) => {
return name.startsWith('Excluded')
},
})
]
})
Assume you are using antd
export default function App() {
return (
<Button />
)
}
we will transform this into
import { Button } from 'antd'
import 'antd/es/button/style/index.css'
export default function App() {
return (
<Button />
)
}
FAQs
On-demand components auto importing for React
We found that unplugin-react-components-updated demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.