我有以下基本代码:
import 'package:jwt/json_web_token.dart';
main() {
final jwt = new JsonWebTokenCodec(secret:'***');
print(jwt.isValid('eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2NmYy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMDc2MTcxNDk0MjIzMjU3MTU5MTciLCJhdWQiOiJ5a2h5NVJVbEpNSGw4Tzc0bGJ3Z29GZVVkUkI0VzZKRiIsImV4cCI6MTQxNjUzNTk3NCwiaWF0IjoxNDE2NDk5OTc0fQ.K_xAuG_rIAFe-zFFqn8SqXby3aqAkRJP2HrOjMnNUu0'));
print(jwt.decode('eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2NmYy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMDc2MTcxNDk0MjIzMjU3MTU5MTciLCJhdWQiOiJ5a2h5NVJVbEpNSGw4Tzc0bGJ3Z29GZVVkUkI0VzZKRiIsImV4cCI6MTQxNjUzNTk3NCwiaWF0IjoxNDE2NDk5OTc0fQ.K_xAuG_rIAFe-zFFqn8SqXby3aqAkRJP2HrOjMnNUu0'));
}
然后,我进入 jwt 包并在解码函数中设置断点。当我尝试运行我的代码时,我收到消息:"源不可用源代码不适用于 JsonWebTokeCodec.decode() ",这很奇怪,因为我进入代码设置断点。是否可以在导入的库中设置断点?
会不会是我的项目结构搞砸了?该文件称为 server.dart
,位于名为 bin
的文件夹中。在项目的根目录中还有一个app.yaml
、Dockerfile
和一个package.json
文件。(我从应用引擎示例开始)
编辑:我直接从飞镖编辑器(绿色播放按钮,我想它pub serve
),根本不使用 appengine 包。我还删除了app.yaml
和dockerfile
,问题仍然存在。我还尝试创建一个新项目(货架模板项目),但是当编辑器在导入代码中的断点上中断时,仍然无法看到源代码。
我正在运行 Dart 1.8 的开发版本,当我重新安装 Dart 1.7.2 时,问题消失了。
这是因为调试还不适用于Dart AppEngine应用程序。
相关的错误应该被修复,但使用的google/dart-runtime
Docker映像仍然是Dart 1.7.2,它不包含修复。
参见
- 如何调试 Dart AppEngine 应用程序
- http://dartbug.com/21067
- https://groups.google.com/a/dartlang.org/forum/#!topic/cloud/OK1nJtg7AjQ