カスタムジェネレータは、Sailsコマンドライン用のプラグインの一種です。テンプレートを通して、sails new
またはsails generate
を実行したときに、Sailsプロジェクトで生成されるファイルとそのファイルの外観を制御します。
作業を容易にするために、最初にSailsプロジェクトを作成しましょう。まだ作成していない場合は、ターミナルに行ってタイプします
sails new my-project
次に、my-project
にcd
して、Sailsに新しいジェネレータのテンプレートを出力させます
sails generate generator awesome
ジェネレータを有効にするには、テストプロジェクトの.sailsrc
ファイルを使用して、Sailsにそのジェネレータを伝える必要があります。
既存のジェネレータを使用している場合は、NPMからインストールし、.sailsrc
でパッケージの名前を指定すればよいのですが、このジェネレータをローカルで開発している場合は、フォルダーに直接接続するだけです
{
"generators": {
"modules": {
"awesome": "./my-project/awesome"
}
}
}
注意:とりあえずは「awesome」のままにしておきますが、任意の名前でジェネレータをマウントできます。
.sailsrc
ファイルのキーの名前として選択した名前は、ターミナルからこのジェネレータを実行するために使用する名前になります(例:sails generate awesome
)。
ジェネレータを実行するには、sails generate
にジェネレータの名前を付け、目的の引数またはコマンドラインオプションを続けるとよいでしょう。たとえば、
sails generate awesome
ジェネレータが複数のプロジェクトで役立つ場合は、NPMパッケージとして公開することを検討してください(ただし、これによってジェネレータがオープンソースになるわけではありません。NPMはプライベートパッケージもサポートしています)。
まず、package.json
ファイルを開き、パッケージ名(例: "@my-npm-name/sails-generate-awesome")、作成者("My Name")、ライセンスなどの情報が正しいことを確認します。不明な場合は、「MIT」という優れたオープンソースライセンスの使用を検討してください。プライベートジェネレータを公開し、組織の所有物として保持したい場合は、「UNLICENSED」を使用します。
注意:NPMアカウントがまだない場合は、npmjs.comにアクセスしてアカウントを作成します。次に
npm login
を使用してセットアップします。
NPMにジェネレータを公開するための準備が整ったら、ターミナルでジェネレータのフォルダーにcd
して、以下を入力します
npm publish
新しく公開したジェネレータを試すには、例に挙げたSailsプロジェクト(my-project
)に戻り、インラインジェネレータを削除して、以下を実行します
npm install @my-npm-name/sails-generate-awesome
次に、例に挙げたSailsプロジェクトの.sailsrc
(my-project/.sailsrc
)を変更します
{
"generators": {
"modules": {
"awesome": "@my-npm-name/sails-generate-awesome"
}
}
}
そして、最後になりますが
sails generate awesome