reactjs - Vite s PNPM-om ne uspijeva zbog analize uvoza na `node_modules/.pnpm` paketu


Korištenje PNPM-a i Vite-a u monorepu rezultira sljedećim problemom, nemam pojma što za vraga ova [email _@[email  jesu, vjerojatno neka čudnost PNPM-a. Postoji li način da se onemogući ova provjera biblioteka?

9:02:46 PM [vite] Internal server error: Failed to parse source for import analysis because the content contains invalid JS s
yntax. If you are using JSX, make sure to name the file with the .jsx or .tsx extension.
  Plugin: vite:import-analysis
  File: /project/node_modules/.pnpm/[email _@[email /node_modules/vite/dist/clie
nt/env.mjs:4:0
  1  |  const context = (() => {
     |  ^
  2  |      if (typeof globalThis !== 'undefined') {
  3  |          return globalThis;
      at formatError (project/node_modules/.pnpm/[email _@[email /node_m
odules/vite/dist/node/chunks/dep-df561101.js:43993:46)
      at TransformContext.error (project/node_modules/.pnpm/[email _@types+node@20
.7.0/node_modules/vite/dist/node/chunks/dep-df561101.js:43989:19)
      at TransformContext.transform (project/node_modules/.pnpm/[email _@types+nod
[email /node_modules/vite/dist/node/chunks/dep-df561101.js:41740:22)
      at async Object.transform (project/node_modules/.pnpm/[email _@types+node@20
.7.0/node_modules/vite/dist/node/chunks/dep-df561101.js:44283:30)
      at async loadAndTransform (project/node_modules/.pnpm/[email _@types+node@20
.7.0/node_modules/vite/dist/node/chunks/dep-df561101.js:54950:29)
Failed to parse source for import analysis because the content contains invalid JS syntax. If you are using JSX, make sure to
 name the file with the .jsx or .tsx extension.

Što su ti + paketi?

Ovdje je moj razriješeni tsconfig

{
    "compilerOptions": {
        "composite": false,
        "declaration": true,
        "declarationMap": true,
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        "inlineSources": false,
        "isolatedModules": true,
        "preserveWatchOutput": true,
        "strictNullChecks": true,
        "skipLibCheck": true,
        "strict": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "noFallthroughCasesInSwitch": true,
        "target": "es2020",
        "useDefineForClassFields": true,
        "lib": [
            "es2020",
            "dom",
            "dom.iterable"
        ],
        "module": "esnext",
        "moduleResolution": "bundler",
        "allowImportingTsExtensions": true,
        "noEmit": true,
        "jsx": "react-jsx",
        "baseUrl": "./",
        "paths": {
            "@dashboard/*": [
                "./src/*"
            ]
        }
    },
    "references": [
        {
            "path": "./tsconfig.node.json"
        }
    ],
    "files": [
        "./src/main.tsx",
 ...
    ],
    "include": [
        "src"
    ],
    "exclude": [
        "node_modules"
    ]
}
tsconfig.node.ts
{
  "compilerOptions": {
    "composite": true,
    "skipLibCheck": true,
    "module": "ESNext",
    "moduleResolution": "bundler",
    "allowSyntheticDefaultImports": true
  },
  "include": ["vite.config.ts"]
}

Koristim vite-swc-react dodatak.

Dev deps

"typescript": "5.1.6",
"vite": "^4.4.5",
"@vitejs/plugin-react-swc": "^3.3.2",

Ne trebam nužno rješenje, samo naznaku o tome što se događa, jer sam trenutno potpuno izgubljen. Nema dokumenata niti bilo čega što dokumentira slična ponašanja.

Odgovor #1

Odgovor je bio potpuno nepovezan, moji definicije su nedostajale JSON.stringify... Pogreška je potpuno obmanjujuća, ali barem je riješena, ostavljam ovo za bilo koju drugu nesretnu dušu koja naiđe na ovo.

export default defineConfig({
    plugins: [react()],
    resolve: {
        alias: {
            "@dashboard": path.resolve(__dirname, "./src"),
        },
    },
    define: {
        'global': {},
        'process.env.ENVIRONMENT': JSON.stringify(process.env.ENVIRONMENT),
    }
});

Povezani članci