如何自定义pub全局可执行文件

时间:2017-09-25 05:32:24

标签: dart

当我看到 $ HOME / .pub-cache / bin 可执行文件时,正常的模板是:

#!/usr/bin/env sh
# This file was created by pub v1.24.2.
# Package: <package>
# Version: <package_version>
# Executable: <package>
# Script: <package>
pub global run <package>:<package> "$@"

然而,stagehand

会有所不同
#!/usr/bin/env sh
# This file was created by pub v1.24.2.
# Package: stagehand
# Version: 1.1.6
# Executable: stagehand
# Script: stagehand
dart "$HOME/.pub-cache/global_packages/stagehand/bin/stagehand.dart.snapshot" "$@"

# The VM exits with code 253 if the snapshot version is out-of-date.
# If it is, we need to delete it and run "pub global" manually.
exit_code=$?
if [ $exit_code != 253 ]; then
  exit $exit_code
fi

pub global run stagehand:stagehand "$@"

我想知道如何在没有安装后黑客的情况下实现此自定义

1 个答案:

答案 0 :(得分:1)

不同之处在于stagehand注册了一个可执行文件。

请参阅https://github.com/dart-lang/stagehand/blob/be67e5a6647f1bdf4aa773e7a40ed75a534b92c4/pubspec.yaml#L22

这意味着您只需运行[B, A, C, D, F ...]就可以了。

这也意味着为该可执行文件创建了一个快照(正如您所注意到的那样)。

另见https://www.dartlang.org/tools/pub/pubspec#executables

在pubspec中添加一个可执行文件部分,你应该是金色的!

编辑:此外,您不会通过路径激活的包获得此功能。想法:确保您继续从当地来源运行。