Skip to content

Upgrade Node.js to 18.20.8 LTS#3

Open
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
devin/1753786036-upgrade-nodejs
Open

Upgrade Node.js to 18.20.8 LTS#3
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
devin/1753786036-upgrade-nodejs

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented Jul 29, 2025

Upgrade Node.js runtime from >=8.15.1 to 18.x LTS

Summary

This PR upgrades the Node.js runtime requirements from the legacy >=8.15.1 to Node.js 18.20+ (LTS) across both bank-client and bank-server repositories. The upgrade required several compatibility workarounds due to the significant version jump and aging dependencies.

Key Changes:

  • Updated package.json engines field to require node: ">=18.0.0"
  • Updated .nvmrc files to specify Node.js 18.20.8
  • Updated documentation to reflect v18.20+ system requirements
  • [bank-client] Temporarily disabled offline-plugin due to Node.js 18/20 compatibility issues
  • [bank-client] Added NODE_OPTIONS=--openssl-legacy-provider flag to build script for Webpack 4.x compatibility
  • [bank-server] Added missing engines field to package.json

Review & Testing Checklist for Human

  • Verify PWA/offline functionality: The offline-plugin was disabled rather than updated. Confirm this doesn't break critical functionality or consider finding an alternative solution
  • Test production builds and deployments: Ensure the --openssl-legacy-provider workaround doesn't cause issues in production environments
  • Run comprehensive application testing: Verify all features work correctly with Node.js 18, especially authentication, data processing, and UI interactions
  • Address pre-existing code quality issues: 119+ linting errors were discovered during testing that should be resolved
  • Performance validation: Test application performance with the legacy OpenSSL provider flag to ensure no significant degradation

Recommended Test Plan:

  1. Install Node.js 18.20.8 using the updated .nvmrc files
  2. Run yarn install && yarn build in both repositories
  3. Start both applications and test critical user flows end-to-end
  4. Deploy to staging environment and verify production builds work correctly
  5. Run full test suites after addressing linting issues

Diagram

%%{ init : { "theme" : "default" }}%%
graph TB
    subgraph bank-client["bank-client Repository"]
        client-pkg["package.json<br/>(engines: node >=18.0.0)"]:::major-edit
        client-nvmrc[".nvmrc<br/>(18.20.8)"]:::major-edit
        client-readme["README.md<br/>(v18.20+ requirement)"]:::minor-edit
        webpack["webpack.prod.babel.js<br/>(disabled offline-plugin)"]:::major-edit
    end
    
    subgraph bank-server["bank-server Repository"]
        server-pkg["package.json<br/>(added engines field)"]:::major-edit
        server-nvmrc[".nvmrc<br/>(18.20.8)"]:::major-edit
        server-readme["README.md<br/>(v18.20+ requirement)"]:::minor-edit
    end
    
    nodejs["Node.js 18.20.8 LTS"]:::context
    
    client-nvmrc --> nodejs
    server-nvmrc --> nodejs
    client-pkg --> nodejs
    server-pkg --> nodejs
    
    webpack -.-> |"compatibility issue"| nodejs
    
    subgraph Legend
        L1["Major Edit"]:::major-edit
        L2["Minor Edit"]:::minor-edit  
        L3["Context/No Edit"]:::context
    end
    
    classDef major-edit fill:#90EE90
    classDef minor-edit fill:#87CEEB
    classDef context fill:#FFFFFF
Loading

Notes

  • The upgrade from Node.js 8.x to 18.x is a significant jump that required compatibility workarounds rather than proper dependency updates
  • The offline-plugin issue affects PWA functionality and should be addressed in a follow-up if offline capabilities are required
  • Pre-commit hooks are configured and working correctly with the new Node.js version
  • Both applications build successfully, but comprehensive runtime testing is recommended
  • Consider updating other aging dependencies (React 16.13.1, Webpack 4.x, NestJS 7.x) in future iterations

Session Details:

- Update .nvmrc from lts/dubnium to 18.20.8
- Update package.json engines field to require Node.js >=18.0.0
- Update README.md system requirements to Node.js v18.20+
- Note: offline-plugin compatibility issue with Node.js 18.x needs resolution

Co-Authored-By: Arthur Poon <arthur.poon@windsurf.com>
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

- Disable offline-plugin due to Node.js 18/20 compatibility issues
- Add --openssl-legacy-provider flag for Webpack 4.x compatibility
- Production build now works successfully with Node.js 18.20.8

Co-Authored-By: Arthur Poon <arthur.poon@windsurf.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants