最近、ジェネレーターシステム(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"
  }
}
これで、幸運を祈ります!
以上です!頑張って、素晴らしいジェネレーターを作り続けてください。
あなたがジェネレーターの作成者であれば、ジェネレーターシステムリポジトリの[ウォッチ]ボタンをクリックする必要があります。そうすることで、今後の計画や更新について常に最新情報を入手できます。また、[コンポーザビリティ]イシューも確認してください。これは次の大きなマイルストーンであり、フィードバックが必要です!
