ジェネレーター新年のクリーンアップ!

最近、ジェネレーターシステム(npm search yeoman-generator)に多くの変更と新機能が導入されました。もしあなたがyeoman/generatorをウォッチしていないなら、最新の変更を見逃しているかもしれません。ご心配なく、私たちは最近のすべてのリリースをチェンジログに記録しました

新年の始まりとともに、私たちは公式ジェネレーターが実装すべき最も重要な変更のTODOリストを作成することにしました。これにより、ジェネレーターがクリーンになるだけでなく、特に複数のジェネレーターを一緒に構成できるという、新たに追加される機能に対応できるようになります!

あなたは公式ジェネレーターのメンテナーではないかもしれませんが、私たちの指示に従い、これらのガイドラインに従うようにしてください。では、始めましょう!

ジェネレーターは.yo-rc.jsonファイルを生成する必要があります

.yo-rc.jsonファイルは設定を保存できるだけでなく、プロジェクトのルートフォルダを定義するためのマーカーとしても使用されます。これにより、ユーザーはサブディレクトリからyoコマンドを実行して、プロジェクト全体で作業できます。

また、これは構成されたジェネレーターがプロジェクトのルートを認識する方法でもあります。

少なくとも1回はファイルを生成するために、ジェネレーター内のどこかに次の行を追加してください

this.config.save();

もちろん、設定オブジェクトを使用してデータを保存している場合は、すでに作成されています。APIリファレンスの設定ストレージの詳細はこちらをご覧ください。

util.inheritの代わりに新しい.extend()メソッドを使用してください

最近まで、Baseジェネレーターを次のように拡張していました

var BlogGenerator = (module.exports = function() {
  generators.Base.apply(this, arguments);
  // ...
});

util.inherits(BlogGenerator, generators.Base);

Backbone.jsと同様の方法で同じことができるようになりました

var BlogGenerator = (module.exports = generators.Base.extend({
  /* prototype methods goes here */
}));

ご存知のとおり、私たちの次の大きなマイルストーンは、ジェネレーターを相互に構成できるようにすることです。これは、自分のジェネレーター内で外部ジェネレーターを使用できるようになり、ユーザーが複数のジェネレーターを使用してアプリを構築できるようになることを意味します(たとえば、SailsjsとAngular、Bootstrap、Jenkinsテストのサポートを使用してアプリを構築したいなど)。.extend継承シグネチャを使用すると、構成可能なYeomanエコシステムに統合できるようにジェネレーターを準備するのが簡単になります。

なお、継承ロジックを小さなスタンドアロンNPMモジュールに抽出しました。オーバーヘッドなしで、このような機能を自分のプロジェクトに追加するのは簡単です!

非推奨のテストメソッドの使用を削除してください

リリース0.16.0では、一部のテストメソッドが非推奨になり、他のメソッドが追加されました。非推奨はコンソールにログ記録されるようになったため、それらを必ず削除してください!

また、ヘルパーアサーションメソッドyeoman.assert名前空間で公開されるようになりました。

生成されたbower.jsonとpackage.jsonの依存関係を更新してください

いつものように、依存関係を更新してください。そのためにdavidツールを使用できます。

package.jsonのpeerDependenciesがチルダ~バージョン管理を使用していないことを確認してください

NPMのpeerDependenciesは正しく設定するのが難しいです。グローバルなnode_modulesフォルダーにインストールされるため、異なるパッケージ間で必要な互換性のないバージョンが原因でインストールエラーが発生することがよくあります。したがって、制限の厳しいバージョンの要件を使用して問題を悪化させないでください。

したがって、常に最小範囲(>=)または利用可能なすべてのバージョン(*)を使用してpeerDependenciesバージョンを定義することをルールにしてください。

{
  "peerDependencies": {
    // GOOD
    "grunt-cli": ">= 0.1.0",
    // GOOD
    "gulp": "*",
    // BAD - don't ever do this
    "generator-karma": "~1.2.0",
    "generator-commonjs": "1.2.0"
  }
}

これで、幸運を祈ります!

以上です!頑張って、素晴らしいジェネレーターを作り続けてください。

あなたがジェネレーターの作成者であれば、ジェネレーターシステムリポジトリの[ウォッチ]ボタンをクリックする必要があります。そうすることで、今後の計画や更新について常に最新情報を入手できます。また、[コンポーザビリティ]イシューも確認してください。これは次の大きなマイルストーンであり、フィードバックが必要です!


« 投稿をもっと見る