Object destructuring inside namespaces causes other exports to disappear
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript, vite
- Área
- build-system
Línea de trabajo
Reproduce el ejemplo de namespace y desestructuración de objetos tanto en una compilación .ts como en una compilación .tsx usando vite-plugin-solid; después, compara la salida generada. Rastrea por qué el namespace .tsx transformado omite A.a y considera resuelto el problema cuando todas las exportaciones declaradas sigan disponibles en tiempo de ejecución.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have a file containing the following code:
namespace B {
export function c() { }
}
export namespace A {
export const { c } = B;
export function a() { }
export function b() { }
}
console.log(A);
When building it with vite it gets turned to this:
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.alfa = {}));
})(this, (function (exports) { 'use strict';
var B;
((B2) => {
function c() {
}
B2.c = c;
})(B || (B = {}));
exports.A = void 0;
((A2) => {
({ c: A2.c } = B);
function a() {
}
A2.a = a;
function b() {
}
A2.b = b;
})(exports.A || (exports.A = {}));
console.log(exports.A);
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
}));
And if I run it, it logs { c: [Function: c], a: [Function: a], b: [Function: b] }.
If I use vite-plugin-solid AND the file is a .tsx, the build result is the following:
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.alfa = {}));
})(this, (function (exports) { 'use strict';
let B;
(function (_B) {
function c() {}
_B.c = c;
})(B || (B = {}));
exports.A = void 0;
(function (_A) {
const {
c
} = B;
_A.c = c;
function b() {}
_A.b = b;
})(exports.A || (exports.A = {}));
console.log(exports.A);
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
}));
And it outputs { c: [Function: c], b: [Function: b] } when ran.
Why does "A.a" gets removed from the namespace?
Moreover, why does changing the code like this works?
namespace B {
export function c() { }
}
export namespace A {
export function a() { }
export function b() { }
export const { c } = B; // ← Moved on the bottom of the namespace
}
console.log(A);
- Lenguaje dominante
- TypeScript
- Estrellas
- 522
- Forks
- 72
- Merge medio
- 21 h 42 min
- PR fusionados (30 d)
- 35
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 solidjs/solid-vite-plugin
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
solidjs/solid-vite-plugin#205 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
solidjs/solid-vite-plugin#391 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
solidjs/solid-vite-plugin#390 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
solidjs/solid-vite-plugin#388 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
solidjs/solid-vite-plugin#387 ·
Los mantenedores suelen responder en 1 día
Todos los issues de solidjs/solid-vite-plugin
Issues similares
-
bug HemiStake
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
hemilabs/ui-monorepo#2413 ·
Los mantenedores suelen responder en 1 día
-
component/ui framework/react kind/bug language/javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
meshery/meshery#22216 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
company delete fails with 500 on any company that has activity (cost events, inbox dismissals)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
paperclipai/paperclip#14982 ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
lingdojo/kana-dojo#31515 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día