package.json types/main/module take precedence over conditional exports
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, nodejs, rollup, typescript
- Área
- build-system, tooling
Línea de trabajo
Reproduce el problema con el ejemplo de package.json usando microbundle --target node -f esm --generateTypes=true y compara después el resultado con tsc. Inspecciona cómo la compilación gestiona los campos exports, main, module y types de package.json junto con las opciones resolvePackageJsonExports y moduleResolution de tsconfig.json. Se considera hecho cuando las exportaciones condicionales resuelven los tipos declarados sin requerir un campo types en la raíz.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Possibly somewhat related to #1085.
Given a package.json:
{
"main": "./lib/index.cjs",
"module": "./lib/index.js",
"type": "module",
"dependencies": {
"some-client-with-matching-esm-and-tsconfig": "^x.x.x"
},
"exports": {
".": {
"require": {
"types": "./lib/index.d.ts",
"default": "./lib/index.cjs"
},
"import": {
"types": "./lib/index.d.ts",
"default": "./lib/index.js"
}
},
"./package.json": "./package.json"
},
_without root types property, running:
microbundle --target node -f esm --generateTypes=true
results in error:
(rpt2 plugin) Error: /Users/xxxx/dev/project/dependingclient.ts(197,32): semantic error TS2339: Property 'request' does not exist on type 'DependingClient.ts'.
at RollupContext.error (/Users/xxxx/dev/project/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:20259:3
Indicating it cannot find the types specified in the conditional exports.
Working solution: Specify "types": "./lib/index.d.ts" at root-level.
Also works: Remove the "main" and module property
It seems to me package.json conditional exports are not taking precedence over main/module/types
Not sure if related but when in tsconfig.json resolvePackageJsonExports is explicitly set to true (even weirder is that it would be true by default in node16 moduleresolution) , regardless of whether moduleResolution is set to node16, it throws
rpt2: options error TS5098: Option 'resolvePackageJsonExports' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'. Whereas running the build simple with
tsccauses no issues.
- Lenguaje dominante
- JavaScript
- Estrellas
- 8.1k
- Forks
- 358
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de developit/microbundle
-
CSS
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
developit/microbundle#1002 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
developit/microbundle#789 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
developit/microbundle#1100 · 4 comentarios ·
-
Disable minification by default Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
developit/microbundle#1093 · 3 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
developit/microbundle#1092 ·
Todos los issues de developit/microbundle
Issues similares
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Improve Title Support Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
georgestephanis/p2026#40 ·
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·