問題
- Liferayテーマビルダーを使用してCSSとJavascriptリソースの最小化を実行する方法。
環境
- Liferay DXP 7.4
解像度
-
Gradleから
gulpビルドテーマで基本的には、Gradleテーマのビルド・プロセスを
gulpに置き換えることで、node.jsバージョンのビルド・プロセスと同一ではないにしても、非常に似たものにすることだ。- ファイルシステムのどこかに空のフォルダを作る。
- この空のフォルダで、
環境のセットアップとテーマの作成から
yo liferay-themeのステップまで、すべての指示に従い、最初に作成したGradleベースのテーマと同じテーマ名とテーマベースを指定することを確認します。 - 生成されたテーマから以下のファイルをGradleベースのテーマにコピーする。
liferay-theme.jsonpackage.jsonpackage-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を展開する。