没有 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 而不是 dart2jspub 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)