問題
- Liferayテーマビルダーを使用してCSSとJavascriptリソースの最小化を実行する方法。
環境
- Liferay DXP 7.4
解像度
-
Gradleから
gulpビルド
テーマで基本的には、Gradleテーマのビルド・プロセスを
gulpに
置き換えることで、node.jsバージョンのビルド・プロセスと同一ではないにしても、非常に似たものにすることだ。- ファイルシステムのどこかに空のフォルダを作る。
- この空のフォルダで、
環境のセットアップとテーマの作成から
yo liferay-themeの
ステップまで、すべての指示に従い、最初に作成したGradleベースのテーマと同じテーマ名とテーマベースを指定することを確認します。 - 生成されたテーマから以下のファイルをGradleベースのテーマにコピーする。
liferay-theme.json
package.json
package-lock.json
- Gradleベースのテーマのトップ・レベルに新しいファイルgulpfile.jsを作成する:
'use strict'; var gulp = require('gulp'); var liferayThemeTasks = require('liferay-theme-tasks'); liferayThemeTasks.registerTasks({ gulp: gulp, pathDist: 'build/libs/', pathSrc: 'src/main/webapp/' });
- Liferayテーマジェネレータをインストールするときに、gulp経由で直接ビルドします。 次に、
gulp.js
ファイルの先頭に以下の行を追加する:
process.env.NODE_ENV = 'production';
- ドキュメントの
build.gradleの
最後に以下を追加する:
-
NODE_ENV
変数がproductionに
設定されていることを確認し、gulp buildが
CSSをminifyするようにする。 -
buildCSS
タスクをgulp buildへの
呼び出しに置き換える。 - すでにgulp buildでwarを生成したので、warタスクのアクションをクリアする
-
apply plugin: "com.liferay.node" tasks.getByPath('packageRunBuild').configure { environment "NODE_ENV", "production" } tasks.getByPath('buildCSS').configure { actions.clear() finalizedBy packageRunBuild } tasks.getByPath('war').configure { actions.clear() }
- 通常通り
ブレードgwを展開する
。