我正在使用dart2js
在我的Ubuntu服务器上将dart编译为JavaScript。
我可以使用简单的命令,例如print()
,但似乎无法使用DOM。
下面的代码返回null
。
除了包括编译的out.js
之外,我还需要使导入工作吗?
import 'dart:html';
void main() {
print(document.querySelector('body'));
}
HTML:
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="/css/f4cacce_main_1.css" />
<script src="/js/51de0d2_main_1.js"></script>
</head>
<body>
</body>
</html>
最佳答案
如果您手动导入out.js
,则问题可能出在HTML文件中。请添加到您的问题。
您应该使用pub build
而不是dart2js
(pub build
在内部使用dart2js
)。 pub build
负责为生成的JavaScript添加脚本标签。
编辑
运行pub build
之前,您的HTML应该看起来像这样
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="/css/f4cacce_main_1.css" />
</head>
<body>
<script type="application/dart" src="main1.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>
(假设
main1.dart
是包含您的Dart代码的文件)。您可以在Dartium中打开它,而无需构建JavaScript。
您还可以使用
pub serve
提供此服务,然后从Dartium或不支持Dart的浏览器中将其打开,并且pub serve
始终返回正确的输出(Dart或JS)关于dart - 没有IDE的dart2js编译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27933088/