From 112e80dc70ed724a4cf731879cfc4f8e455481bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Roma=C5=84czyk?= Date: Fri, 17 Nov 2023 11:55:24 +0100 Subject: [PATCH] [BREAKING] chore: update minimum node version to 18 (#430) * chore: bump required node version to v18 * refactor(repack): remove replaceAll shim * chore: upgrade @types/node to ^18 * chore: remove node 16 from CI test job * chore: use node v18 in @babel/preset-env * docs: change minimal node version to 18+ * chore: update yarn.lock * docs: update recommended Node version in docs * chore(repack): remove string.prototype.replaceall from dependencies * chore: update yarn.lock * chore: add changeset * chore: rework changeset --- .changeset/fast-geckos-wonder.md | 7 ++++++ .github/workflows/test.yml | 2 +- CONTRIBUTING.md | 4 ++-- packages/dev-server/babel.config.cjs | 2 +- packages/dev-server/package.json | 4 ++-- packages/init/package.json | 2 +- packages/repack/babel.config.js | 2 +- packages/repack/package.json | 5 ++-- packages/repack/src/index.ts | 1 - packages/repack/src/shims.ts | 5 ---- website/docs/getting-started.mdx | 4 ++-- yarn.lock | 34 +++++----------------------- 12 files changed, 25 insertions(+), 47 deletions(-) create mode 100644 .changeset/fast-geckos-wonder.md delete mode 100644 packages/repack/src/shims.ts diff --git a/.changeset/fast-geckos-wonder.md b/.changeset/fast-geckos-wonder.md new file mode 100644 index 000000000..a7fb5e071 --- /dev/null +++ b/.changeset/fast-geckos-wonder.md @@ -0,0 +1,7 @@ +--- +"@callstack/repack-dev-server": major +"@callstack/repack-init": major +"@callstack/repack": major +--- + +BREAKING CHANGE: Upgrade to Node 18, drop support for Node 16. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4a3320178..610a9073b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - node_version: ['16', '18', '20'] + node_version: ['18', '20'] os: [ubuntu-latest] steps: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dd33c7e07..8f91f7e44 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ We want this community to be friendly and respectful to each other. Please read ## Requirements -- Node 14+ (__recommended Node 16+__) +- Node 18+ - Yarn 3 ## Our Development Process @@ -15,7 +15,7 @@ All development is done directly on GitHub, and all work is public. ### Development workflow -> **Working on your first pull request?** You can learn how from this *free* series: [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). +> **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). 1. Fork the repo and create your branch from default branch (usually `main`) (a guide on [how to fork a repository](https://help.github.com/articles/fork-a-repo/)). 2. Run `yarn install` to install & set up the development environment. diff --git a/packages/dev-server/babel.config.cjs b/packages/dev-server/babel.config.cjs index b7282f597..6229a1780 100644 --- a/packages/dev-server/babel.config.cjs +++ b/packages/dev-server/babel.config.cjs @@ -4,7 +4,7 @@ module.exports = { '@babel/preset-env', { targets: { - node: 14, + node: 18, }, modules: false, }, diff --git a/packages/dev-server/package.json b/packages/dev-server/package.json index a4265731e..f74ffa201 100644 --- a/packages/dev-server/package.json +++ b/packages/dev-server/package.json @@ -27,7 +27,7 @@ ], "author": "zamotany ", "engines": { - "node": ">=14.x" + "node": ">=18" }, "publishConfig": { "registry": "https://registry.npmjs.org/", @@ -66,7 +66,7 @@ "@babel/preset-typescript": "^7.17.12", "@callstack/eslint-config": "^12.0.2", "@types/babel__code-frame": "^7.0.3", - "@types/node": "14", + "@types/node": "18", "@types/ws": "^8.5.3", "babel-plugin-add-import-extension": "^1.6.0", "eslint": "^8.16.0", diff --git a/packages/init/package.json b/packages/init/package.json index a4ecb1ad7..5eacd28c6 100644 --- a/packages/init/package.json +++ b/packages/init/package.json @@ -25,7 +25,7 @@ ], "engineStrict": true, "engines": { - "node": ">=16" + "node": ">=18" }, "type": "module", "scripts": { diff --git a/packages/repack/babel.config.js b/packages/repack/babel.config.js index 62cc96d39..980879fb8 100644 --- a/packages/repack/babel.config.js +++ b/packages/repack/babel.config.js @@ -4,7 +4,7 @@ const defaultConfig = { '@babel/preset-env', { targets: { - node: 14, + node: 18, }, // Disable CJS transform and add it manually. // Otherwise it will replace `import(...)` with `require(...)`, which diff --git a/packages/repack/package.json b/packages/repack/package.json index 10a495db3..84654c21a 100644 --- a/packages/repack/package.json +++ b/packages/repack/package.json @@ -33,7 +33,7 @@ "author": "zamotany ", "license": "MIT", "engines": { - "node": ">=14.x" + "node": ">=18" }, "publishConfig": { "registry": "https://registry.npmjs.org/", @@ -79,7 +79,6 @@ "react-refresh": "^0.14.0", "schema-utils": "^3.0.0", "shallowequal": "^1.1.0", - "string.prototype.replaceall": "^1.0.6", "tapable": "^2.1.1" }, "devDependencies": { @@ -97,7 +96,7 @@ "@types/jsonwebtoken": "^9.0.0", "@types/lodash.throttle": "^4.1.7", "@types/mime-types": "^2.1.1", - "@types/node": "^14.14.28", + "@types/node": "^18", "@types/react-dom": "^17.0.7", "@types/shallowequal": "^1.1.1", "babel-jest": "^28.1.1", diff --git a/packages/repack/src/index.ts b/packages/repack/src/index.ts index cc8239096..65fa91192 100644 --- a/packages/repack/src/index.ts +++ b/packages/repack/src/index.ts @@ -1,4 +1,3 @@ -import './shims'; export * as plugins from './webpack/plugins'; export * from './webpack/plugins/RepackPlugin'; export * from './webpack/utils'; diff --git a/packages/repack/src/shims.ts b/packages/repack/src/shims.ts deleted file mode 100644 index ca0ca9633..000000000 --- a/packages/repack/src/shims.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-ignore -import replaceAll from 'string.prototype.replaceall'; - -// `.replaceAll` has to be shimmed in Node 14 -replaceAll.shim(); diff --git a/website/docs/getting-started.mdx b/website/docs/getting-started.mdx index 58b2c17e1..c91c3aa54 100644 --- a/website/docs/getting-started.mdx +++ b/website/docs/getting-started.mdx @@ -16,8 +16,8 @@ If you're already familiar with JavaScript, React Native and Webpack, then you'l ## Minimum requirements -- `react-native` >= 0.69.0 -- Node >= 16 (**recommended Node 18 or newer**) +- `react-native` >= 0.70.0 +- Node >= 18 (**recommended Node 20 or newer**) If you're using older versions of React Native, you can still try using Re.Pack, but your mileage may vary as they are not officially supported. diff --git a/yarn.lock b/yarn.lock index bd88b8e72..ea599e6a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5116,7 +5116,7 @@ __metadata: "@fastify/sensible": ^4.1.0 "@fastify/static": ^5.0.2 "@types/babel__code-frame": ^7.0.3 - "@types/node": 14 + "@types/node": 18 "@types/ws": ^8.5.3 babel-plugin-add-import-extension: ^1.6.0 eslint: ^8.16.0 @@ -5181,7 +5181,7 @@ __metadata: "@types/jsonwebtoken": ^9.0.0 "@types/lodash.throttle": ^4.1.7 "@types/mime-types": ^2.1.1 - "@types/node": ^14.14.28 + "@types/node": ^18 "@types/react-dom": ^17.0.7 "@types/shallowequal": ^1.1.1 babel-jest: ^28.1.1 @@ -5209,7 +5209,6 @@ __metadata: react-refresh: ^0.14.0 schema-utils: ^3.0.0 shallowequal: ^1.1.0 - string.prototype.replaceall: ^1.0.6 tapable: ^2.1.1 terser-webpack-plugin: ^5.1.3 typedoc: ^0.22.17 @@ -9436,10 +9435,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:14": - version: 14.18.18 - resolution: "@types/node@npm:14.18.18" - checksum: a165225cd2603f6e62af8407449e4a4407305e03b41c1adf6b186fdf546e1a03c8214217659b5b36c556947c0c06234993ac880d4db6378136a7a810d47e0742 +"@types/node@npm:18, @types/node@npm:^18": + version: 18.18.0 + resolution: "@types/node@npm:18.18.0" + checksum: 61bcffa28eb713e7a4c66fd369df603369c3f834a783faeced95fe3e78903faa25f1a704d49e054f41d71b7915eeb066d10a37cc699421fcf5dd267f96ad5808 languageName: node linkType: hard @@ -9450,13 +9449,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^14.14.28": - version: 14.17.5 - resolution: "@types/node@npm:14.17.5" - checksum: 8fba22a8df7bcea75039f08e00fcff8e331f6d367739a9631d3457bc3e8e5ddfdd60e1a5d685d9420312e9ed7cf2f2146d37224ec9f7d578fe8dd32ce3821e62 - languageName: node - linkType: hard - "@types/node@npm:^16.0.0": version: 16.11.41 resolution: "@types/node@npm:16.11.41" @@ -31216,20 +31208,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.replaceall@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.replaceall@npm:1.0.6" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - get-intrinsic: ^1.1.1 - has-symbols: ^1.0.2 - is-regex: ^1.1.4 - checksum: 5020755c7bc8931fc7fb8c73b2f5b3600bbc6ce0fc1df7fef834798f6623e49b57afc2b997e83a69d50686b94b2d47304571435a6adbe59ca53c02a9ceec3422 - languageName: node - linkType: hard - "string.prototype.trim@npm:^1.2.7": version: 1.2.7 resolution: "string.prototype.trim@npm:1.2.7"