Support dynamic import under NodeJS
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
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, nodejs
- Área
- tooling
Línea de trabajo
Empieza por rastrear dónde se construye vm.Script y cómo afecta la opción nodeInstrumenter a ese flujo. Revisa la API importModuleDynamically de Node y el issue de Node enlazado antes de elegir un enfoque; se considerará terminado cuando la importación dinámica funcione en contextos de NodeJS que no sean ESM sin eliminar la compatibilidad con nodeInstrumenter.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In a non-ESM context normally import() can be used to bring in ESM code. Under this loader this will be true for browsers, but not NodeJS which does not include an implementation by default for scripts constructed with vm.Script.
Downstream this complicates extension development in VSCode as it means ESM packages can only be used if first transformed into a compatible syntax (usually by a bundler). Note that the extension development host appears to load extensions without using this loader, so such dynamic import restrictions will not be seen there.
At present, I can see 2 paths towards supporting dynamic import.
- Supply a callback via the
importModuleDynamicallyoption (this API and those which may be needed for the implementation are marked experimental, it may be worth waiting on https://github.com/nodejs/node/issues/37648) Forfeit thenodeInstrumenteroption so the implementation can be simplified to justrequire(by far easiest and not blocked by experimental API, but will be a breaking change)
EDIT 2023-03-13: On closer inspection, it appears I read the codepath wrong. This is not an option.
Downstream issue: https://github.com/microsoft/vscode/issues/130367
- Lenguaje dominante
- JavaScript
- Estrellas
- 181
- Forks
- 62
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 microsoft/vscode-loader
-
Support ES6 ModulesAbiertofeature-request
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
microsoft/vscode-loader#56 · 10 comentarios · 35 reacciones ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 45/100
microsoft/vscode-loader#44 ·
-
String format should check number of args against placeholders to detect mismatchesQuizá libre de nuevo @TylerLeonhardt la tomó hace 1886 días y no hay ningún pull request abierto. Abiertoenhancement
microsoft/vscode-loader#31 · 3 comentarios · 1 asignado ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 42/100
microsoft/vscode-loader#28 ·
-
BugAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 42/100
microsoft/vscode-loader#21 ·
Todos los issues de microsoft/vscode-loader
Issues similares
-
bug needs triage P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
pbakaus/impeccable#1143 ·
Los mantenedores suelen responder en 1 día
-
status: waiting for maintainer
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
mui/material-ui#49547 ·
Los mantenedores suelen responder en 1 día
-
next() is called twice when the request closes after busboy fails to startPosiblemente ocupada @NgoQuocViet2001 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[2.x] extension-manager: translation keys that changed meaning keep their old namesPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotype/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día