Shopify App Vue Template v.3.5.0
v3.5.0 - Release Notes
What's New
Node 22 required
The minimum supported Node version is now 22 (up from 18), matching the @tsconfig/node22 base already used by the client. Update your local/CI runtime before upgrading.
- "node": ">=18.0.0"
+ "node": ">=22.0.0"Shopify CLI 4
@shopify/cli is bumped to ^4.3.0.
Dependency updates
Routine version bumps across the board, including:
@shopify/shopify-app-express→^7.0.1better-sqlite3→^12.11.1vite→^8.1.3,vue-tsc→^3.3.6(TypeScript branch)eslint,prettier,npm-run-all2, and other tooling packages
package.json cleanup
- Removed
pretty-quickfrom the server — it wasn't wired to any script or git hook. - Removed
npm-run-all2and@rushstack/eslint-patch/@vue/eslint-config-prettierduplicated in the client — unused there, already provided at the root (or dead weight for the JS branch's flat ESLint config). - Removed the stale root
mainfield, which pointed at a.jsentry point that no longer exists. - Fixed the
lintscripts breaking under PowerShell by quoting brace-glob patterns ("src/**/*.{js,vue,ts}"). - (TypeScript branch) Renamed the client's
type-checkscript totypecheckso the root'stypecheck:clientscript — which callsnpm run typecheck --workspace web/client— actually runs it. Previously this failed silently, meaning client typechecking was never running.
New: version bump scripts
Added workspace-aware version scripts to the root package.json:
npm run version:patch # 3.5.0 -> 3.5.1
npm run version:minor # 3.5.0 -> 3.6.0
npm run version:major # 3.5.0 -> 4.0.0Each bumps the root and both workspace packages together and re-syncs the lockfile, so the three package.json files never drift out of version sync again.
Bug fixes surfaced by lint
Getting the lint scripts actually running (see above) turned up a few pre-existing issues:
- A caught-and-rethrown error in the product creator service was missing
{ cause }, dropping the original stack trace. - Several unused variables in webhook handler stubs and the example billing config.
- (TypeScript branch) An unused parameter in the i18n router guard.
Docs
- README now points to express-typed-router — a companion package for typed Express routes and auto-generated API docs.
- Fixed the MySQL/PostgreSQL migration example in the FAQ, which still referenced the old
SQLiteSessionStorageimport instead ofBetterSQLiteSessionStorage. - (TypeScript branch) Folder structure diagram updated to show
.tsentry points instead of.js.
Upgrading from v3.4.0
- Make sure you're on Node 22+ before installing.
- Pull the latest changes, then run a fresh install to pick up the dependency bumps:
npm install
- If you had a custom
type-checkscript call anywhere in your own tooling (TypeScript branch only), update it totypecheckto match the renamed script.
No breaking API or session-storage changes in this release.
TypeScript version
A TypeScript variant of this template is available:
npx degit Mini-Sylar/shopify-app-vue-template#typescript your-app-nameThe TypeScript branch includes all of the above changes plus full type coverage across models, webhooks, middleware, and routes.