我有一些用 dart 编写的文件,我想将它们编译为 javascript 并包含在我的 Android 应用程序中运行的一些 html 文件中。
这些文件由一个 main 方法组成,然后有一个带有 3 个函数的 api 层,其他 javascript 代码将在运行时调用这些函数。非常重要的是,我尽可能少地包含 dart 的库(所以摇树是必须的),并且当摇树/缩小过程发生时,我需要确保 3 个 api 层函数不会被重命名 /优化了,因为它认为他们没有被调用?
我如何告诉 dart2js 保留某些函数的签名,而不是因为它认为它们没有被使用而将它们修剪掉?
您可以使用dart:js库的context属性,JsObject它允许您将变量和方法从 dart 公开到 JavaScript,并将由 dart2js 保留。在您的 main 方法中,只需包含context['jsMethodName'] = dartMethodName,然后在 JavaScript 中调用它。这是一个例子:
库.dart
import 'dart:js';
void main(){
print("main called!");
context['myMethod'] = myMethod;
}
void myMethod(){
print("My Method Called!");
}
Run Code Online (Sandbox Code Playgroud)
索引.html
<script src="library.dart.js"></script>
<script>
console.log(myMethod());
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
379 次 |
| 最近记录: |