This PR updates app and lib generators in the following packages such that they will generate files with the TS solution setup if it is detected. - `@nx/react` - `@nx/next` - `@nx/remix` - `@nx/expo` - `@nx/react-native` React apps and libs will be linked using npm/pnpm/yarn/bun workspaces feature rather than through tsconfig paths. This means that local aliases like `@/` will work with Next.js and Remix apps. Note: This will be behind `--workspaces` flag when using `npx create-nx-workspace` and choosing React stack. If you use the None/TS stack then adding plugins like `nx add @nx/react` then generating apps, it will automatically pick up the new TS solution setup. <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior React generators are not compatible with TS solution setup (i.e. workspaces + TS project references). ## Expected Behavior React generators work with new TS solution setup (Plain, Next.js, Remix, Expo, React Native). ## Related Issue(s) #28322 --------- Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com> Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import type { Linter, LinterType } from '@nx/eslint';
|
|
import type { SupportedStyles } from '../../../typings/style';
|
|
|
|
export interface Schema {
|
|
appProject?: string;
|
|
buildable?: boolean;
|
|
bundler?: 'none' | 'rollup' | 'vite';
|
|
compiler?: 'babel' | 'swc';
|
|
component?: boolean;
|
|
directory: string;
|
|
globalCss?: boolean;
|
|
importPath?: string;
|
|
inSourceTests?: boolean;
|
|
js?: boolean;
|
|
linter: Linter | LinterType;
|
|
name?: string;
|
|
publishable?: boolean;
|
|
routing?: boolean;
|
|
setParserOptionsProject?: boolean;
|
|
skipFormat?: boolean;
|
|
skipPackageJson?: boolean;
|
|
skipTsConfig?: boolean;
|
|
strict?: boolean;
|
|
style: SupportedStyles;
|
|
tags?: string;
|
|
unitTestRunner?: 'jest' | 'vitest' | 'none';
|
|
minimal?: boolean;
|
|
simpleName?: boolean;
|
|
addPlugin?: boolean;
|
|
}
|
|
|
|
export interface NormalizedSchema extends Schema {
|
|
js: boolean;
|
|
name: string;
|
|
fileName: string;
|
|
projectRoot: string;
|
|
routePath: string;
|
|
parsedTags: string[];
|
|
appMain?: string;
|
|
appSourceRoot?: string;
|
|
unitTestRunner: 'jest' | 'vitest' | 'none';
|
|
isUsingTsSolutionConfig?: boolean;
|
|
}
|