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