SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Building for the Web with Gradle
Eric Wendelin — Gradle Summit 2017
| 2
Eric Wendelin
@eriwen
stacktracejs.com
| 4
Java
C
C++
JavaScript
HTML
Other
Why the web is important to Gradle
6%
4%
7%
7%
21%
55%
GITHUB PUBLIC
SOURCE BYTES
#BigQuery hFps://git.io/vQfUx
| 5
Why the web is important to Gradle
13%
87%
GITHUB PUBLIC
SOURCE BYTES
Web
Technologies
#BigQuery hFps://git.io/vQfUx
| 6
• Gradle + JavaScript State of the Union
• OrchestraRng JS Tools with Gradle
• Tradeoffs and ConsideraRons
Agenda
Gradle + JavaScript
State of the Union
| 8
• Webpack for bundling
• Heavy framework compeRRon
• Progressive Web ApplicaRons
• Yarn and npm@5.0 steps forward in JS
dependency management
JS tools moving fast
| 9
• Full JVM — Gradle manages everything
• Full JS — NodeJS tools manage web assets
• Hybrid — Gradle orchestrates JS tools
Common Build Paradigms
| 10
• Full Java — Java tools manage everything
• Full JS — NodeJS tools manage web assets
• Hybrid — Gradle runs JS tools
Common Build Paradigms
OrchestraHng Node.js
Tools with Gradle
| 12
• Problem: Heterogeneous environments
• Problem: Unnecessary reprocessing of assets
• Problem: Non-incremental processing
Known OpportuniHes
| 13
• Problem: Heterogeneous environments
• Problem: Unnecessary reprocessing of assets
• Problem: Non-incremental processing
Known OpportuniHes
| 15
hFps://github.com/srs/gradle-node-plugin
| 16
• hFps://hub.docker.com/_/gradle/
• hFps://github.com/bmuschko/gradle-docker-plugin
• Gradle/Docker Talk Friday @ 1:55pm
• hFps://github.com/srs/gradle-node-plugin
• Gradle/Node Talk Friday @ 10:20am
Learn more
| 17
• Problem: Heterogeneous environments
• Problem: Unnecessary reprocessing of assets
• Problem: Non-incremental processing
Known OpportuniHes
| 18
Webpack Bundling
Ad-hoc Task Demo
| 19
Webpack Bundling
Custom Task Demo
hFps://edub.me/summit2017-1
| 20
Gulp ExecuHon
hFps://edub.me/summit2017-1
| 21
Look Familiar?
| 22
• Problem: Heterogeneous environments
• Problem: Unnecessary reprocessing of assets
• Problem: Non-incremental processing
Known OpportuniHes
| 23
• Linters like ESLint (maybe TSLint)
• Asset minificaRon and compression
• ExecuRng tests
• Some transpilers like Babel and Sass

(*) TypeScript is not safe w/o using its incremental compiler
Web tasks that can be incremental
| 24
• Linters like ESLint (maybe TSLint)
• Asset minificaRon and compression
• ExecuRng tests
• Some transpilers like Babel and Sass

(*) TypeScript is not safe w/o using its incremental compiler
Web tasks that can be incremental
CAUTION
| 25
hFps://edub.me/summit2017-2
IncrementalNodeExec
// IncrementalNodeExec.java
--continuous
Tradeoffs and
ConsideraHons
| 28
• Don't miss out on benefits from JS tools
• Use npm5 or Yarn for dependency
management
• Check in those lock files
• Use Webpack or Gulp, but orchestrate with
Gradle
General Guidance
| 29
• DLL Chunk Plugin recommended
• Fixed dependency versions recommended
Specific Webpack Guidance
| 30
• Should not be enabled blindly
• Tasks that do linking to naRve libraries (e.g.
npm install) are environment specific
• Symlinks mess with task output caching
• SomeRmes it's faster to build than reuse (Use
gradle-profiler!)
Build Cache Caveats
hFps://guides.gradle.org/using-build-cache/
| 31
• Increased mental overhead
• Overhead for some single invocaRons
• AddiRonal tooling investment
• Rich build info (build scans/history)
• BeFer average build speed
• OrganizaRon Velocity
Tradeoffs
| 32
• Make it easier for users to take advantage of
unique Gradle features
• Invest in gradle-node-plugin
• Integrate JS features into build scans
• Write beFer docs and guides
• More thoroughly research pain and opportunity
Short-Term PrioriHes
In Summary
| 34
• Work Avoidance
• Incremental builds
• Incremental tasks
• Local/Shared caching
• Unify front-end/back-end build processes
• Take advantage of rich build history
Advantages of Gradle Web OrchestraHon
| 35
• Requires iniRal investment
• Some tasks are tricky to implement in robust
ways & take advantage of Gradle features
• Not pracRcal for some project types
Disadvantages of Gradle Web OrchestraHon
| 36
More likely to benefit if:
• Your project is larger
• You already use Gradle
• Can adopt latest Gradle and NodeJS
• You have an aforemenRoned problem
Consider Your Projects
| 37
• Write or improve an example task around your
favorite node tool
• Write or improve a Gradle Guide

