如何生成代码以导出 Dart 中节点的函数?
How can I generate code to export functions for node in Dart?
(我没能在 dart2js 中运行它,所以我在 dart dev 编译器中尝试;但我很乐意回答 dart2j!)。
如果我有test.dart
:
void activate() {
print("activating...");
}
和运行 dartdevc --modules node -o test.js test.dart
输出是:
(function() {
'use strict';
const dart_sdk = require('dart_sdk');
const core = dart_sdk.core;
const dart = dart_sdk.dart;
const dartx = dart_sdk.dartx;
const __test = Object.create(null);
let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
__test.activate = function() {
core.print("activating...");
};
dart.fn(__test.activate, VoidTovoid());
// Exports:
exports.__test = __test;
})();
这意味着我的函数导出为 __test.activate
,但我需要的只是 activate
.
我该如何控制它?我的目标是等效于此的 JS:
exports.activate = function() { core.print("activating"); }
这个 isn't currently possible 但我用包装器解决了它:
var extension = require('./dartvsjs/extension.js');
exports.activate = extension.__lib__extension.activate;
exports.deactivate = extension.__lib__extension.deactivate;
(我没能在 dart2js 中运行它,所以我在 dart dev 编译器中尝试;但我很乐意回答 dart2j!)。
如果我有test.dart
:
void activate() {
print("activating...");
}
和运行 dartdevc --modules node -o test.js test.dart
输出是:
(function() {
'use strict';
const dart_sdk = require('dart_sdk');
const core = dart_sdk.core;
const dart = dart_sdk.dart;
const dartx = dart_sdk.dartx;
const __test = Object.create(null);
let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
__test.activate = function() {
core.print("activating...");
};
dart.fn(__test.activate, VoidTovoid());
// Exports:
exports.__test = __test;
})();
这意味着我的函数导出为 __test.activate
,但我需要的只是 activate
.
我该如何控制它?我的目标是等效于此的 JS:
exports.activate = function() { core.print("activating"); }
这个 isn't currently possible 但我用包装器解决了它:
var extension = require('./dartvsjs/extension.js');
exports.activate = extension.__lib__extension.activate;
exports.deactivate = extension.__lib__extension.deactivate;