Rumah  >  Soal Jawab  >  teks badan

Cara untuk mengkonfigurasi Vite untuk menyokong menggunakan sintaks JSX dalam fail JS

<p>Vite tidak membenarkan penggunaan sintaks JSX dalam fail .js secara lalai. </p> <p>Saya telah menamakan semula fail saya kepada <kod>.jsx</kod> (atau <kod>.tsx</kod>), tetapi saya mempunyai beberapa kebergantungan luaran yang tidak boleh dinamakan semula. </p> <p>Contoh ralat vite:</p> <pre class="brush:php;toolbar:false;">✘ [ERROR] Sambungan sintaks JSX tidak didayakan pada masa ini node_modules/somelib/src/someFile.js:122:11: 122 │ kembalikan <div/></pre> <p>Bagaimana untuk mengkonfigurasi Vite untuk menyokong ungkapan JSX dalam semua fail .js? </p>
P粉571233520P粉571233520443 hari yang lalu678

membalas semua(1)saya akan balas

  • P粉877719694

    P粉8777196942023-08-25 14:42:21

    Anda boleh menukar konfigurasi esbuild dengan menganggap semua fail js sebagai jsx menggunakan pilihan loader:

    // vite.config.ts
    import {defineConfig} from 'vite'
    
    // https://vitejs.dev/config/
    export default defineConfig(() => ({
      esbuild: {
        loader: "tsx", // OR "jsx"
        include: [
          // Add this for business-as-usual behaviour for .jsx and .tsx files
          "src/**/*.jsx",
          "src/**/*.tsx",
          "node_modules/**/*.jsx",
          "node_modules/**/*.tsx",
    
          // Add the specific files you want to allow JSX syntax in
          "src/LocalJsxInJsComponent.js",
          "node_modules/bad-jsx-in-js-component/index.js",
          "node_modules/bad-jsx-in-js-component/js/BadJSXinJS.js",
          "node_modules/bad-jsx-in-js-component/ts/index.ts",
          "node_modules/bad-jsx-in-js-component/ts/BadTSXinTS.ts",
    
          // --- OR ---
    
          // Add these lines to allow all .js files to contain JSX
          "src/**/*.js",
          "node_modules/**/*.js",
    
          // Add these lines to allow all .ts files to contain JSX
          "src/**/*.ts",
          "node_modules/**/*.ts",
        ],
      },
    }));
    

    Nota: Akan ada penalti prestasi apabila menggunakan pemuat .jsx untuk memuatkan fail .js.

    Jawapannya datang daripada perbincangan ini di GitHub Vite, menandakan jawapan yang salah (lama) sebagai "betul".

    Dikemas kini Mac 2023

    Jawapan asal dalam vite build中无法正常工作,只能在vite dev中正常工作。当前版本在vite@^4.0.0 berfungsi untuk kedua-duanya.

    Satu repositori contoh yang anda boleh klon dan menguji penyelesaian anda.

    balas
    0
  • Batalbalas