运行全局激活的 dart 包时权限被拒绝

问题描述 投票:0回答:2

我正在尝试开发一个命令行包,所以我按照以下步骤操作:

dart  create --template=package-simple package_name

然后使用以下命令全局激活包:

dart pub global activate --source path $(pwd)

请注意,我在文档中没有找到有关

--source path actual_path
的任何内容,但每当我仅将命令与
--source actual_path
一起使用时,我都会得到以下信息:

"/Users/user/Desktop/Workspace/package_name" is not an allowed value for option "source".

因此,在成功激活该包后,我尝试使用以下命令运行它:

package_name

但是我得到了这个:

zsh: command not found: package_name

发现这里的文档已经过时了,搜索本地目录后我发现实际目录是

global_packages
而不是
bin
,所以我改变了它。

现在,当我尝试

package_name
时,我得到:
zsh: permission denied: package_name

经过调查,我发现

package_name
global_packages
目录中的一个目录,并且它只包含
pubspec.lock
,所以我在文件和目录上尝试了
chmod a+x
,但无济于事。

进一步调查

global_packages
中包含另一个包裹
intl_utils
,我发现:

.packages       incremental
.dart_tool      bin             pubspec.lock

但是在终端上运行

intl_utils
也会给我带来同样的错误:
zsh: permission denied: intl_utils
我没有手动安装该包,但 VS Code 扩展 Flutter Intl 却安装了,而且似乎工作得很好。

现在我有两个问题:

  1. 由于 Flutter Intl 扩展完美运行,权限被拒绝了???
  2. 我的包中有一个文件
    bin/my_package.dart
    但它没有到达那里,我做错了什么吗?

我正在通过 flutter 运行 dart: Flutter(Channel master,2.13.0-0.0.pre.90,macOS 12.3 21E230 darwin-x64,区域设置 en-US)

dart --version

Dart SDK 版本:“macos_x64”上的 2.17.0-202.0.dev (dev)(2022 年 3 月 10 日星期四 20:55:41 -0800)

编辑#1

尝试过

dart pub global run package_name
并且它有效,但似乎它正在再次构建包,但我仍然需要以正确的方式使用它而无需长线。

编辑#2

创建我尝试过的应用程序

dart create -t console-full package_name
但结果仍然相同。

dart command-line
2个回答
0
投票

所以在搞乱并改变分支(很多)之后发现问题出在

pubspec.yaml
应该存在的地方:

executables:
  package_name: # you can add a custom path here if you want though 

我猜文档关于“bin”目录是正确的,但它让我想知道

global_packages
intl_utils


0
投票

我只是想补充一点,我遇到了类似的问题,但已经在 yaml 中声明了

package_name
。原来我必须删除
.dart_tool/pub/bin
文件夹。

sudo rm -r ./.dart_tool/pub/bin

我的猜测是我正在运行之前缓存的构建,这导致了问题。

© www.soinside.com 2019 - 2024. All rights reserved.