如何生成代码以导出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"); }(I failed at getting this working in dart2js so I'm trying in dart dev compiler; but I'd happily take an answer for dart2j!).
If I have test.dart:
void activate() { print("activating..."); }and run dartdevc --modules node -o test.js test.dart the output is:
(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; })();This means my function is exported as __test.activate but what I need is for it just to be activate.
How can I control this? The JS I'm aiming for the equivilent of this:
exports.activate = function() { core.print("activating"); }最满意答案
这目前不可能,但我用一个包装来解决它:
var extension = require('./dartvsjs/extension.js'); exports.activate = extension.__lib__extension.activate; exports.deactivate = extension.__lib__extension.deactivate;This isn't currently possible but I worked around it with a wrapper:
var extension = require('./dartvsjs/extension.js'); exports.activate = extension.__lib__extension.activate; exports.deactivate = extension.__lib__extension.deactivate;更多推荐
发布评论