![](/img/trans.png)
[英]Using “.value” of an <input> element works when run as Dart, fails when compiled to JavaScript
[英]Dart AST library fails when compiled
我正在構建一個使用Dart 的 AST 庫的程序,只要我使用 Dart 解釋器運行程序( dart filename.dart
),它就可以正常工作。
一旦我想編譯程序( dart compile filename.dart
),程序無法加載文件,我有這個堆棧跟蹤:
#0 _PhysicalFile.readAsStringSync (package:analyzer/file_system/physical_file_system.dart:184)
#1 FolderBasedDartSdk.languageVersion (package:analyzer/src/dart/sdk/sdk.dart:400)
#2 FeatureSetProvider.build (package:analyzer/src/dart/analysis/feature_set_provider.dart:143)
#3 AnalysisDriver._createFileTracker (package:analyzer/src/dart/analysis/driver.dart:1500)
#4 new AnalysisDriver (package:analyzer/src/dart/analysis/driver.dart:291)
#5 ContextBuilder.buildDriver (package:analyzer/src/context/builder.dart:119)
#6 ContextBuilderImpl.createContext (package:analyzer/src/dart/analysis/context_builder.dart:94)
#7 new AnalysisContextCollectionImpl (package:analyzer/src/dart/analysis/analysis_context_collection.dart:55)
#8 _createAnalysisContext (package:analyzer/dart/analysis/utilities.dart:125)
#9 resolveFile (package:analyzer/dart/analysis/utilities.dart:115)
#10 main (package:DartProjects/dartprojects.dart:122)
#11 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299)
#12 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168)
我查看了源代碼以查看錯誤可能出在哪里,似乎在package:analyzer/src/dart/sdk/sdk.dart
它嘗試獲取語言版本文件,而不是使用 PATH知道我的 dart sdk 在哪里,它試圖在我的 InteliJ 文件夾中找到它,但失敗了。 另外,我嘗試在新創建的 VM 上運行它,但它也失敗了。
這是產生這個 output 的代碼:
import 'dart:io';
import 'package:analyzer/dart/analysis/utilities.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
void main(List<String> arguments) async {
final fileName = Directory.current.path + r'\test.dart';
var source = null;
try {
source = await resolveFile(path: fileName);
} catch (e, s) {
print('${s}');
return;
}
}
謝謝你的幫助。
不是一個好的解決方法。
將 Dart SDK 文件夾中的“版本”文件復制到項目的根目錄。
分析儀將接受並使用它。
如果您的編譯文件位於“bin”文件夾中,這將起作用。
這不是一個好的解決方法。
附言
這被稱為黑客攻擊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.