Angular 5 и Liferay
Блоги
Навигационные полоски
Не так давно Liferay добавили поддержку современных JavaScript фреймфорков с использованием liferay-npm-bundler. Причем речь шла не только о поддержке Angular, React, Vue и иже с ними - но и в целом об интеграции различных модульных концепций - портлетов с несколькими модулями-портлетами на странице, OSGI, NPM, AMD...
Проблемой liferay-npm-bundler было то, что он поддерживал только Angular 4, и то, что портлеты на Angular оказались не совместимы с Liferay SPA (при переходе на страницу с портлетом без перегрузки всей страницы вылетала ошибка инициализации).
Но разработчики Liferay не стоят на месте! Изучив проблемы, выявленные в первой версии они выпустили вторую версию бандлера. Этому посвящена целая серия постов на сайте Liferay:
- https://community.liferay.com/blogs/-/blogs/why-we-need-a-new-liferay-npm-bundler-1-of-3-
- https://community.liferay.com/blogs/-/blogs/why-we-need-a-new-liferay-npm-bundler-2-of-3-
- https://community.liferay.com/blogs/-/blogs/why-we-need-a-new-liferay-npm-bundler-3-of-3-
Хорошая новость: теперь поддерживается Angular 5 и ушла проблема поддержки Liferay SPA
Плохая (относительно) новость - поддерживается только Liferay 7.1 (благо беты уже достаточно стабильны).
Далее я хочу рассказать о том, как запустить пример портлета на Angular 5 на последней (на текущий момент) Liferay 7.1 Beta 3.
Для начала берем исходники из github.
Далее надо исправить gradle.properties, прописав в нем использование нужной версии Liferay:
liferay.workspace.bundle.url=https://cdn.lfrs.sl/releases.liferay.com/portal/7.1.0-b3/liferay-ce-portal-tomcat-7.1-b3-20180611140920623.zip
Так же надо будет подправить файл modules/npm-angular5-portlet-say-hello/build.gradle изменив зависимость на portlet-api обратно на 2.0 (у меня при деплое сказал что не нашел portlet-api 3.0.0)
Далее штатный набор команд:
$ ./gradlew initBundle $ ./gradlew deploy $ blade server start
и мы получаем портал с портлетом на Angular 5.
Из проблем - на MacOS может вылезти ошибка
Bundling 20 dependencies... { Error: ENFILE: file table overflow, open '/Users/akakunin/work/liferay/liferay-npm-bundler-2-example/modules/npm-angular5-provider/node_modules/liferay-npm-bundler-plugin-replace-browser-modules/package.json' at Error (native)
лечится следующим набором команд:
$ echo kern.maxfiles=65536 | sudo tee -a /etc/sysctl.conf $ echo kern.maxfilesperproc=65536 | sudo tee -a /etc/sysctl.conf $ sudo sysctl -w kern.maxfiles=65536 $ sudo sysctl -w kern.maxfilesperproc=65536 $ ulimit -n 65536
Связанные объекты:
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.