@pleisto/unplugin-swc
TypeScript icon, indicating that this package has built-in type declarations

1.3.2-patch.2 • Public • Published

Fork from egoist/unplugin-swc and add vite3 support.

💛 You can help the author become a full-time open-source maintainer by sponsoring him on GitHub.


unplugin-swc

npm version

SWC plugin for Vite and Rollup.

Install

npm i unplugin-swc @swc/core -D

Usage

Vite or Rollup:

import swc from 'unplugin-swc'

export default {
  plugins: [
    // Vite plugin
    swc.vite()
    // Rollup plugin
    swc.rollup()
  ]
}

tsconfig.json

Following SWC options are inferred from tsconfig.json:

  • jsc.parser.syntax: based on file extension
  • jsc.parser.jsx, parser.tsx: compilerOptions.jsx
  • jsc.parser.decorators: compilerOptions.experimentalDecorators
  • jsc.transform.react.pragma: compilerOptions.jsxFactory
  • jsc.transform.react.pragmaFrag: compilerOptions.jsxFragmentFactory
  • jsc.transform.react.importSource: compilerOptions.jsxImportSource
  • jsc.transform.legacyDecorator: compilerOptions.experimentalDecorators
  • jsc.transform.decoratorMetadata: compilerOptions.emitDecoratorMetadata
  • jsc.keepClassNames: when decorator is enabled, because original class name is required by libs like type-graphql to generate correct graphql type

If you wish to disable this behavior and use .swcrc to control above jsc options, you can use tsconfigFile option:

// Or swc.rollup
swc.vite({
  tsconfigFile: false,
})

// It's also possible to use a custom tsconfig file instead of tsconfig.json
swc.vite({
  tsconfigFile: "./tsconfig.build.json",
})

Minification

Use the minify: true option, it only works for Rollup as Vite uses esbuild to minify the code and cannot be changed.

To have advanced control over the minification process, use jsc.minify option in .swcrc.

Vite

esbuild will be automatically disabled if you use this plugin.

Options

This plugin accepts all @swc/core options, except for jsc which should be configured in .swcrc instead, and some extra options that are specific to this plugin:

options.tsconfigFile

  • Type: boolean, string
  • Default: tsconfig.json

Disable the use of tsconfig file or specify a custom one.

options.include

  • Type: RegExp
  • Default: /\.[jt]sx?$/

Files to include in the transpilation process.

options.exclude

  • Type: RegExp
  • Default: /node_modules/

Files to exclude in the transpilation process.

options.jsc

  • Type: object

Custom jsc options to merge with the default one.

Sponsors

sponsors

License

MIT © EGOIST

/@pleisto/unplugin-swc/

    Package Sidebar

    Install

    npm i @pleisto/unplugin-swc

    Weekly Downloads

    2

    Version

    1.3.2-patch.2

    License

    MIT

    Unpacked Size

    72.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • darmody
    • clszzyh
    • borisding1994