NativeScript / NativeScript/ios
Support ES modules
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 150
- Forks
- 43
- Merge moyen
- 3 j 10 h
- PR mergées (30 j)
- 22
Description
The runtime currently handles commonjs modules - and if an import statement is encountered the application will crash.
The implementation is currently in ModuleInternal.mm
It would be awesome if es modules were supported, since v8 already supports them - we are just missing the implementation for loading them (same-ish logic as for commonjs)
A reduced example for supporting es modules: https://stackoverflow.com/a/52031275/2270725
The gist of it is - we have to call ScriptCompiler::CompileModule on the source
Local<Module> module;
if (!ScriptCompiler::CompileModule(isolate, &source).ToLocal(&module)) {
// if you have a v8::TryCatch, you should check it here.
return;
}
Unresolved questions:
- Can the runtime support both types and interop between them?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez dans ModuleInternal.mm en retraçant le chemin de chargement commonjs existant et comparez-le avec l’exemple fourni ScriptCompiler::CompileModule. Étudiez comment le chargement des modules V8 et l’interopérabilité avec commonjs devraient fonctionner. Le travail est terminé lorsque les instructions d’importation ne provoquent plus de plantage et que l’environnement d’exécution prend en charge l’interaction prévue entre les deux types de modules.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- ios, javascript
- Domaine
- mobile-dev
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100