NativeScript / NativeScript/ios
Support ES modules
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 150
- Forks
- 43
- Ø Merge
- 3 T. 10 Std.
- Gemergte PRs (30 T.)
- 22
Beschreibung
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?
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in ModuleInternal.mm, indem du den bestehenden commonjs-Ladepfad nachverfolgst und ihn mit dem bereitgestellten Beispiel ScriptCompiler::CompileModule vergleichst. Untersuche, wie das Laden von V8-Modulen und die Interoperabilität mit commonjs funktionieren sollten. Erledigt ist die Aufgabe, wenn Import-Anweisungen nicht mehr abstürzen und die Laufzeit die vorgesehene Interaktion zwischen beiden Modultypen unterstützt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- ios, javascript
- Bereich
- mobile-dev
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100