カスタム プラグイン (高度な)


まず、一般的なプログラムとして、gulp dev< の後のルート ディレクトリにあるすべてのプログラムをリストしたい場合、コア内にあまりにも多くのプライベートなカスタマイズ要件があってはいけないことを明確にする必要があります。 /code> html 関数は、gulp ftp アップロードが成功した直後にブラウザ ウィンドウをポップアップしたいと考えています。Si は、これは煩雑すぎるため、一般的なワークフローで統合関数として使用すべきではないと考えています。そのため、< code>プラグイン機能を提供します。 gulp dev 后列出根目录下所有的 html 功能,想在 gulp ftp 上传成功后直接弹出浏览器窗口,斯认为,侵入性过强,不应作为一个通用工作流的集成的功能,所以,我们提供了 插件 功能。

tmt-workflow 不仅提供了多个常用任务,还开放了各个常用任务的回调接口,您只需按 node 的方式编写插件,即可自行根据具体需求设计自己想要的功能,使得用户不需要通读 tmt-workflow 源码,就可以扩展自己想要的任务,既降低了学习成本,也降低了工作流的耦合度。

下面,我们以一个简单的示例说明如何使用 自定义插件 功能。

1. 配置 .tmtworkflowrc

   //插件功能
   //路径相对于 tasks/plugins 目录
  "plugins": {
    "build_devAfter": ["TmTIndex"],  //build_dev 任务执行后自动执行
    "build_distAfter": [],           //build_dist 任务执行后自动执行
    "ftpAfter": ["ftp"]              //ftp 任务执行后自动执行
  },

如上,每个字段属性对应各个任务,以数组形式指定插件,依次执行数组指定的插件,如我们给我们的插件命名为 TmTIndex

2. 在 _tasks/plugins/

tmt-workflow は複数の共通タスクを提供するだけでなく、各共通タスクのコールバック インターフェイスも開きます。ノード メソッドに従ってプラグインを記述するだけで、必要なものを設計できます。この機能により、ユーザーは tmt-workflow のソース コードを読まなくても必要なタスクを拡張できるため、学習コストが削減されるだけでなく、ワークフローの結合度も下がります。 。
以下では、簡単な例を使用して、カスタム プラグイン 関数の使用方法を説明します。

1. .tmtworkflowrc

var rd = require('rd');
var fs = require('fs');
var path = require('path');

//插件必需按 node 模块规范编写
module.exports = function (config) {
    // do some stuff ...
}

を上記のように設定し、各フィールドの属性を各タスクに対応させ、配列形式でプラグインを指定し、配列で指定されたプラグインを実行しますたとえば、プラグインに TmTIndex という名前を付けます。

2. _tasks/plugins/ ディレクトリに新しい TmTIndex.js を作成します

rrreee
上記のように、プラグインはノード モジュールの仕様に従って記述するだけで、欲しい機能。
ご覧のとおり、プラグインの拡張には 2 つのステップのみが必要で、実現したい特定の機能は特定のニーズに応じてカスタマイズできます。
プラグイン機能を通じて、内部で複数のカスタマイズニーズを拡張しています。わからないことがあれば、いつでも質問できます。 🎜🎜🎜🎜🎜🎜🎜🎜🎜