Skip to content

Commit 2963144

Browse files
committed
Modernize JavaScript build toolchain
Replace Rollup with Rolldown v1 for bundling (10-30x faster builds). The new config lives in rolldown.config.mjs and the build script is updated accordingly. Replace ESLint + neostandard with Oxlint v1 for linting (50-100x faster). The new config lives in .oxlintrc.json and is run via `pnpm lint`. Use `args: none` on no-unused-vars to skip unused function parameters, which serve as API documentation for callback signatures. Rename .github/workflows/eslint.yml to lint.yml accordingly. These choices are informed by ongoing upstream discussions about how best to align the neostandard and Rollup ecosystems with modern JavaScript tooling (neostandard/neostandard#350, rollup/plugins#2010). Drop Babel — transpilation is now handled by Rolldown's built-in Oxc transforms. The minimum browser targets are unchanged (Chrome 60+, Firefox 60+, iOS 12+, Safari 12+). Remove 9 unused npm devDependencies (`@babel/core`, `@babel/preset-env`, `@rollup/plugin-babel`, `@rollup/plugin-node-resolve`, `eslint`, `eslint-plugin-compat`, `neostandard`, `rollup`, `rollup-plugin-copy`). Clean up .gitignore (remove stale !.babelrc negation) and update Rakefile lint task to call the new `pnpm lint` script instead of `pnpm eslint`.
1 parent 7144c4d commit 2963144

13 files changed

Lines changed: 1868 additions & 2354 deletions

.babelrc

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: ESLint
1+
name: Lint
22

33
on:
44
push:
@@ -10,8 +10,8 @@ permissions:
1010
contents: read
1111

1212
jobs:
13-
eslint:
14-
name: ESLint
13+
lint:
14+
name: Lint
1515
runs-on: ubuntu-latest
1616
steps:
1717
- uses: actions/checkout@v7
@@ -23,4 +23,4 @@ jobs:
2323
- name: Install node dependencies
2424
run: pnpm install
2525
- name: Run JavaScript linter
26-
run: pnpm eslint
26+
run: pnpm lint

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,4 @@ test/log
1717

1818
node_modules
1919

20-
!.babelrc
21-
2220
pnpm-lock.yaml

.oxlintrc.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "./node_modules/oxlint/configuration_schema.json",
3+
"plugins": ["eslint"],
4+
"env": {
5+
"browser": true
6+
},
7+
"globals": {
8+
"QUnit": "readonly"
9+
},
10+
"categories": {
11+
"correctness": "error",
12+
"suspicious": "warn"
13+
},
14+
"rules": {
15+
"no-undef": "error",
16+
"no-unused-vars": ["warn", { "args": "none" }],
17+
"eqeqeq": ["error", "smart"],
18+
"no-var": "error",
19+
"prefer-const": "error"
20+
}
21+
}

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
## 25.0.0 / unreleased
44

5-
* [FEATURE] Breaking change: remove unused JavaScript source exports
5+
* [FEATURE] Breaking change: Remove unused JavaScript source exports
66
- Deep imports of `src/validators/local/*` must use named exports instead of the removed default object exports, for example `import { acceptanceLocalValidator } from '@client-side-validations/client-side-validations/src/validators/local/acceptance'`
77
- Remove the unused `addClass` and `removeClass` exports from `src/utils.js`
8-
- Explicitly remove dead \`inputs\` and \`validate_inputs\` entries from \`ClientSideValidations.selectors\`; only \`forms\` is read by the runtime`
8+
- Explicitly remove dead \`inputs\` and \`validate_inputs\` entries from \`ClientSideValidations.selectors\`; only \`forms\` is read by the runtime
9+
* [FEATURE] Breaking change: Replace Rollup with Rolldown v1 for bundling (10–30× faster builds)
10+
* [FEATURE] Breaking change: Replace ESLint + neostandard with Oxlint v1 for linting (50–100× faster)
11+
* [FEATURE] Breaking change: Drop Babel — transpilation handled by Rolldown's built-in Oxc transforms (minimum browser targets are unchanged: Chrome 60+, Firefox 60+, iOS 12+, Safari 12+)
12+
* [ENHANCEMENT] Remove 9 unused npm devDependencies (smaller install footprint)
913

1014
## 24.0.0 / 2026-04-19
1115
* [FEATURE] Breaking change: Remove the jQuery runtime dependency and the old jQuery plugin aliases from the published JavaScript assets

Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ end
5555

5656
desc %(Lint JavaScript files)
5757
task :lint_javascript do
58-
run_pnpm_script 'eslint'
58+
run_pnpm_script 'lint'
5959
end
6060

6161
desc %(Regenerate JavaScript files)

0 commit comments

Comments
 (0)