没有 IDE 的 dart2js 编译
dart2js compiling without IDE
我在 Ubuntu 服务器上使用 dart2js
将 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 添加脚本标签。
编辑
你的 HTML 在 运行 pub build
之前应该是这样的
<!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
总是 returns 正确的输出(Dart 或 JS)
我在 Ubuntu 服务器上使用 dart2js
将 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 添加脚本标签。
编辑
你的 HTML 在 运行 pub build
<!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
总是 returns 正确的输出(Dart 或 JS)