Skip to content

Commit a260a26

Browse files
authored
chore: compute Node.js build target from engines.node (#5554)
**What's the problem this PR addresses?** Whenever we change the supported Node.js version we have to manually update the build target in multiple files. Ref yarnpkg/berry#5445 (review) **How did you fix it?** Automate it by computing the Node.js version to target for the builds with `semver.minVersion` and `engines.node`. **Checklist** - [x] I have read the [Contributing Guide](https://yarnpkg.com/advanced/contributing). - [x] I have set the packages that need to be released for my changes to be effective. - [x] I will check that all automated PR checks pass before the PR gets reviewed.
1 parent ccbd13c commit a260a26

File tree

12 files changed

+38
-13
lines changed

12 files changed

+38
-13
lines changed

.pnp.cjs

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.yarn/versions/8a86268c.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
declined:
2+
- vscode-zipfs
3+
- "@yarnpkg/builder"
4+
- "@yarnpkg/core"
5+
- "@yarnpkg/pnp"

babel.config.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
module.exports = {
22
targets: {
3-
node: `18.12.0`,
3+
node: `current`,
44
},
55
presets: [
66
[`@babel/preset-env`, {modules: `commonjs`}],
77
`@babel/preset-typescript`,
88
`@babel/preset-react`,
99
],
10-
ignore: [
11-
`**/*.d.ts`,
12-
`packages/yarnpkg-libzip/sources/libzip.js`,
13-
],
1410
};

packages/vscode-zipfs/package.json

+2
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,15 @@
9191
"devDependencies": {
9292
"@rollup/plugin-commonjs": "^21.0.1",
9393
"@rollup/plugin-node-resolve": "^11.0.1",
94+
"@types/semver": "^7.1.0",
9495
"@types/vscode": "^1.54.0",
9596
"@yarnpkg/fslib": "workspace:^",
9697
"@yarnpkg/libzip": "workspace:^",
9798
"esbuild": "npm:esbuild-wasm@^0.15.15",
9899
"rollup": "^2.59.0",
99100
"rollup-plugin-esbuild": "^3.0.2",
100101
"rollup-plugin-terser": "^7.0.2",
102+
"semver": "^7.1.2",
101103
"vsce": "^2.9.2"
102104
},
103105
"scripts": {

packages/vscode-zipfs/rollup.config.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import resolve from '@rollup/plugin-node-resolve';
33
import path from 'path';
44
import esbuild from 'rollup-plugin-esbuild';
55
import {defineConfig} from 'rollup';
6+
import semver from 'semver';
7+
8+
import pkg from './package.json';
69

710
const mode = process.env.NODE_ENV || `production`;
811

@@ -24,7 +27,7 @@ export default async () =>
2427
}),
2528
esbuild({
2629
tsconfig: false,
27-
target: `node18`,
30+
target: `node${semver.minVersion(pkg.engines.node).version}`,
2831
define: {
2932
document: `undefined`,
3033
XMLHttpRequest: `undefined`,

packages/yarnpkg-builder/sources/commands/build/bundle.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import path from
1111
import semver from 'semver';
1212
import {promisify} from 'util';
1313

14+
import pkg from '../../../package.json';
1415
import {findPlugins} from '../../tools/findPlugins';
1516

1617
const execFile = promisify(cp.execFile);
@@ -140,7 +141,7 @@ export default class BuildBundleCommand extends Command {
140141
plugins: [valLoader],
141142
minify: !this.noMinify,
142143
sourcemap: this.sourceMap ? `inline` : false,
143-
target: `node18`,
144+
target: `node${semver.minVersion(pkg.engines.node)!.version}`,
144145
});
145146

146147
for (const warning of res.warnings) {

packages/yarnpkg-builder/sources/commands/build/plugin.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import {Command, Option, Usage, UsageError} from
44
import {build, Plugin} from 'esbuild';
55
import fs from 'fs';
66
import path from 'path';
7+
import semver from 'semver';
78

9+
import pkg from '../../../package.json';
810
import {isDynamicLib} from '../../tools/isDynamicLib';
911

1012
const matchAll = /()/;
@@ -120,7 +122,7 @@ export default class BuildPluginCommand extends Command {
120122
plugins: [dynamicLibResolver],
121123
minify: !this.noMinify,
122124
sourcemap: this.sourceMap ? `inline` : false,
123-
target: `node18`,
125+
target: `node${semver.minVersion(pkg.engines.node)!.version}`,
124126
});
125127

126128
for (const warning of res.warnings) {

packages/yarnpkg-core/rollup.config.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import path from 'path';
55
import esbuild from 'rollup-plugin-esbuild';
66
import {terser} from 'rollup-plugin-terser';
77
import {defineConfig} from 'rollup';
8+
import semver from 'semver';
89
import {brotliCompressSync} from 'zlib';
910

11+
import pkg from './package.json';
12+
1013
function wrapOutput() {
1114
return {
1215
name: `wrap-output`,
@@ -43,7 +46,7 @@ export default defineConfig({
4346
}),
4447
esbuild({
4548
tsconfig: false,
46-
target: `node18`,
49+
target: `node${semver.minVersion(pkg.engines.node).version}`,
4750
define: {
4851
document: `undefined`,
4952
XMLHttpRequest: `undefined`,

packages/yarnpkg-core/sources/worker-zip/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/yarnpkg-pnp/package.json

+2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@
1616
"devDependencies": {
1717
"@rollup/plugin-commonjs": "^21.0.1",
1818
"@rollup/plugin-node-resolve": "^11.0.1",
19+
"@types/semver": "^7.1.0",
1920
"@yarnpkg/libzip": "workspace:^",
2021
"arg": "^5.0.2",
2122
"esbuild": "npm:esbuild-wasm@^0.15.15",
2223
"rollup": "^2.59.0",
2324
"rollup-plugin-esbuild": "^3.0.2",
25+
"semver": "^7.1.2",
2426
"tslib": "^2.4.0"
2527
},
2628
"scripts": {

packages/yarnpkg-pnp/rollup.config.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import resolve from '@rollup/plugin-node-resolve';
33
import path from 'path';
44
import esbuild from 'rollup-plugin-esbuild';
55
import {defineConfig} from 'rollup';
6+
import semver from 'semver';
67
import {brotliCompressSync} from 'zlib';
78

9+
import pkg from './package.json';
10+
811
function wrapOutput() {
912
return {
1013
name: `wrap-output`,
@@ -42,7 +45,7 @@ export default defineConfig([
4245
}),
4346
esbuild({
4447
tsconfig: false,
45-
target: `node18`,
48+
target: `node${semver.minVersion(pkg.engines.node).version}`,
4649
define: {
4750
document: `undefined`,
4851
XMLHttpRequest: `undefined`,
@@ -69,7 +72,7 @@ export default defineConfig([
6972
}),
7073
esbuild({
7174
tsconfig: false,
72-
target: `node18`,
75+
target: `node${semver.minVersion(pkg.engines.node).version}`,
7376
define: {
7477
document: `undefined`,
7578
XMLHttpRequest: `undefined`,
@@ -97,7 +100,7 @@ export default defineConfig([
97100
}),
98101
esbuild({
99102
tsconfig: false,
100-
target: `node18`,
103+
target: `node${semver.minVersion(pkg.engines.node).version}`,
101104
define: {
102105
document: `undefined`,
103106
XMLHttpRequest: `undefined`,

yarn.lock

+4
Original file line numberDiff line numberDiff line change
@@ -7848,12 +7848,14 @@ __metadata:
78487848
"@rollup/plugin-commonjs": "npm:^21.0.1"
78497849
"@rollup/plugin-node-resolve": "npm:^11.0.1"
78507850
"@types/node": "npm:^18.15.11"
7851+
"@types/semver": "npm:^7.1.0"
78517852
"@yarnpkg/fslib": "workspace:^"
78527853
"@yarnpkg/libzip": "workspace:^"
78537854
arg: "npm:^5.0.2"
78547855
esbuild: "npm:esbuild-wasm@^0.15.15"
78557856
rollup: "npm:^2.59.0"
78567857
rollup-plugin-esbuild: "npm:^3.0.2"
7858+
semver: "npm:^7.1.2"
78577859
tslib: "npm:^2.4.0"
78587860
languageName: unknown
78597861
linkType: soft
@@ -30250,13 +30252,15 @@ pem@dexus/pem:
3025030252
dependencies:
3025130253
"@rollup/plugin-commonjs": "npm:^21.0.1"
3025230254
"@rollup/plugin-node-resolve": "npm:^11.0.1"
30255+
"@types/semver": "npm:^7.1.0"
3025330256
"@types/vscode": "npm:^1.54.0"
3025430257
"@yarnpkg/fslib": "workspace:^"
3025530258
"@yarnpkg/libzip": "workspace:^"
3025630259
esbuild: "npm:esbuild-wasm@^0.15.15"
3025730260
rollup: "npm:^2.59.0"
3025830261
rollup-plugin-esbuild: "npm:^3.0.2"
3025930262
rollup-plugin-terser: "npm:^7.0.2"
30263+
semver: "npm:^7.1.2"
3026030264
tslib: "npm:^2.4.0"
3026130265
vsce: "npm:^2.9.2"
3026230266
languageName: unknown

0 commit comments

Comments
 (0)