如何生成代码以导出Dart中的节点功能?(How can I generate code to export functions for node in Dart?)

系统教程 行业动态 更新时间:2024-06-14 16:57:40
如何生成代码以导出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;

更多推荐

本文发布于:2023-04-13 12:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/f17c3082b2f6ccd30dca3e5b384525e4.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:节点   代码   功能   Dart   generate

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!