Closed
Description
openedon Oct 8, 2022
A wishlist/collection of ideas that would be beneficial to support rapid frontend development on the warehouse codebase.
✅ Node Runtime Version
NodeJS 14 is in Maintenance mode, and becomes end of life in April 2023.
- Upgrade past Node 14 to 16 (LTS). Updates to
package-lock.json
,Dockerfile
,Dockerfile.static
, and any related docs: chore: Upgrade NodeJS to 16.x #12288 - remove entry from package.json and test setup: Remove unneeded NodeJS dependencies #12379
node-webcrypto-ossl (used solely in tests) emits a pile of compilation warnings during install. It has been deprecated as of Node 15, replaced by built-inwindow.crypto
capability. - remove other unnecessary libraries as a result of other upgrade tasks Remove unneeded NodeJS dependencies #12379
- update any other easy-to-update dependencies that we expect to continue using chore(deps): upgrade some JavaScript dependencies #12458
- Replace uglify-js with terser. Uglify-js doesn't support ES6 without passing it through other transpiliers like Babel, and we're targeting our own ES6 and more dependencies are moving to ES6, making the Babel config that much more complex. Webpack itself uses Terser, as does Parcel and others..
✅ Build Tooling
- upgrade to webpack 5 - chore(deps): upgrade webpack to 5.x and webpack-stream to 7.x #12715
- (big) replace gulp with webpack - Migrate frontend tooling to Webpack #12728 chore: handle sass warnings #12742
See prior work in Add developer version for frontend pipeline #6141
Stimulus JS
- Upgrade to version 3.x and update code/tests to conform - chore(deps): upgrade stimulus to v3 #12558
We’ve chosen Stimulus JS as our main JavaScript framework as it’s relatively lightweight, hooks on to HTMLdata
attributes pretty well. The current supported version (and available documentation is for@hotwired/stimulus
v3.x.
We’re on 2.x after I attempted an upgrade to 3, and stopped when I hit a pile of other blockages along the way (I forgot to document what happened, but may try again sometime soon). - Replace
clipboard
code with browser native APIs via Stimulus, remove dependency
We install external dependencyclipboard
to support click-copy, probably prior to wide adoption of browser APIs.
A lot of JavaScript functions in index.js
are non-Stimulus and loaded via docReady
.
See #3144 for an example.
- Convert Change Role code to Stimulus controller Convert "change roles" JS to a Stimulus controller #3144 - refactor: replace change roles with stimulus #12707
Misc
- Emit Jest Coverage metadata during static tests - test: emit jest coverage #12665
- Modernize Admin website - Modernize Admin Site #12747
- Remove deprecated
@babel/polyfill
and other unused Babel code - chore(deps): cleanup some babel #12758 - Replace deprecated
sass-lint
withstylelint
- Replace deprecated sass-lint for stylelint #12774
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment