From c2eae0e2971d2174fff61d957a4fd13a49cf9bf2 Mon Sep 17 00:00:00 2001 From: Jack Hsu Date: Wed, 11 Dec 2024 15:00:56 -0500 Subject: [PATCH] fix(react): fix issues with react ts setup (#29312) Fixes a couple of things: 1. React application should ignore `eslint.config.js`, `eslint.config.cjs`, and `eslint.config.mjs` files since they are not part of the app runtime. 2. React lib generators should always run `npm install`. It currently runs only when `package.json` has changed, but we need to run it to link packages regardless of `package.json` changes. --- .../expo/src/generators/library/library.ts | 2 +- .../src/generators/library/library.ts | 2 +- .../generators/application/application.spec.ts | 3 +++ .../src/generators/application/application.ts | 18 +++++++++++++----- .../react/src/generators/library/library.ts | 2 +- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/expo/src/generators/library/library.ts b/packages/expo/src/generators/library/library.ts index 83743bf5a6..aa158f52f8 100644 --- a/packages/expo/src/generators/library/library.ts +++ b/packages/expo/src/generators/library/library.ts @@ -136,7 +136,7 @@ export async function expoLibraryGeneratorInternal( // Always run install to link packages. if (options.isUsingTsSolutionConfig) { - tasks.push(() => installPackagesTask(host)); + tasks.push(() => installPackagesTask(host, true)); } tasks.push(() => { diff --git a/packages/react-native/src/generators/library/library.ts b/packages/react-native/src/generators/library/library.ts index 227cd2d302..4e42ac8cbd 100644 --- a/packages/react-native/src/generators/library/library.ts +++ b/packages/react-native/src/generators/library/library.ts @@ -136,7 +136,7 @@ export async function reactNativeLibraryGeneratorInternal( // Always run install to link packages. if (options.isUsingTsSolutionConfig) { - tasks.push(() => installPackagesTask(host)); + tasks.push(() => installPackagesTask(host, true)); } tasks.push(() => { diff --git a/packages/react/src/generators/application/application.spec.ts b/packages/react/src/generators/application/application.spec.ts index 874abcde48..1cd5c63075 100644 --- a/packages/react/src/generators/application/application.spec.ts +++ b/packages/react/src/generators/application/application.spec.ts @@ -1335,6 +1335,9 @@ describe('app', () => { "vite.config.mts", "vitest.config.ts", "vitest.config.mts", + "eslint.config.js", + "eslint.config.cjs", + "eslint.config.mjs", ], "extends": "../tsconfig.base.json", "include": [ diff --git a/packages/react/src/generators/application/application.ts b/packages/react/src/generators/application/application.ts index c9a421896e..88ad5adce5 100644 --- a/packages/react/src/generators/application/application.ts +++ b/packages/react/src/generators/application/application.ts @@ -361,11 +361,19 @@ export async function applicationGeneratorInternal( ); } - updateTsconfigFiles(host, options.appProjectRoot, 'tsconfig.app.json', { - jsx: 'react-jsx', - module: 'esnext', - moduleResolution: 'bundler', - }); + updateTsconfigFiles( + host, + options.appProjectRoot, + 'tsconfig.app.json', + { + jsx: 'react-jsx', + module: 'esnext', + moduleResolution: 'bundler', + }, + options.linter === 'eslint' + ? ['eslint.config.js', 'eslint.config.cjs', 'eslint.config.mjs'] + : undefined + ); if (!options.skipFormat) { await formatFiles(host); diff --git a/packages/react/src/generators/library/library.ts b/packages/react/src/generators/library/library.ts index 786c5acd3f..2e09bb44ed 100644 --- a/packages/react/src/generators/library/library.ts +++ b/packages/react/src/generators/library/library.ts @@ -286,7 +286,7 @@ export async function libraryGeneratorInternal(host: Tree, schema: Schema) { // Always run install to link packages. if (options.isUsingTsSolutionConfig) { - tasks.push(() => installPackagesTask(host)); + tasks.push(() => installPackagesTask(host, true)); } tasks.push(() => {