hFps://github.com/gradle/guides/issues/119
• File issues for gradle-node-plugin
• Provide specific suggesRons in #web Slack
Your ContribuHons Wanted
| 38
DMs open @eriwen
Extended Q&A in #web Slack channel
QuesHons? Feedback?
w
Thank You
Gradle Summit 2017

Weitere ähnliche Inhalte

Was ist angesagt?

Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestManageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Jarek Potiuk
 

Was ist angesagt? (19)

DevOps Toolchain v1.0
DevOps Toolchain v1.0DevOps Toolchain v1.0
DevOps Toolchain v1.0
 
Gradle build capabilities
Gradle build capabilities Gradle build capabilities
Gradle build capabilities
 
Gradle
GradleGradle
Gradle
 
Introduction to Grails
Introduction to GrailsIntroduction to Grails
Introduction to Grails
 
Neo4J and Grails
Neo4J and GrailsNeo4J and Grails
Neo4J and Grails
 
Drupal contributor HOWTO
Drupal contributor HOWTODrupal contributor HOWTO
Drupal contributor HOWTO
 
GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
 
Better java with design
Better java with designBetter java with design
Better java with design
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018
 
Code driven development in drupal
Code driven development in drupalCode driven development in drupal
Code driven development in drupal
 
Importance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCPImportance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCP
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
JHipster, modern web application development made easy
JHipster, modern web application development made easyJHipster, modern web application development made easy
JHipster, modern web application development made easy
 
Javantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - Android App Development in 2017 - Matej VidakovićJavantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - Android App Development in 2017 - Matej Vidaković
 
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestManageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
Devoxx Belgium 2017 - easy microservices with JHipster
Devoxx Belgium 2017 - easy microservices with JHipsterDevoxx Belgium 2017 - easy microservices with JHipster
Devoxx Belgium 2017 - easy microservices with JHipster
 
html5?
html5?html5?
html5?
 
ng4 webpack and yarn in JHipster
ng4 webpack and yarn in JHipsterng4 webpack and yarn in JHipster
ng4 webpack and yarn in JHipster
 

Ähnlich wie Building the Web with Gradle

S3.2_PRES_Single_Source_of_Truth_BMcCallum
S3.2_PRES_Single_Source_of_Truth_BMcCallumS3.2_PRES_Single_Source_of_Truth_BMcCallum
S3.2_PRES_Single_Source_of_Truth_BMcCallum
Bruce McCallum
 

Ähnlich wie Building the Web with Gradle (20)

Use Cases of #Grails in #WebApplications
Use Cases of #Grails in #WebApplicationsUse Cases of #Grails in #WebApplications
Use Cases of #Grails in #WebApplications
 
DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an Afterthought
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
 
Ruby in office time reboot
Ruby in office time rebootRuby in office time reboot
Ruby in office time reboot
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the Browser
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?
 
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation Portal
 
S3.2_PRES_Single_Source_of_Truth_BMcCallum
S3.2_PRES_Single_Source_of_Truth_BMcCallumS3.2_PRES_Single_Source_of_Truth_BMcCallum
S3.2_PRES_Single_Source_of_Truth_BMcCallum
 
2012 bad camp-project management tools and organization-v4
2012 bad camp-project management tools and organization-v42012 bad camp-project management tools and organization-v4
2012 bad camp-project management tools and organization-v4
 
October 2014 - DrupalCamp Atlanta - Digital Asset Management in Drupal
October 2014 - DrupalCamp Atlanta - Digital Asset Management in DrupalOctober 2014 - DrupalCamp Atlanta - Digital Asset Management in Drupal
October 2014 - DrupalCamp Atlanta - Digital Asset Management in Drupal
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
egacy-to-Windows Conversion: Your Migration Jump Start
egacy-to-Windows Conversion: Your Migration Jump Startegacy-to-Windows Conversion: Your Migration Jump Start
egacy-to-Windows Conversion: Your Migration Jump Start
 
Key alias dev standard final
Key alias   dev standard finalKey alias   dev standard final
Key alias dev standard final
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdfWessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
 
Web-Services.pptx
Web-Services.pptxWeb-Services.pptx
Web-Services.pptx
 
GraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdfGraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdf
 

Mehr von Eric Wendelin (8)

Gradle 3.0: Unleash the Daemon!
Gradle 3.0: Unleash the Daemon!Gradle 3.0: Unleash the Daemon!
Gradle 3.0: Unleash the Daemon!
 
JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!JavaScript + Jenkins = Winning!
JavaScript + Jenkins = Winning!
 
Test your Javascript! v1.1
Test your Javascript! v1.1Test your Javascript! v1.1
Test your Javascript! v1.1
 
Groovy-er desktop applications with Griffon
Groovy-er desktop applications with GriffonGroovy-er desktop applications with Griffon
Groovy-er desktop applications with Griffon
 
Intro to Hadoop
Intro to HadoopIntro to Hadoop
Intro to Hadoop
 
Javascript Stacktrace Ignite
Javascript Stacktrace IgniteJavascript Stacktrace Ignite
Javascript Stacktrace Ignite
 
Apache Avro and You
Apache Avro and YouApache Avro and You
Apache Avro and You
 
