Modernize build tooling: retire Bower, upgrade Gulp 3 to 5#7
Open
anisul wants to merge 3 commits into
Open
Conversation
Bower is unmaintained and increasingly hard to install on modern Node. Vendor libraries (jQuery, At.js, autosize, touchSwipe, device.js) are now regular npm dependencies, copied into src/vendor by a new `gulp vendor` task run via postinstall -- mirroring what Bower used to do. Yarn's lockfile is dropped in favor of a single npm-managed package-lock.json. Gulp 3's task API and its plugins (gulp-manifest, gulp-minify-css, opn, chalk) are unmaintained; gulpfile.js is rewritten for Gulp 5's ESM-based API using maintained replacements (gulp-clean-css, open, node:util's styleText). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
At.js v0.4.10's Controller.rect() calls
$inputor.caret({iframe}).caret('offset', pos) -- a two-call chain
that depends on Caret.js treating a bare object argument as
context configuration. The Caret.js version fetched fresh from
upstream for this migration dropped that legacy branch, so the
first call threw "Method [object Object] does not exist on
jQuery.caret".
That exception aborted View.show() before it could reposition the
popup, and aborted App.dispatch() before it could set the current
controller context -- breaking both popup placement and
arrow/tab/enter navigation.
Restore the legacy object-argument branch in $.fn.caret, matching
Caret.js v0.0.9 (contemporaneous with At.js v0.4.10, verified
against upstream history).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
AppCache has been removed from all major browsers for years; the manifest attribute and the app's applicationCache event handling are dead code. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/vendorvia a newgulp vendortask (runs onpostinstall, same trigger point Bower used)gulpfile.jsfor its ESM API and swapping unmaintained plugins for maintained equivalentsapp.appcachemanifest — AppCache has been removed from all major browsers for yearsWhy
Bower has been unmaintained for years and is increasingly painful to install on current Node. Standardizing on npm removes a second package manager and a second lockfile format.
Testing
npm install && npx gulp server; exercised the typing/suggestion flow manuallynpx gulp buildto confirm the production bundle still buildsNotes for reviewers
Doesn't touch dark mode (see #3) — that'll follow as a separate PR rebased on this one.
🤖 Generated with Claude Code