Моя цель состоит в том, чтобы повторно использовать код из проекта Dart в JavaScript в качестве библиотеки и импортировать его непосредственно в Node.js или в пакет для JS на стороне клиента как CommonJS.
В настоящее время Dart2JS форсирует использование глобальных переменных. в частности self
, который недоступен в узле.
Данные экспортируются из main
:
@JS('module.exports')
//external NodeModuleExports get nodeModuleExports;
external dynamic get nodeModuleExports;
main() {
nodeModuleExports.foo = 'foo';
}
Это не будет работать по крайней мере, поскольку module
вместо этого обрабатывается как глобальноелокальной переменной nodeModuleExports.foo
компилируется в self.module.exports.foo
, а не module.exports.foo
.
Я предполагаю, что node_preamble должен решить эту проблему, но не уверен, как это можно применить к этомуcase.
Как добавить новые свойства в module.exports
JavaScript local в Dart?