Liferay CLI ツール
Liferay CLI ツールは Liferay 2024.Q4/Portal GA129 以降廃止されており、将来削除される予定です。
Liferay CLI ツールを使用すると、Liferay の REST および GraphQL サービスとインターフェースする Angular、JavaScript、 React、共有バンドル、または Vue.js プロジェクトを簡単に作成できます。 liferayコマンドを使用すると、プロジェクトの生成、ビルド、デプロイを行うことができます。
Liferay CLIツールは、Liferay DXP 7.4+用のJavaScriptアプリケーションプロジェクトを作成するために使用されていた古いYeomanジェネレータに代わるものです。 古いバージョンではどちらの方法でも使用できますが、7.4以降ではYeomanジェネレーターの代わりにCLIツールを使用する必要があります。
CLIツールのインストール
次のコマンドを実行すると、CLIツールがローカルシステムにインストールされます。
npm install -g @liferay/cli
CLI ツールをグローバルにインストールしたくない場合は、 npxを使用して、ツールをインストールせずにコマンドを実行することもできます。 たとえば、 npx @liferay/cli new [project-name]を実行して、 新しいプロジェクトを生成 できます。
プロジェクトの生成
liferay new コマンドを使用して、新しい Client Extension または Liferay Platform プロジェクトを作成します。
-
ターミナルを開き、プロジェクトを作成したい場所に移動します。 次のコマンドを実行します。
liferay new [project-name] -
プロンプトで新規プロジェクトの名前を入力します。 この名前がIDとして使用されます。
-
リモートアプリケーションプロジェクトを作成するか、Liferay プラットフォームプロジェクトを作成するかを選択します。
注クライアント拡張機能 は、Liferay DXP インスタンスがアクセスしてアプリケーションとして使用できるリモートサーバー上でホストされます。 Liferayプラットフォームのプロジェクトは、Liferay DXP/Portalにデプロイ可能です。
-
プロンプトで、新規プロジェクトについて、人間が読み取り可能な説明を入力します。 デフォルト値は、「New Project」です。
-
プロジェクトのターゲットプラットフォームを選択します。 選択したターゲットプラットフォームによって、プロジェクトのデフォルトの依存関係と、プロジェクトのビルドに使用するルール(例えば、プロジェクトがターゲットプラットフォームの利用可能なすべてのJavaScript APIにアクセスする必要があるかどうか)が決定されます。
バージョン 7.1以降では、Liferay PortalまたはLiferay DXPのターゲットプラットフォームを選択することができます。 また、「Liferay Portal CE (not sharing platform's packages)」を選択すると、プロジェクトの
package.jsonファイルに@lifray/portal-agnosticターゲットを定義することができます。 この場合、プロジェクトにはLiferay Portalにバンドルされている追加のパッケージは含まれず、必要な依存関係はビルドツールとバンドルツールだけです。注リモートアプリケーションプロジェクトを選択した場合、バージョン7.4+しか選択できません。
プラットフォームのパッケージを共有しないオプションの代わりに特定のバージョンを選択した場合、プロジェクトは Liferay プラットフォームから React パッケージを取得します。 このオプションは、プロジェクトのサイズと手動依存を減らしますが、プロジェクトがそのバージョンにバンドルされているパッケージを使用するように制限されます。 -
プロンプトに表示されるオプションから、作成するプロジェクトの種類を選択します。
注リモートアプリケーションプロジェクトの作成を選択した場合、Reactタイプのみ選択可能です。
-
Liferayプラットフォームプロジェクトを作成することを選択した場合、ウィジェットのカテゴリーを選択します。 カテゴリーは、ページ編集時にウィジェットのリストでどのようにソートされるかを決定します。 デフォルト値は
category.sample(「Sample」ウィジェットカテゴリ用)ですが、任意のカスタム値に変更することが可能です。リモートアプリケーションプロジェクトを作成する場合、カスタム要素のHTMLタグ名を選択します。 名前には少なくとも1つのハイフン(
-)を含み、文字で始める必要があります。 次に、shadow DOMを使用してレンダリングするかどうかのプロンプト(yまたはn)に答えます。
CLIツールは、選択した名前で、新しいフォルダーにプロジェクトを作成します。
プロジェクトの構築
次のコマンドで、CLIツールで作成したプロジェクトをビルドします。
liferay build
これでプロジェクトがビルドされ、出来上がったJARファイルがプロジェクトのdist/ディレクトリに置かれます。 そして、そのJARを任意のLiferayインスタンスにデプロイすることができます。
CLIツールで作成されたプロジェクト内で、 npm run build を liferay buildのエイリアスとして実行することもできます。
プロジェクトのデプロイ
このコマンドを使用して、プロジェクトの dist/ ディレクトリに保存されている JAR ファイルをローカルの Liferay インストールにデプロイします ( liferay buildを実行した後)。
liferay deploy
このタスクを初めて実行すると、デプロイできるようにLiferayのインストールディレクトリを要求して、その回答をプロジェクトのフォルダにある .liferay.json ファイルに格納します。 このファイルで設定したディレクトリを変更することで、デプロイ先を変更します。
プロジェクトのビルドファイルの消去
古い成果物がビルドに干渉する場合は、 clean コマンドを使用して、 build コマンドと deploy コマンドによって作成された build/ と dist/ を削除します。
プロジェクトのディレクトリからこのコマンドを実行すると、これらのフォルダが削除されます。
liferay clean
Yeomanジェネレータで作成したプロジェクトのアップグレード
CLIツールのコマンドを実行するには、プロジェクトが正しく構成されている必要があります。 古いYeomanジェネレータ( yo liferay-js コマンドを使用)で作成されたプロジェクトは、まず新しいアーキテクチャにアップグレードする必要があります。
upgrade-project コマンドは、Yeoman ジェネレーターによって作成されたプロジェクトの一部のみをアップグレードします。 その他、プロジェクトに行った変更・カスタマイゼーションはそのまま残ります。 アップグレードを試みる前にプロジェクトをバックアップし、アップグレードが自分の変更と競合する場合に備えて、手動で変更する準備をしておいてください。
このコマンドを実行すると、Yeoman ジェネレーターで作成した React、Angular、または Vue.js プロジェクトが Liferay CLI ツールで動作するようアップグレードされます。
liferay upgrade-project
他のツールで作成したプロジェクトを適用する
また、他のツールで作成したプロジェクトをLiferay CLIツールでデプロイできるように適応させることも可能です。 これらのツールで作成したプロジェクトを適応することができます。
-
Reactの場合: create-react-app プロジェクトジェネレーター
-
Angularの場合: Angular CLI プロジェクトジェネレーター
これらの他のジェネレータで作成されたプロジェクトを適応させるには、プロジェクトのディレクトリからこのコマンドを実行します。
liferay adapt
CLIツールは、プロジェクトの依存関係から検出されたフレームワークに基づいて、プロジェクトを適応させます。 プロジェクトの package.json ファイルから、これらの特定の依存関係 ( dependency または devDependencyとしてリストアップされています) を探します。
-
Reactの場合:
react-scripts -
Angularの場合:
@angular/cli -
Vue.jsの場合:
@vue/cli-service