Skip to content

feat: add transform-imports plugin#51

Draft
sapphi-red wants to merge 4 commits intomainfrom
feat/add-transform-imports-plugin
Draft

feat: add transform-imports plugin#51
sapphi-red wants to merge 4 commits intomainfrom
feat/add-transform-imports-plugin

Conversation

@sapphi-red
Copy link
Copy Markdown
Member

@sapphi-red sapphi-red commented Apr 8, 2026

This PR adds @rolldown/plugin-transform-imports which utilizes Rolldown's native magic string feature.

In the synthetic benchmark included in this PR, this plugin is

  • 1.36x faster than using @swc/plugin-transform-imports + @rollup/plugin-swc
  • 2.91x faster than using babel-plugin-transform-imports + @rolldown/plugin-babel

The implementation is based on swc-project/plugins/packages/transform-imports (Apache License 2.0) and test cases are also adapted from it.

Normally, the lazy barrel feature in Rolldown (currently experimental) resolves the performance problem. But in some edge cases, this plugin can improve the performance further by ignoring minor semantics.

@sapphi-red sapphi-red force-pushed the feat/add-transform-imports-plugin branch from 9325774 to f790660 Compare April 8, 2026 08:38
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Apr 8, 2026

Open in StackBlitz

@rolldown/plugin-babel

pnpm add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-babel@51 -D
npm i https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-babel@51 -D
yarn add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-babel@51.tgz -D

@rolldown/plugin-emotion

pnpm add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-emotion@51 -D
npm i https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-emotion@51 -D
yarn add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-emotion@51.tgz -D

@rolldown/plugin-jsx-remove-attributes

pnpm add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-jsx-remove-attributes@51 -D
npm i https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-jsx-remove-attributes@51 -D
yarn add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-jsx-remove-attributes@51.tgz -D

oxc-unshadowed-visitor

pnpm add https://pkg.pr.new/rolldown/plugins/oxc-unshadowed-visitor@51 -D
npm i https://pkg.pr.new/rolldown/plugins/oxc-unshadowed-visitor@51 -D
yarn add https://pkg.pr.new/rolldown/plugins/oxc-unshadowed-visitor@51.tgz -D

@rolldown/plugin-styled-jsx

pnpm add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-styled-jsx@51 -D
npm i https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-styled-jsx@51 -D
yarn add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-styled-jsx@51.tgz -D

@rolldown/plugin-transform-imports

pnpm add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-transform-imports@51 -D
npm i https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-transform-imports@51 -D
yarn add https://pkg.pr.new/rolldown/plugins/@rolldown/plugin-transform-imports@51.tgz -D

commit: f790660

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant