1

我使用 Dart Editor 0.3.7_r18717(意味着编辑器是最新的(2013 年 2 月)

import 'dart:intl';

显示错误“找不到引用的源”

如果我通过 pub 导入包

import 'package:intl/intl.dart';

然后编译到 JS dart2js 失败并出现一些奇怪的错误......

我想要的只是这样的:

final String time = new DateFormat("HH:mm:ss","de").format(new DateTime.now());

根本不清楚为什么在这种情况下需要语言环境......

谢谢

[更新]
好的-我知道“奇怪的错误”没有任何意义-所以这是我导入以下两个包时的输出:

import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';

String getTime() {
    final String time = new DateFormat("HH:mm:ss","en_US").format(new DateTime.now());
    //final String time = "20:05:00";
return time;
}

输出

运行 dart2js...
使用快照 /Developer/dart/dart-sdk/lib/_internal/compiler/implementation/dart2js.dart.snapshot
写了 /Users/mikemitterer/dart/WebSockets.SAMPLE/web/out/jrelaisui.html_bootstrap.dart.js [410.0kb 在 5.3 秒内写入]
build.dart --machine --changed=web/jrelaisui.dart
文件:/Users/mikemitterer/dart/WebSockets.SAMPLE/build.dart
build.dart 返回错误代码 255

未捕获的错误:NoSuchMethodError:找不到方法:'_addFromInteger@0x36924d72'
接收方:空
论据:[80]
堆栈跟踪:
    #0 Object.noSuchMethod (dart:core-patch:1737:25)
    #1 int.+ (dart:core-patch:1324:33)
    #2 Parser.translateCharacter (包:analyzer_experimental/src/generated/parser.dart:4380:167)
    #3 Parser.computeStringValue (package:analyzer_experimental/src/generated/parser.dart:376:33)
    #4 Parser.parseStringLiteral (package:analyzer_experimental/src/generated/parser.dart:3451:76)
    #5 Parser.parsePrimaryExpression (package:analyzer_experimental/src/generated/parser.dart:3163:32)
    #6 Parser.parseAssignableExpression (package:analyzer_experimental/src/generated/parser.dart:837:51)
    #7 Parser.parsePostfixExpression (package:analyzer_experimental/src/generated/parser.dart:3061:51)

...

输出 - 清理源:

build.dart --machine --clean
文件:/Users/mikemitterer/dart/HelloWebComponent/build.dart
build.dart 返回错误代码 255

'package:html5lib/src/encoding_parser.dart':错误:第 65 行 pos 14:类 'EncodingBytes' 用不兼容的参数覆盖超类 'Iterable' 的函数 'skip'
  字符串跳过([CharPreciate skipChars]){
             ^

build.dart --machine --clean
文件:/用户/mikemitterer/dart/todomvc/build.dart
build.dart 返回错误代码 255

'package:html5lib/src/encoding_parser.dart':错误:第 65 行 pos 14:类 'EncodingBytes' 用不兼容的参数覆盖超类 'Iterable' 的函数 'skip'
  字符串跳过([CharPreciate skipChars]){

...

这就是我所说的“奇怪”:-)

4

2 回答 2

2

包语法是正确的,这应该有效:

import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';

main() {
  print(new DateFormat.yMd().format(new DateTime.now()));
}

你在说什么“奇怪的错误”?

于 2013-02-22T21:48:36.533 回答
0

进口“飞镖:国际”;导入它不起作用,因为它不是“核心”飞镖库之一,它必须作为一个包导入。您在 dart2js 中列出的错误看起来不像来自国际化代码,而是来自 web_ui 和analyzer_experimental 包。如果注释掉使用国际化的行并使用 dart2js 编译会发生什么?

于 2013-02-24T20:26:14.857 回答