[Dart翻译]用Dart发布可执行的命令行应用程序。

394 阅读3分钟

原文地址:medium.com/flutter-com…

原文作者:medium.com/@ciplionat3…

发布时间:2019年12月4日 - 4分钟阅读

今天,我将创建一个可执行的命令行应用程序,并在pub.dev中发布该包。这个包将是关于在./lib目录下创建文件(.dart)。

灵感来自于Ionic的生成命令,在ionic中,你可以通过命令行生成页面、组件、提供者。所以我也想为flutter创建它。

第一步 (创建命令行应用程序)

从命令行创建它,stagehand是一个Dart命令行应用程序,它为你提供了创建Dart应用程序的模板。

// first of all to use the package we need to activate it with
// following command
$ pub global activate stagehand
// then We can create the command-line application
$ mkdir your_project_name
$ cd your_project_name
$ stagehand console-full

或者从你的Android Studio或IntelliJ Idea中创建。

第二步

让我们来制作我们的可执行文件,为了使我们的命令行应用程序可执行,我们需要更新我们的pubspec.yaml文件。

我更新了版本、主页和作者,使之成为以后的一个包。

另外,增加了args包,可以解析来自命令行的命令。

您在可执行文件下输入的名称必须与./bin/目录下的文件名一致。

例如,我们在 pubspec.yaml 文件中添加的可执行文件 flutter_generate 与 ./bin/flutter_generate.dart 文件匹配。

所以你可以重命名你的/bin/main.dart文件。

import 'package:args/args.dart';

main(List<String> arguments) {
  final ArgParser argParser = ArgParser();

  argParser.addOption("name", abbr: "n");

  ArgResults results = argParser.parse(arguments);

  if (results['name'] != null) {
    print('First executable that only print the given name ' + results['name']);
  } else {
    print('pub global run flutter_generate --name YourName');
  }
}

首先,我们创建ArgParser来解析命令、选项和标志。我添加了一个选项("name"),它只是打印给定的名字控制台。为了测试它,我们需要先激活我们的命令行应用程序(确保你配置你的路径)。

// if you are in your project root dir
pub global activate --source path .
// or just give the project path
pub global activate --source path ./path/to/your/projectDir

之后,我们可以用以下代码运行我们的第一个可执行文件

pub global run flutter_generate --name YourName
or
flutter_generate --name "make sure you configure the path"

要将你的命令行程序作为一个包发布到pub.dev.中,你需要添加LICENSE和示例项目来展示如何使用你的包。你需要添加LICENSE和演示如何使用你的包的示例项目。你可以阅读下面的文章来学习如何发布你的包。

medium.com/flutter-com…

TLDR: 在添加LICENSE和示例项目后,你可以使用pub lish命令来发布你的包,这是pub publish的快捷方式。

在发布软件包后,您可以使用以下方法激活您的命令行应用程序

pub global activate your_app_name
// my command-line app name is :flutter_generate so : 
pub global activate flutter_generate

flutter_generate是做什么的包

flutter_generate是一个简单的可执行的命令行程序,它可以帮助你在你的项目lib目录下创建一个一致的结构。它是用命令行命令创建飞镖文件,并且它与Effective Dart风格指南兼容。例如以下命令可以创建这些文件

flutter_generate page home --stful

flutter_generate widget --name loginCard --stless。

flutter_generate page --name login --stless
flutter_generate page --name signUp --stful
flutter_generate repository --name Authentication

flutter_generate model --name UserModel
flutter_generate widget --name signUpCard --stful


flutter_generate主页,也可以查看我的另一个rename名包,它用rename --appname yourappname重命名应用程序名称。

你可以在twitter上@CipliOnatLinkedin上联系并关注我。

twitter.com/FlutterComm


www.deepl.com 翻译