尝试将 proto 生成 dart 文件

hoa*_*uyy 5 dart proto flutter

我正在尝试使用 protoc-plugin 将 proto 文件生成为 dart 文件,请遵循此说明https://grpc.io/docs/quickstart/dart/但是当我运行此命令行时

protoc --dart_out=grpc:lib/proto --plugin=protoc-gen-dart=C:/src/flutter/flutter/.pub-cache/bin/protoc-gen-dart.bat -Iprotobuf protobuf/utils.proto
Run Code Online (Sandbox Code Playgroud)

它显示了这个错误:

'dart' is not recognized as an internal or external command,
operable program or batch file.
'pub' is not recognized as an internal or external command,
operable program or batch file.
--dart_out: protoc-gen-dart: Plugin failed with status code 1.
Run Code Online (Sandbox Code Playgroud)

我已经在我的 Android Studio 中安装了 dart 作为插件。我是否必须安装 dart SDK 并将其添加到环境变量路径才能工作?

更新

在我安装 dart sdk 并重新启动我的电脑后它就起作用了。

小智 4

看到 Flutter 标签,我认为 Flutter SDK 是您在安装 Dart SDK 之前所拥有的,如更新中所述。

如果您想在不需要单独安装 Dart SDK 的情况下执行此操作(因为 Flutter SDK 本身已经包含 Dart SDK),则环境必须知道以下内容位于何处:

  • 颤动SDK
    • 例如:export PATH="~/desktop/development/flutter/bin:$PATH"
  • Flutter SDK 中的 Dart SDK
    • 例如:export PATH="~/desktop/development/flutter/bin/cache/dart-sdk/bin:$PATH"
  • Flutter SDK 中的 Pub 缓存(protoc 插件所在的位置)
    • 例如:export PATH="$PATH":"$HOME/desktop/development/flutter/.pub-cache/bin"

上面给出的示例来自.bash_profilemacOS,但本质上,环境必须知道这 3 个在哪里,然后再尝试全局激活插件flutter pub global activate protoc_plugin,然后从 proto 文件生成 Dart 代码。