SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Último

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

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 Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+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...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%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
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
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
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+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...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
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...
 

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?