SlideShare uma empresa Scribd logo
Compartilhando
bibliotecas JS entre
Angular e React
no Liferay
Roselaine Marques
Sep 03, 2020
Consultant at Liferay Global Services
RoselaineMarq10
> Compreendendo a diferença entre projetos
JS e Hybrid em Liferay
> Vantagens de utilizar “Biblioteca
Compartilhada”
> Como criar um "Javascript de Biblioteca
Compartilhada"
> Como consumir um “Javascript de Biblioteca
Compartilhada” com Angular
> Como consumir um Javascript de Biblioteca
Compartilhada com React
Sumário
Você sabe conhece realmente os módulos que podem utilizar React,
Angular, ou Vue ?
yo liferay-js
1
2 blade create npm-angular-portlet
...Ambos oferecem a possibilidade,
mas com uma grande diferenca?
L
I
F
E
R
A
Y
Era digital , canais inteligentes
DO SEU PORTAL
USEM < NPM INSTALL > COM MODERAÇÃO!!!
Possíveis problemas ao não utilizar uma biblioteca compartilhada?
Perda de desempenho: Arquivos JS serão baixados para cada módulo (aqueles da
dependência) o que implica em um tempo de carregamento maior.
Possíveis conflitos entre as versões: Se você usar versões diferentes do angular,
pode haver conflitos.
Maior tempo de construção: por ter que empacotar o módulo com todas as suas
dependências, o tempo de construção é consideravelmente alto.
1
2
3
Vantagens de utilizar “Biblioteca Compartilhada”,
evitar os problemas acima XD…
e alguns mais nao mencionados...
L
I
F
E
R
A
Y
Impacto dos Desafios
Como criar um "Javascript de Biblioteca Compartilhada"
Obrigatório: Node, Yeoman e NPM instalados
1. Primeiramente, é necessário instalar o generator-liferay-js em nível global, executando o
seguinte comando:
npm install -g generator-liferay-js
2. Após a instalação, dentro do seu "liferay-workspace / modules" ou alguma outra pasta do
projeto que você está usando, execute o gerador com:
yo liferay-js
3. Escolha o tipo "Pacote compartilhado" e preencha o restante das informações
necessárias.
4. Abra src / index.js e adicione após init ():
console.log ('common-js-bundle está funcionando como provedor
...');
5. Agora um projeto angular, executando o gerador dentro de seu "liferay-workspace /
modules" ou alguma outra pasta de projeto que você está usando.
yo liferay-js
6. Escolha o tipo "Widget Angular" e preencha o restante das informações necessárias.
7. Abra o package.json e copie tudo em “dependências”.
Como consumir um “Javascript de Biblioteca Compartilhada” com Angular
8. Copie como “dependências” no package.json do módulo “Shared Bundle” criado anteriormente.
9. Dentro do módulo do tipo “Shared Bundle”, execute o seguinte comando para instalar as
bibliotecas / dependências adicionadas.
npm install
10. De volta ao módulo "Angular Widget", abra o arquivo .npmbundlerrc (abaixo continuaremos
com a configuração necessária)
a) Exclua todas as dependências declaradas dentro do módulo, o que nos garante que as
dependências declaradas no package.json do projeto não serão adicionadas ao
construir o .jar, adicionando o seguinte:
"exclude":{
"*":true
},
b. Importe todas as dependências que você precisa consumir do módulo "Pacote
Compartilhado". Podemos fazer isso através de "config / import" + o nome do provedor. Deve se
parecer mais ou menos com o exemplo abaixo:
"config": {
"importações": {
"common-js-bundle": {
"@ angular / animações": "10.2.2" …
c. Finalmente, se você deseja acessar index.js de seu provedor (projeto de pacote
compartilhado), você só precisa adicioná-lo sem o namespace dentro do "import"
"": {
"common-js-bundle": "^ 1.0.0"
}
● O código final no
arquivo .npmbundlerrc
será parecido com este:
L
I
F
E
R
A
Y
Como consumir um Javascript de Biblioteca Compartilhada com React
Repositório com exemplo:
https://github.com/RoselaineMarquesMontero/liferay-workspace-shar
ed-library
Mais informações:
How to use Shared Library Javascript with React -
https://liferay.dev/en/b/how-to-use-shared-library-javascript-with-ang
ular-liferay
How to use Shared Library Javascript with Angular -
https://liferay.dev/en/b/how-to-use-shared-library-javascript-with-rea
ct-in-liferay

Mais conteúdo relacionado

Mais procurados

React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
Jefferson Mariano de Souza
 
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Bruno Rodrigo S. Souza
 
Micro serviços ppt
Micro serviços pptMicro serviços ppt
Micro serviços ppt
Tiago Lorenzetti Canatelli, MBA
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Renato Groff
 
MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015
Kaio Valente
 
Microservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenosMicroservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenos
Vinícius Krolow
 
Aula16 - Jquery
Aula16 - JqueryAula16 - Jquery
Aula16 - Jquery
Jorge Ávila Miranda
 
Integração e APIs com Mulesoft
Integração e APIs com MulesoftIntegração e APIs com Mulesoft
Integração e APIs com Mulesoft
Tiago Lorenzetti Canatelli, MBA
 
ExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaroExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaro
Daniel Da Cunha Bueno
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
Cloves Moreira Junior
 
Startuping user stories
Startuping user storiesStartuping user stories
Startuping user stories
Fábio Santos
 

Mais procurados (13)

React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
 
Micro serviços ppt
Micro serviços pptMicro serviços ppt
Micro serviços ppt
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
 
MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015
 
Microservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenosMicroservices - Quebrando gigantes em pequenos
Microservices - Quebrando gigantes em pequenos
 
Aula16 - Jquery
Aula16 - JqueryAula16 - Jquery
Aula16 - Jquery
 
Integração e APIs com Mulesoft
Integração e APIs com MulesoftIntegração e APIs com Mulesoft
Integração e APIs com Mulesoft
 
ExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaroExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaro
 
Mono
MonoMono
Mono
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Startuping user stories
Startuping user storiesStartuping user stories
Startuping user stories
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 

Semelhante a LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Liferay - 2021-06-30

Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQuery
info_cimol
 
J query apostila - noções básicas
J query   apostila - noções básicasJ query   apostila - noções básicas
J query apostila - noções básicasLuciano Marwell
 
JQuery - introdução ao
JQuery - introdução ao JQuery - introdução ao
JQuery - introdução ao
Daniel Filho
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Regis Machado
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Getúlio Strapazzon
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJS
Rodrigo Branas
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComunidade NetPonto
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
Vanessa Me Tonini
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
antonio sérgio nogueira
 
Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
André Ricardo Barreto de Oliveira
 
Eclipse user guide
Eclipse user guideEclipse user guide
Eclipse user guideLucas Cruz
 
Angular 2
Angular 2Angular 2
Angular 2
Benicio Ávila
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
Gustavo Lopes
 
Aula09 - Java Script
Aula09 - Java ScriptAula09 - Java Script
Aula09 - Java Script
Jorge Ávila Miranda
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
JugVale
 
jQuery - A poderosa Biblioteca JavaScript - Minicurso
jQuery - A poderosa Biblioteca JavaScript - MinicursojQuery - A poderosa Biblioteca JavaScript - Minicurso
jQuery - A poderosa Biblioteca JavaScript - Minicurso
Cloves Moreira Junior
 
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Cauê Alves
 
Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5
Dannyrooh F de Campos
 

Semelhante a LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Liferay - 2021-06-30 (20)

Introdução JQuery
Introdução JQueryIntrodução JQuery
Introdução JQuery
 
J query apostila - noções básicas
J query   apostila - noções básicasJ query   apostila - noções básicas
J query apostila - noções básicas
 
JQuery - introdução ao
JQuery - introdução ao JQuery - introdução ao
JQuery - introdução ao
 
J query basico
J query basicoJ query basico
J query basico
 
Plugin Maven no Eclipse
Plugin Maven no EclipsePlugin Maven no Eclipse
Plugin Maven no Eclipse
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJS
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
 
Eclipse user guide
Eclipse user guideEclipse user guide
Eclipse user guide
 
Angular 2
Angular 2Angular 2
Angular 2
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Aula09 - Java Script
Aula09 - Java ScriptAula09 - Java Script
Aula09 - Java Script
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
jQuery - A poderosa Biblioteca JavaScript - Minicurso
jQuery - A poderosa Biblioteca JavaScript - MinicursojQuery - A poderosa Biblioteca JavaScript - Minicurso
jQuery - A poderosa Biblioteca JavaScript - Minicurso
 
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.
 
Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5
 

Mais de Fernando Fernández

Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdfForget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Fernando Fernández
 
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdfLPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
Fernando Fernández
 
LPUG #18 - Agenda e Community Updates - 2023-01-18.pdf
LPUG #18 - Agenda e Community Updates - 2023-01-18.pdfLPUG #18 - Agenda e Community Updates - 2023-01-18.pdf
LPUG #18 - Agenda e Community Updates - 2023-01-18.pdf
Fernando Fernández
 
LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28
Fernando Fernández
 
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdfLPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
Fernando Fernández
 
LPUG #16 - Collection Providers - 2022-06-15.pdf
LPUG #16 - Collection Providers - 2022-06-15.pdfLPUG #16 - Collection Providers - 2022-06-15.pdf
LPUG #16 - Collection Providers - 2022-06-15.pdf
Fernando Fernández
 
LPUG #16 - Agenda e Community Updates - 2022-06-15.pdf
LPUG #16 - Agenda e Community Updates - 2022-06-15.pdfLPUG #16 - Agenda e Community Updates - 2022-06-15.pdf
LPUG #16 - Agenda e Community Updates - 2022-06-15.pdf
Fernando Fernández
 
LPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do LiferayLPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do Liferay
Fernando Fernández
 
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
Fernando Fernández
 
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
LPUG Meetup #14   Agenda e Community Updates - 2021-09-22LPUG Meetup #14   Agenda e Community Updates - 2021-09-22
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
Fernando Fernández
 
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
Fernando Fernández
 
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
Fernando Fernández
 
Entrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexosEntrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexos
Fernando Fernández
 
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
Fernando Fernández
 
LPUG Meetup #12 - Agenda e Community Updates
LPUG Meetup #12 - Agenda e Community UpdatesLPUG Meetup #12 - Agenda e Community Updates
LPUG Meetup #12 - Agenda e Community Updates
Fernando Fernández
 
LPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCONLPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCON
Fernando Fernández
 
LPUG #11 portal 7.3 'final' - 2020-12-09
LPUG #11   portal 7.3 'final' - 2020-12-09LPUG #11   portal 7.3 'final' - 2020-12-09
LPUG #11 portal 7.3 'final' - 2020-12-09
Fernando Fernández
 
LPUG #11 agenda e community updates - 2020-12-09
LPUG #11   agenda e community updates - 2020-12-09LPUG #11   agenda e community updates - 2020-12-09
LPUG #11 agenda e community updates - 2020-12-09
Fernando Fernández
 
LPUG #10 agenda e community updates - 2020-09-16
LPUG #10   agenda e community updates - 2020-09-16LPUG #10   agenda e community updates - 2020-09-16
LPUG #10 agenda e community updates - 2020-09-16
Fernando Fernández
 
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
Fernando Fernández
 

Mais de Fernando Fernández (20)

Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdfForget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
Forget Liferay. Use Liferay, Instead - DEVCON 2023.pdf
 
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdfLPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
LPUG #19 - Agenda e Community Updates - 2023-03-29.pdf
 
LPUG #18 - Agenda e Community Updates - 2023-01-18.pdf
LPUG #18 - Agenda e Community Updates - 2023-01-18.pdfLPUG #18 - Agenda e Community Updates - 2023-01-18.pdf
LPUG #18 - Agenda e Community Updates - 2023-01-18.pdf
 
LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28LPUG #17 - Agenda e Community Updates - 2022-09-28
LPUG #17 - Agenda e Community Updates - 2022-09-28
 
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdfLPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
LPUG #17 - Esqueçam o Liferay, usem antes Liferay - 2022-09-28.pdf
 
LPUG #16 - Collection Providers - 2022-06-15.pdf
LPUG #16 - Collection Providers - 2022-06-15.pdfLPUG #16 - Collection Providers - 2022-06-15.pdf
LPUG #16 - Collection Providers - 2022-06-15.pdf
 
LPUG #16 - Agenda e Community Updates - 2022-06-15.pdf
LPUG #16 - Agenda e Community Updates - 2022-06-15.pdfLPUG #16 - Agenda e Community Updates - 2022-06-15.pdf
LPUG #16 - Agenda e Community Updates - 2022-06-15.pdf
 
LPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do LiferayLPUG Meetup #15 - Reinvenção do Liferay
LPUG Meetup #15 - Reinvenção do Liferay
 
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02LPUG - Meetup  #15  - Agenda e Community Updates - 2021-03-02
LPUG - Meetup #15 - Agenda e Community Updates - 2021-03-02
 
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
LPUG Meetup #14   Agenda e Community Updates - 2021-09-22LPUG Meetup #14   Agenda e Community Updates - 2021-09-22
LPUG Meetup #14 Agenda e Community Updates - 2021-09-22
 
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
LPUG Meetup #13 - Novidades Liferay 7.4 CE - 2021-06-30
 
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30LPUG Meetup #13 - Agenda e community updates - 2021-06-30
LPUG Meetup #13 - Agenda e community updates - 2021-06-30
 
Entrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexosEntrega eficiente de conteúdos em sites complexos
Entrega eficiente de conteúdos em sites complexos
 
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
LPUG Meetup #12 - Vitórias Rápidas com Liferay 7.3
 
LPUG Meetup #12 - Agenda e Community Updates
LPUG Meetup #12 - Agenda e Community UpdatesLPUG Meetup #12 - Agenda e Community Updates
LPUG Meetup #12 - Agenda e Community Updates
 
LPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCONLPUG Meetup #12 - Destaques DEVCON
LPUG Meetup #12 - Destaques DEVCON
 
LPUG #11 portal 7.3 'final' - 2020-12-09
LPUG #11   portal 7.3 'final' - 2020-12-09LPUG #11   portal 7.3 'final' - 2020-12-09
LPUG #11 portal 7.3 'final' - 2020-12-09
 
LPUG #11 agenda e community updates - 2020-12-09
LPUG #11   agenda e community updates - 2020-12-09LPUG #11   agenda e community updates - 2020-12-09
LPUG #11 agenda e community updates - 2020-12-09
 
LPUG #10 agenda e community updates - 2020-09-16
LPUG #10   agenda e community updates - 2020-09-16LPUG #10   agenda e community updates - 2020-09-16
LPUG #10 agenda e community updates - 2020-09-16
 
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
LPUG Meetup #9 - Agenda e Community Updates - 2020-06-30
 

Último

Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
Jonathas Muniz
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 

Último (6)

Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 

LPUG Meetup #13 - Compartilhando bibliotecas JS entre Angular e React no Liferay - 2021-06-30

  • 1. Compartilhando bibliotecas JS entre Angular e React no Liferay Roselaine Marques Sep 03, 2020 Consultant at Liferay Global Services RoselaineMarq10
  • 2. > Compreendendo a diferença entre projetos JS e Hybrid em Liferay > Vantagens de utilizar “Biblioteca Compartilhada” > Como criar um "Javascript de Biblioteca Compartilhada" > Como consumir um “Javascript de Biblioteca Compartilhada” com Angular > Como consumir um Javascript de Biblioteca Compartilhada com React Sumário
  • 3. Você sabe conhece realmente os módulos que podem utilizar React, Angular, ou Vue ? yo liferay-js 1 2 blade create npm-angular-portlet ...Ambos oferecem a possibilidade, mas com uma grande diferenca?
  • 4. L I F E R A Y Era digital , canais inteligentes DO SEU PORTAL USEM < NPM INSTALL > COM MODERAÇÃO!!!
  • 5. Possíveis problemas ao não utilizar uma biblioteca compartilhada? Perda de desempenho: Arquivos JS serão baixados para cada módulo (aqueles da dependência) o que implica em um tempo de carregamento maior. Possíveis conflitos entre as versões: Se você usar versões diferentes do angular, pode haver conflitos. Maior tempo de construção: por ter que empacotar o módulo com todas as suas dependências, o tempo de construção é consideravelmente alto. 1 2 3 Vantagens de utilizar “Biblioteca Compartilhada”, evitar os problemas acima XD… e alguns mais nao mencionados...
  • 6. L I F E R A Y Impacto dos Desafios Como criar um "Javascript de Biblioteca Compartilhada"
  • 7. Obrigatório: Node, Yeoman e NPM instalados 1. Primeiramente, é necessário instalar o generator-liferay-js em nível global, executando o seguinte comando: npm install -g generator-liferay-js 2. Após a instalação, dentro do seu "liferay-workspace / modules" ou alguma outra pasta do projeto que você está usando, execute o gerador com: yo liferay-js 3. Escolha o tipo "Pacote compartilhado" e preencha o restante das informações necessárias. 4. Abra src / index.js e adicione após init (): console.log ('common-js-bundle está funcionando como provedor ...');
  • 8. 5. Agora um projeto angular, executando o gerador dentro de seu "liferay-workspace / modules" ou alguma outra pasta de projeto que você está usando. yo liferay-js 6. Escolha o tipo "Widget Angular" e preencha o restante das informações necessárias. 7. Abra o package.json e copie tudo em “dependências”. Como consumir um “Javascript de Biblioteca Compartilhada” com Angular
  • 9. 8. Copie como “dependências” no package.json do módulo “Shared Bundle” criado anteriormente. 9. Dentro do módulo do tipo “Shared Bundle”, execute o seguinte comando para instalar as bibliotecas / dependências adicionadas. npm install 10. De volta ao módulo "Angular Widget", abra o arquivo .npmbundlerrc (abaixo continuaremos com a configuração necessária) a) Exclua todas as dependências declaradas dentro do módulo, o que nos garante que as dependências declaradas no package.json do projeto não serão adicionadas ao construir o .jar, adicionando o seguinte: "exclude":{ "*":true },
  • 10. b. Importe todas as dependências que você precisa consumir do módulo "Pacote Compartilhado". Podemos fazer isso através de "config / import" + o nome do provedor. Deve se parecer mais ou menos com o exemplo abaixo: "config": { "importações": { "common-js-bundle": { "@ angular / animações": "10.2.2" … c. Finalmente, se você deseja acessar index.js de seu provedor (projeto de pacote compartilhado), você só precisa adicioná-lo sem o namespace dentro do "import" "": { "common-js-bundle": "^ 1.0.0" }
  • 11. ● O código final no arquivo .npmbundlerrc será parecido com este:
  • 12. L I F E R A Y Como consumir um Javascript de Biblioteca Compartilhada com React
  • 13. Repositório com exemplo: https://github.com/RoselaineMarquesMontero/liferay-workspace-shar ed-library Mais informações: How to use Shared Library Javascript with React - https://liferay.dev/en/b/how-to-use-shared-library-javascript-with-ang ular-liferay How to use Shared Library Javascript with Angular - https://liferay.dev/en/b/how-to-use-shared-library-javascript-with-rea ct-in-liferay