Testing Hadoop jobs with MRUnit
Testing Hadoop jobs with MRUnitTesting Hadoop jobs with MRUnit
Testing Hadoop jobs with MRUnit
 

Kürzlich hochgeladen

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 

Building the Web with Gradle

  • 1. Building for the Web with Gradle Eric Wendelin — Gradle Summit 2017
  • 4. | 4 Java C C++ JavaScript HTML Other Why the web is important to Gradle 6% 4% 7% 7% 21% 55% GITHUB PUBLIC SOURCE BYTES #BigQuery hFps://git.io/vQfUx
  • 5. | 5 Why the web is important to Gradle 13% 87% GITHUB PUBLIC SOURCE BYTES Web Technologies #BigQuery hFps://git.io/vQfUx
  • 6. | 6 • Gradle + JavaScript State of the Union • OrchestraRng JS Tools with Gradle • Tradeoffs and ConsideraRons Agenda
  • 8. | 8 • Webpack for bundling • Heavy framework compeRRon • Progressive Web ApplicaRons • Yarn and npm@5.0 steps forward in JS dependency management JS tools moving fast
  • 9. | 9 • Full JVM — Gradle manages everything • Full JS — NodeJS tools manage web assets • Hybrid — Gradle orchestrates JS tools Common Build Paradigms
  • 10. | 10 • Full Java — Java tools manage everything • Full JS — NodeJS tools manage web assets • Hybrid — Gradle runs JS tools Common Build Paradigms
  • 12. | 12 • Problem: Heterogeneous environments • Problem: Unnecessary reprocessing of assets • Problem: Non-incremental processing Known OpportuniHes
  • 13. | 13 • Problem: Heterogeneous environments • Problem: Unnecessary reprocessing of assets • Problem: Non-incremental processing Known OpportuniHes
  • 14.
  • 16. | 16 • hFps://hub.docker.com/_/gradle/ • hFps://github.com/bmuschko/gradle-docker-plugin • Gradle/Docker Talk Friday @ 1:55pm • hFps://github.com/srs/gradle-node-plugin • Gradle/Node Talk Friday @ 10:20am Learn more
  • 17. | 17 • Problem: Heterogeneous environments • Problem: Unnecessary reprocessing of assets • Problem: Non-incremental processing Known OpportuniHes
  • 19. | 19 Webpack Bundling Custom Task Demo hFps://edub.me/summit2017-1
  • 22. | 22 • Problem: Heterogeneous environments • Problem: Unnecessary reprocessing of assets • Problem: Non-incremental processing Known OpportuniHes
  • 23. | 23 • Linters like ESLint (maybe TSLint) • Asset minificaRon and compression • ExecuRng tests • Some transpilers like Babel and Sass
 (*) TypeScript is not safe w/o using its incremental compiler Web tasks that can be incremental
  • 24. | 24 • Linters like ESLint (maybe TSLint) • Asset minificaRon and compression • ExecuRng tests • Some transpilers like Babel and Sass
 (*) TypeScript is not safe w/o using its incremental compiler Web tasks that can be incremental CAUTION
  • 28. | 28 • Don't miss out on benefits from JS tools • Use npm5 or Yarn for dependency management • Check in those lock files • Use Webpack or Gulp, but orchestrate with Gradle General Guidance
  • 29. | 29 • DLL Chunk Plugin recommended • Fixed dependency versions recommended Specific Webpack Guidance
  • 30. | 30 • Should not be enabled blindly • Tasks that do linking to naRve libraries (e.g. npm install) are environment specific • Symlinks mess with task output caching • SomeRmes it's faster to build than reuse (Use gradle-profiler!) Build Cache Caveats hFps://guides.gradle.org/using-build-cache/
  • 31. | 31 • Increased mental overhead • Overhead for some single invocaRons • AddiRonal tooling investment • Rich build info (build scans/history) • BeFer average build speed • OrganizaRon Velocity Tradeoffs
  • 32. | 32 • Make it easier for users to take advantage of unique Gradle features • Invest in gradle-node-plugin • Integrate JS features into build scans • Write beFer docs and guides • More thoroughly research pain and opportunity Short-Term PrioriHes
  • 34. | 34 • Work Avoidance • Incremental builds • Incremental tasks • Local/Shared caching • Unify front-end/back-end build processes • Take advantage of rich build history Advantages of Gradle Web OrchestraHon
  • 35. | 35 • Requires iniRal investment • Some tasks are tricky to implement in robust ways & take advantage of Gradle features • Not pracRcal for some project types Disadvantages of Gradle Web OrchestraHon
  • 36. | 36 More likely to benefit if: • Your project is larger • You already use Gradle • Can adopt latest Gradle and NodeJS • You have an aforemenRoned problem Consider Your Projects
  • 37. | 37 • Write or improve an example task around your favorite node tool • Write or improve a Gradle Guide
 hFps://github.com/gradle/guides/issues/119 • File issues for gradle-node-plugin • Provide specific suggesRons in #web Slack Your ContribuHons Wanted
  • 38. | 38 DMs open @eriwen Extended Q&A in #web Slack channel QuesHons? Feedback?