vite plugin react swc
v3.7.1
使用SWC加速您的Vite Dev服務器
npm i -D @vitejs/plugin-react-swc
import { defineConfig } from "vite" ;
import react from "@vitejs/plugin-react-swc" ;
export default defineConfig ( {
plugins : [ react ( ) ] ,
} ) ;
該插件的選項有限,可以實現良好的性能並成為不可知論者。這是影響運行時行為的非配置選項的列表:
jsx runtime
始終是automatic
target
並默認為es2020
(請參閱devTarget
)控制JSX工廠從哪裡導入的位置。
@default
“ React”
react ( { jsxImportSource : "@emotion/react" } ) ;
啟用打字稿裝飾器。需要在TSCONFIG中experimentalDecorators
。
@default
false
react ( { tsDecorators : true } ) ;
使用SWC插件。在構建時間啟用SWC。
react ( { plugins : [ [ "@swc/plugin-styled-components" , { } ] ] } ) ;
在開發人員中設置SWC的目標。例如,這可以避免減少轉移的私人類方法。
有關生產目標,請參見https://vitejs.dev/config/build-options.html#build-target。
@default
“ ES2020”
react ( { devTarget : "es2022" } ) ;
覆蓋默認值包括列表(.ts,.tsx,.mts,.jsx,.mdx)。
這需要重新定義要包含的任何文件的配置(TS,MDX,...)。
如果您想在編譯JS上觸發快速刷新,請使用jsx: true
。如果需要,應由函數處理Node_Modules的排除。使用此選項在.js
文件中使用JSX是高度灰心的,並且可以在任何以後的版本中刪除。
react ( {
parserConfig ( id ) {
if ( id . endsWith ( ".res" ) ) return { syntax : "ecmascript" , jsx : true } ;
if ( id . endsWith ( ".ts" ) ) return { syntax : "typescript" , tsx : false } ;
} ,
} ) ;
對於React刷新正確工作,您的文件應僅導出React組件。我讀過的最好的解釋是蓋茨比文檔中的解釋。
如果發現出口不兼容的變化,則該模塊將無效,HMR將傳播。為了使與組件並肩導出簡單常數變得更容易,僅當模塊變化時,該模塊才會無效。
您可以使用此ESLINT規則捕獲錯誤並獲得更詳細的警告。
vite-plugin-swc-react-refresh
遷移插件的先前版本的文檔可在V2分支中找到
要遷移,請參閱此更改