@nx/react 24.0.0-pr.37405.acdaf31 → 24.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -2
- package/dist/index.js +1 -5
- package/dist/internal.d.ts +1 -0
- package/dist/internal.js +3 -1
- package/dist/module-federation.d.ts +6 -5
- package/dist/module-federation.js +29 -18
- package/dist/plugins/component-testing/index.js +92 -33
- package/dist/plugins/storybook/index.js +18 -18
- package/dist/plugins/with-react.d.ts +3 -7
- package/dist/plugins/with-react.js +5 -19
- package/dist/ready-check.d.ts +1 -0
- package/dist/ready-check.js +5 -0
- package/dist/src/generators/_utils/mf-dependencies.js +3 -0
- package/dist/src/generators/application/application.js +1 -36
- package/dist/src/generators/application/files/base-rspack/rspack.config.js__tmpl__ +1 -24
- package/dist/src/generators/application/files/base-webpack/webpack.config.js__tmpl__ +1 -26
- package/dist/src/generators/application/lib/add-e2e.js +11 -11
- package/dist/src/generators/application/lib/add-linting.js +1 -2
- package/dist/src/generators/application/lib/add-project.js +0 -167
- package/dist/src/generators/application/lib/bundlers/add-rsbuild.js +0 -1
- package/dist/src/generators/application/lib/bundlers/add-vite.js +0 -2
- package/dist/src/generators/application/lib/bundlers/add-webpack.js +0 -1
- package/dist/src/generators/application/lib/create-application-files.d.ts +0 -2
- package/dist/src/generators/application/lib/create-application-files.js +2 -11
- package/dist/src/generators/application/lib/normalize-options.js +0 -4
- package/dist/src/generators/application/schema.d.ts +0 -6
- package/dist/src/generators/application/schema.json +0 -6
- package/dist/src/generators/consumer/consumer.js +2 -0
- package/dist/src/generators/consumer/files/rsbuild/package.json__tmpl__ +1 -0
- package/dist/src/generators/consumer/files/rsbuild/rsbuild.config.ts__tmpl__ +2 -0
- package/dist/src/generators/consumer/files/rspack/package.json__tmpl__ +1 -0
- package/dist/src/generators/consumer/files/rspack/rspack.config.ts__tmpl__ +2 -0
- package/dist/src/generators/consumer/files/vite/package.json__tmpl__ +1 -0
- package/dist/src/generators/consumer/files/vite/vite.config.mts__tmpl__ +2 -0
- package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +4 -16
- package/dist/src/generators/cypress-component-configuration/lib/add-files.d.ts +1 -2
- package/dist/src/generators/cypress-component-configuration/lib/add-files.js +4 -2
- package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -1
- package/dist/src/generators/init/init.js +3 -5
- package/dist/src/generators/init/schema.d.ts +0 -1
- package/dist/src/generators/library/lib/add-linting.js +1 -2
- package/dist/src/generators/library/lib/add-rollup-build-target.js +3 -47
- package/dist/src/generators/library/lib/normalize-options.js +0 -4
- package/dist/src/generators/library/library.js +1 -4
- package/dist/src/generators/library/schema.d.ts +0 -5
- package/dist/src/generators/library/schema.json +0 -6
- package/dist/src/generators/provider/files/rsbuild/package.json__tmpl__ +1 -0
- package/dist/src/generators/provider/files/rsbuild/rsbuild.config.ts__tmpl__ +2 -0
- package/dist/src/generators/provider/files/rspack/package.json__tmpl__ +1 -0
- package/dist/src/generators/provider/files/rspack/rspack.config.ts__tmpl__ +2 -0
- package/dist/src/generators/provider/files/vite/package.json__tmpl__ +1 -0
- package/dist/src/generators/provider/files/vite/vite.config.mts__tmpl__ +2 -0
- package/dist/src/generators/provider/provider.js +2 -0
- package/dist/src/generators/stories/stories.js +0 -5
- package/dist/src/generators/storybook-configuration/configuration.js +1 -9
- package/dist/src/generators/storybook-configuration/schema.d.ts +0 -1
- package/dist/src/migrations/update-23-2-0/add-optional-module-federation-packages.js +2 -1
- package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.d.ts +4 -0
- package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.js +13 -0
- package/dist/src/migrations/update-24-0-0/register-typescript-plugin-for-typecheck.md +40 -0
- package/dist/src/plugins/router-plugin-utils.d.ts +4 -0
- package/dist/src/plugins/router-plugin-utils.js +15 -0
- package/dist/src/plugins/router-plugin.d.ts +0 -1
- package/dist/src/plugins/router-plugin.js +35 -44
- package/dist/src/utils/ast-utils.d.ts +0 -1
- package/dist/src/utils/ast-utils.js +0 -23
- package/dist/src/utils/ct-utils.d.ts +0 -7
- package/dist/src/utils/ct-utils.js +71 -55
- package/dist/src/utils/deprecation.d.ts +1 -1
- package/dist/src/utils/deprecation.js +3 -5
- package/dist/src/utils/framework.js +1 -3
- package/dist/src/utils/react-router-serve-ready-check.d.ts +11 -0
- package/dist/src/utils/react-router-serve-ready-check.js +25 -0
- package/dist/src/utils/versions.d.ts +0 -7
- package/dist/src/utils/versions.js +2 -9
- package/executors.json +1 -17
- package/generators.json +0 -27
- package/migrations.json +6 -0
- package/package.json +25 -39
- package/dist/mf/dynamic-federation.d.ts +0 -69
- package/dist/mf/dynamic-federation.js +0 -141
- package/dist/mf/index.d.ts +0 -1
- package/dist/mf/index.js +0 -8
- package/dist/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
- package/dist/src/executors/module-federation-dev-server/lib/index.js +0 -5
- package/dist/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +0 -4
- package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -19
- package/dist/src/executors/module-federation-dev-server/lib/start-remotes.d.ts +0 -5
- package/dist/src/executors/module-federation-dev-server/lib/start-remotes.js +0 -33
- package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -6
- package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -80
- package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -19
- package/dist/src/executors/module-federation-dev-server/schema.json +0 -142
- package/dist/src/executors/module-federation-ssr-dev-server/lib/index.d.ts +0 -2
- package/dist/src/executors/module-federation-ssr-dev-server/lib/index.js +0 -5
- package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -4
- package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -23
- package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.d.ts +0 -5
- package/dist/src/executors/module-federation-ssr-dev-server/lib/start-remotes.js +0 -34
- package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -3
- package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -83
- package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -29
- package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -81
- package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +0 -12
- package/dist/src/executors/module-federation-static-server/module-federation-static-server.impl.js +0 -244
- package/dist/src/executors/module-federation-static-server/schema.d.ts +0 -3
- package/dist/src/executors/module-federation-static-server/schema.json +0 -16
- package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
- package/dist/src/generators/federate-module/federate-module.js +0 -67
- package/dist/src/generators/federate-module/lib/utils.d.ts +0 -23
- package/dist/src/generators/federate-module/lib/utils.js +0 -99
- package/dist/src/generators/federate-module/schema.d.ts +0 -15
- package/dist/src/generators/federate-module/schema.json +0 -89
- package/dist/src/generators/host/files/common/src/app/__fileName__.js__tmpl__ +0 -40
- package/dist/src/generators/host/files/common/src/main.js__tmpl__ +0 -13
- package/dist/src/generators/host/files/common/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/host/files/common-ts/src/app/__fileName__.tsx__tmpl__ +0 -41
- package/dist/src/generators/host/files/common-ts/src/main.ts__tmpl__ +0 -13
- package/dist/src/generators/host/files/rspack-common/src/app/__fileName__.jsx__tmpl__ +0 -42
- package/dist/src/generators/host/files/rspack-common/src/main.jsx__tmpl__ +0 -13
- package/dist/src/generators/host/files/rspack-common/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/host/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -24
- package/dist/src/generators/host/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -42
- package/dist/src/generators/host/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -66
- package/dist/src/generators/host/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -27
- package/dist/src/generators/host/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -68
- package/dist/src/generators/host/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -49
- package/dist/src/generators/host/files/rspack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -22
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -68
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -49
- package/dist/src/generators/host/files/rspack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -67
- package/dist/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -42
- package/dist/src/generators/host/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -24
- package/dist/src/generators/host/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -39
- package/dist/src/generators/host/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -19
- package/dist/src/generators/host/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/webpack-module-federation-ssr/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -16
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
- package/dist/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -28
- package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -40
- package/dist/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -18
- package/dist/src/generators/host/host.d.ts +0 -4
- package/dist/src/generators/host/host.js +0 -174
- package/dist/src/generators/host/lib/add-module-federation-files.d.ts +0 -6
- package/dist/src/generators/host/lib/add-module-federation-files.js +0 -92
- package/dist/src/generators/host/lib/normalize-host-name.d.ts +0 -2
- package/dist/src/generators/host/lib/normalize-host-name.js +0 -12
- package/dist/src/generators/host/lib/setup-ssr-for-host.d.ts +0 -6
- package/dist/src/generators/host/lib/setup-ssr-for-host.js +0 -59
- package/dist/src/generators/host/lib/update-module-federation-e2e-project.d.ts +0 -3
- package/dist/src/generators/host/lib/update-module-federation-e2e-project.js +0 -19
- package/dist/src/generators/host/lib/update-module-federation-tsconfig.d.ts +0 -3
- package/dist/src/generators/host/lib/update-module-federation-tsconfig.js +0 -34
- package/dist/src/generators/host/schema.d.ts +0 -44
- package/dist/src/generators/host/schema.json +0 -173
- package/dist/src/generators/remote/files/common/src/main.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/common/src/remote-entry.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/common-ts/src/main.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/common-ts/src/remote-entry.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-common/src/main.jsx__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-common/src/remote-entry.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-module-federation/module-federation.config.js__tmpl__ +0 -12
- package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.js__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -15
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +0 -71
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -19
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +0 -71
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
- package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/rspack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/webpack-module-federation/module-federation.config.js__tmpl__ +0 -12
- package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.js__tmpl__ +0 -17
- package/dist/src/generators/remote/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +0 -1
- package/dist/src/generators/remote/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +0 -9
- package/dist/src/generators/remote/files/webpack-module-federation-ssr/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +0 -17
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +0 -13
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/server.ts__tmpl__ +0 -45
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +0 -17
- package/dist/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +0 -16
- package/dist/src/generators/remote/files/webpack-module-federation-ts/tsconfig.lint.json__tmpl__ +0 -19
- package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +0 -1
- package/dist/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +0 -17
- package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.d.ts +0 -2
- package/dist/src/generators/remote/lib/add-remote-to-dynamic-host.js +0 -12
- package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.d.ts +0 -3
- package/dist/src/generators/remote/lib/setup-package-json-exports-for-remote.js +0 -30
- package/dist/src/generators/remote/lib/setup-ssr-for-remote.d.ts +0 -4
- package/dist/src/generators/remote/lib/setup-ssr-for-remote.js +0 -61
- package/dist/src/generators/remote/lib/setup-tspath-for-remote.d.ts +0 -3
- package/dist/src/generators/remote/lib/setup-tspath-for-remote.js +0 -14
- package/dist/src/generators/remote/lib/update-host-with-remote.d.ts +0 -2
- package/dist/src/generators/remote/lib/update-host-with-remote.js +0 -79
- package/dist/src/generators/remote/remote.d.ts +0 -6
- package/dist/src/generators/remote/remote.js +0 -201
- package/dist/src/generators/remote/schema.d.ts +0 -39
- package/dist/src/generators/remote/schema.json +0 -173
- package/dist/src/generators/setup-ssr/files/server.ts__tmpl__ +0 -28
- package/dist/src/generators/setup-ssr/files/src/main.server.tsx__tmpl__ +0 -47
- package/dist/src/generators/setup-ssr/files/tsconfig.server.json__tmpl__ +0 -17
- package/dist/src/generators/setup-ssr/schema.d.ts +0 -8
- package/dist/src/generators/setup-ssr/schema.json +0 -54
- package/dist/src/generators/setup-ssr/setup-ssr.d.ts +0 -4
- package/dist/src/generators/setup-ssr/setup-ssr.js +0 -198
- package/dist/src/module-federation/ast-utils.d.ts +0 -8
- package/dist/src/module-federation/ast-utils.js +0 -101
- package/dist/src/rules/update-module-federation-project.d.ts +0 -11
- package/dist/src/rules/update-module-federation-project.js +0 -72
- package/dist/src/utils/add-mf-env-to-inputs.d.ts +0 -2
- package/dist/src/utils/add-mf-env-to-inputs.js +0 -29
- package/dist/src/utils/module-federation-deprecation.d.ts +0 -12
- package/dist/src/utils/module-federation-deprecation.js +0 -46
- package/dist/src/utils/normalize-remote.d.ts +0 -8
- package/dist/src/utils/normalize-remote.js +0 -31
|
@@ -20,13 +20,7 @@ async function addRollupBuildTarget(host, options, external = new Set(['react',
|
|
|
20
20
|
}, undefined, true));
|
|
21
21
|
}
|
|
22
22
|
external.add('react/jsx-runtime');
|
|
23
|
-
|
|
24
|
-
const hasRollupPlugin = !!nxJson.plugins?.some((p) => typeof p === 'string'
|
|
25
|
-
? p === '@nx/rollup/plugin'
|
|
26
|
-
: p.plugin === '@nx/rollup/plugin');
|
|
27
|
-
if (hasRollupPlugin) {
|
|
28
|
-
// New behavior, using rollup config file and inferred target.
|
|
29
|
-
host.write((0, devkit_1.joinPathFragments)(options.projectRoot, 'rollup.config.cjs'), `const { withNx } = require('@nx/rollup/with-nx');
|
|
23
|
+
host.write((0, devkit_1.joinPathFragments)(options.projectRoot, 'rollup.config.cjs'), `const { withNx } = require('@nx/rollup/with-nx');
|
|
30
24
|
const url = require('@rollup/plugin-url');
|
|
31
25
|
const svg = require('@svgr/rollup');
|
|
32
26
|
|
|
@@ -34,8 +28,8 @@ module.exports = withNx(
|
|
|
34
28
|
{
|
|
35
29
|
main: '${(0, maybe_js_1.maybeJs)(options, './src/index.ts')}',
|
|
36
30
|
outputPath: '${options.isUsingTsSolutionConfig
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
? './dist'
|
|
32
|
+
: (0, devkit_1.joinPathFragments)((0, devkit_1.offsetFromRoot)(options.projectRoot), 'dist', options.projectRoot)}',
|
|
39
33
|
tsConfig: './tsconfig.lib.json',
|
|
40
34
|
compiler: '${options.compiler ?? 'babel'}',
|
|
41
35
|
external: ${JSON.stringify(Array.from(external))},
|
|
@@ -56,43 +50,5 @@ module.exports = withNx(
|
|
|
56
50
|
}
|
|
57
51
|
);
|
|
58
52
|
`);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
// Legacy behavior, there is a target in project.json using rollup executor.
|
|
62
|
-
// Mirrors warnRollupExecutorGenerating from @nx/rollup/src/utils/deprecation.
|
|
63
|
-
// Inlined to avoid a cross-package deep import; @nx/rollup's package
|
|
64
|
-
// exports field doesn't expose internal `src/...` paths, so the import
|
|
65
|
-
// works at compile time (via tsconfig project refs) but fails at runtime
|
|
66
|
-
// in published packages.
|
|
67
|
-
devkit_1.logger.warn('The `@nx/rollup:rollup` executor is deprecated and will be removed in Nx v24. Run `nx g @nx/rollup:convert-to-inferred` to migrate to the `@nx/rollup/plugin` inferred targets. See https://nx.dev/docs/guides/tasks--caching/convert-to-inferred for details.');
|
|
68
|
-
const { targets } = (0, devkit_1.readProjectConfiguration)(host, options.name);
|
|
69
|
-
targets.build = {
|
|
70
|
-
executor: '@nx/rollup:rollup',
|
|
71
|
-
outputs: ['{options.outputPath}'],
|
|
72
|
-
options: {
|
|
73
|
-
outputPath: (0, devkit_1.joinPathFragments)('dist', options.projectRoot),
|
|
74
|
-
tsConfig: `${options.projectRoot}/tsconfig.lib.json`,
|
|
75
|
-
project: `${options.projectRoot}/package.json`,
|
|
76
|
-
entryFile: (0, maybe_js_1.maybeJs)(options, `${options.projectRoot}/src/index.ts`),
|
|
77
|
-
external: Array.from(external),
|
|
78
|
-
rollupConfig: `@nx/react/plugins/bundle-rollup`,
|
|
79
|
-
compiler: options.compiler ?? 'babel',
|
|
80
|
-
assets: [
|
|
81
|
-
{
|
|
82
|
-
glob: `${options.projectRoot}/README.md`,
|
|
83
|
-
input: '.',
|
|
84
|
-
output: '.',
|
|
85
|
-
},
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
(0, devkit_1.updateProjectConfiguration)(host, options.name, {
|
|
90
|
-
root: options.projectRoot,
|
|
91
|
-
sourceRoot: (0, devkit_1.joinPathFragments)(options.projectRoot, 'src'),
|
|
92
|
-
projectType: 'library',
|
|
93
|
-
tags: options.parsedTags,
|
|
94
|
-
targets,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
53
|
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
98
54
|
}
|
|
@@ -14,10 +14,6 @@ async function normalizeOptions(host, options) {
|
|
|
14
14
|
directory: options.directory,
|
|
15
15
|
importPath: options.importPath,
|
|
16
16
|
});
|
|
17
|
-
const nxJson = (0, devkit_1.readNxJson)(host);
|
|
18
|
-
const addPlugin = process.env.NX_ADD_PLUGINS !== 'false' &&
|
|
19
|
-
nxJson.useInferencePlugins !== false;
|
|
20
|
-
options.addPlugin ??= addPlugin;
|
|
21
17
|
const fileName = projectNames.projectFileName;
|
|
22
18
|
const parsedTags = options.tags
|
|
23
19
|
? options.tags.split(',').map((s) => s.trim())
|
|
@@ -25,7 +25,6 @@ const set_defaults_1 = require("./lib/set-defaults");
|
|
|
25
25
|
const update_app_routes_1 = require("./lib/update-app-routes");
|
|
26
26
|
async function libraryGenerator(host, schema) {
|
|
27
27
|
return await libraryGeneratorInternal(host, {
|
|
28
|
-
addPlugin: false,
|
|
29
28
|
useProjectJson: true,
|
|
30
29
|
...schema,
|
|
31
30
|
});
|
|
@@ -33,7 +32,7 @@ async function libraryGenerator(host, schema) {
|
|
|
33
32
|
async function libraryGeneratorInternal(host, schema) {
|
|
34
33
|
(0, assert_supported_react_version_1.assertSupportedReactVersion)(host);
|
|
35
34
|
const tasks = [];
|
|
36
|
-
const addTsPlugin = (0, internal_2.shouldConfigureTsSolutionSetup)(host
|
|
35
|
+
const addTsPlugin = (0, internal_2.shouldConfigureTsSolutionSetup)(host);
|
|
37
36
|
const jsInitTask = await (0, js_1.initGenerator)(host, {
|
|
38
37
|
...schema,
|
|
39
38
|
addTsPlugin,
|
|
@@ -101,7 +100,6 @@ async function libraryGeneratorInternal(host, schema) {
|
|
|
101
100
|
compiler: options.compiler,
|
|
102
101
|
skipFormat: true,
|
|
103
102
|
testEnvironment: 'jsdom',
|
|
104
|
-
addPlugin: options.addPlugin,
|
|
105
103
|
});
|
|
106
104
|
tasks.push(viteTask);
|
|
107
105
|
createOrEditViteConfig(host, {
|
|
@@ -159,7 +157,6 @@ async function libraryGeneratorInternal(host, schema) {
|
|
|
159
157
|
inSourceTests: options.inSourceTests,
|
|
160
158
|
skipFormat: true,
|
|
161
159
|
testEnvironment: 'jsdom',
|
|
162
|
-
addPlugin: options.addPlugin,
|
|
163
160
|
compiler: options.compiler,
|
|
164
161
|
});
|
|
165
162
|
tasks.push(vitestTask);
|
|
@@ -17,10 +17,6 @@ export interface Schema {
|
|
|
17
17
|
publishable?: boolean;
|
|
18
18
|
routing?: boolean;
|
|
19
19
|
enableTypedLinting?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated Use `enableTypedLinting` instead. This option will be removed in Nx v24.
|
|
22
|
-
*/
|
|
23
|
-
setParserOptionsProject?: boolean;
|
|
24
20
|
skipFormat?: boolean;
|
|
25
21
|
skipPackageJson?: boolean;
|
|
26
22
|
skipTsConfig?: boolean;
|
|
@@ -29,7 +25,6 @@ export interface Schema {
|
|
|
29
25
|
tags?: string;
|
|
30
26
|
unitTestRunner?: 'jest' | 'vitest' | 'none';
|
|
31
27
|
minimal?: boolean;
|
|
32
|
-
addPlugin?: boolean;
|
|
33
28
|
useProjectJson?: boolean;
|
|
34
29
|
}
|
|
35
30
|
|
|
@@ -148,12 +148,6 @@
|
|
|
148
148
|
"description": "Whether to enable typed linting. For flat configs, this configures the recommended `parserOptions.projectService` and `tsconfigRootDir`. For legacy `.eslintrc` configs, this configures `parserOptions.project`. We do not enable this by default for lint performance reasons.",
|
|
149
149
|
"default": false
|
|
150
150
|
},
|
|
151
|
-
"setParserOptionsProject": {
|
|
152
|
-
"type": "boolean",
|
|
153
|
-
"description": "Deprecated alias for `enableTypedLinting`.",
|
|
154
|
-
"default": false,
|
|
155
|
-
"x-deprecated": "Use `enableTypedLinting` instead. This option will be removed in Nx v24."
|
|
156
|
-
},
|
|
157
151
|
"compiler": {
|
|
158
152
|
"type": "string",
|
|
159
153
|
"enum": ["babel", "swc"],
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@module-federation/rsbuild-plugin": "<%= versions.moduleFederationRsbuildPluginVersion %>",
|
|
16
|
+
"@nx/rsbuild": "<%= versions.nxVersion %>",
|
|
16
17
|
"@rsbuild/core": "<%= versions.rsbuildCoreVersion %>",
|
|
17
18
|
"@rsbuild/plugin-react": "<%= versions.rsbuildPluginReactVersion %>",
|
|
18
19
|
"@types/react": "<%= versions.typesReactVersion %>",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineConfig } from '@rsbuild/core';
|
|
2
2
|
import { pluginReact } from '@rsbuild/plugin-react';
|
|
3
3
|
import { pluginModuleFederation } from '@module-federation/rsbuild-plugin';
|
|
4
|
+
import { pluginNxReadySignal } from '@nx/rsbuild/ready-signal';
|
|
4
5
|
|
|
5
6
|
const PORT = <%= port %>;
|
|
6
7
|
const NAME = '<%= federationName %>';
|
|
@@ -27,5 +28,6 @@ export default defineConfig({
|
|
|
27
28
|
},
|
|
28
29
|
shared: ['react', 'react-dom'],
|
|
29
30
|
}),
|
|
31
|
+
pluginNxReadySignal(),
|
|
30
32
|
],
|
|
31
33
|
});
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"react-dom": "<%= versions.reactDomVersion %>"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
+
"@nx/rspack": "<%= versions.nxVersion %>",
|
|
15
16
|
"@rspack/cli": "<%= versions.rspackCliVersion %>",
|
|
16
17
|
"@rspack/core": "<%= versions.rspackCoreVersion %>",
|
|
17
18
|
"@rspack/dev-server": "<%= versions.rspackDevServerVersion %>",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineConfig } from '@rspack/cli';
|
|
2
2
|
import { rspack } from '@rspack/core';
|
|
3
3
|
import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack';
|
|
4
|
+
import { NxReadySignalPlugin } from '@nx/rspack/ready-signal';
|
|
4
5
|
import { ReactRefreshRspackPlugin } from '@rspack/plugin-react-refresh';
|
|
5
6
|
import * as path from 'node:path';
|
|
6
7
|
import { fileURLToPath } from 'node:url';
|
|
@@ -68,6 +69,7 @@ export default defineConfig((_env, argv) => {
|
|
|
68
69
|
},
|
|
69
70
|
shared: ['react', 'react-dom'],
|
|
70
71
|
}),
|
|
72
|
+
new NxReadySignalPlugin(),
|
|
71
73
|
].filter(Boolean),
|
|
72
74
|
};
|
|
73
75
|
});
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@module-federation/vite": "<%= versions.moduleFederationVitePluginVersion %>",
|
|
17
|
+
"@nx/vite": "<%= versions.nxVersion %>",
|
|
17
18
|
"@types/react": "<%= versions.typesReactVersion %>",
|
|
18
19
|
"@types/react-dom": "<%= versions.typesReactDomVersion %>",
|
|
19
20
|
"@vitejs/plugin-react": "<%= versions.vitejsPluginReactVersion %>",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineConfig } from 'vite';
|
|
2
2
|
import react from '@vitejs/plugin-react';
|
|
3
3
|
import { federation } from '@module-federation/vite';
|
|
4
|
+
import { nxReadySignal } from '@nx/vite/plugins/nx-ready-signal.plugin';
|
|
4
5
|
|
|
5
6
|
// Port deliberately avoids 5000 (macOS AirTunes binds it on 0.0.0.0, leading
|
|
6
7
|
// to silent EADDRINUSE on 127.0.0.1). Override `--port` only if 5000+ is free.
|
|
@@ -33,5 +34,6 @@ export default defineConfig({
|
|
|
33
34
|
},
|
|
34
35
|
}),
|
|
35
36
|
react(),
|
|
37
|
+
nxReadySignal(),
|
|
36
38
|
],
|
|
37
39
|
});
|
|
@@ -47,6 +47,7 @@ async function providerGenerator(tree, schema) {
|
|
|
47
47
|
command: BUNDLER_DEV_COMMAND[opts.bundler],
|
|
48
48
|
cwd: opts.projectRoot,
|
|
49
49
|
},
|
|
50
|
+
readyWhen: { signal: true },
|
|
50
51
|
};
|
|
51
52
|
if (schema.consumer) {
|
|
52
53
|
serveTarget.dependsOn = [`${schema.consumer}:serve`];
|
|
@@ -74,6 +75,7 @@ async function providerGenerator(tree, schema) {
|
|
|
74
75
|
componentName,
|
|
75
76
|
versions: {
|
|
76
77
|
...mfVersions,
|
|
78
|
+
nxVersion: versions_2.nxVersion,
|
|
77
79
|
reactVersion: versions_2.reactVersion,
|
|
78
80
|
reactDomVersion: versions_2.reactDomVersion,
|
|
79
81
|
typesReactVersion: versions_2.typesReactVersion,
|
|
@@ -100,11 +100,6 @@ async function storiesGenerator(host, schema) {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
async function isNextJsProject(tree, config) {
|
|
103
|
-
const { findStorybookAndBuildTargetsAndCompiler, } = require('@nx/storybook/src/utils/utilities');
|
|
104
|
-
const { nextBuildTarget } = findStorybookAndBuildTargetsAndCompiler(config.targets);
|
|
105
|
-
if (nextBuildTarget) {
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
103
|
for (const configFile of ['next.config.js', 'next.config.ts']) {
|
|
109
104
|
if (tree.exists((0, path_1.join)(config.root, configFile))) {
|
|
110
105
|
return true;
|
|
@@ -8,18 +8,11 @@ const framework_1 = require("../../utils/framework");
|
|
|
8
8
|
const versions_1 = require("../../utils/versions");
|
|
9
9
|
const stories_1 = require("../stories/stories");
|
|
10
10
|
function storybookConfigurationGenerator(host, schema) {
|
|
11
|
-
return storybookConfigurationGeneratorInternal(host,
|
|
12
|
-
addPlugin: false,
|
|
13
|
-
...schema,
|
|
14
|
-
});
|
|
11
|
+
return storybookConfigurationGeneratorInternal(host, schema);
|
|
15
12
|
}
|
|
16
13
|
async function storybookConfigurationGeneratorInternal(host, schema) {
|
|
17
14
|
(0, assert_supported_react_version_1.assertSupportedReactVersion)(host);
|
|
18
15
|
const tasks = [];
|
|
19
|
-
const nxJson = (0, devkit_1.readNxJson)(host);
|
|
20
|
-
const addPluginDefault = process.env.NX_ADD_PLUGINS !== 'false' &&
|
|
21
|
-
nxJson.useInferencePlugins !== false;
|
|
22
|
-
schema.addPlugin ??= addPluginDefault;
|
|
23
16
|
const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/storybook', versions_1.nxVersion);
|
|
24
17
|
const uiFramework = (0, framework_1.getUiFramework)(host, schema.project);
|
|
25
18
|
if (uiFramework === '@storybook/react-vite') {
|
|
@@ -34,7 +27,6 @@ async function storybookConfigurationGeneratorInternal(host, schema) {
|
|
|
34
27
|
configureStaticServe: schema.configureStaticServe,
|
|
35
28
|
uiFramework: uiFramework, // cannot import UiFramework type dynamically
|
|
36
29
|
skipFormat: true,
|
|
37
|
-
addPlugin: schema.addPlugin,
|
|
38
30
|
});
|
|
39
31
|
tasks.push(installTask);
|
|
40
32
|
if (schema.generateStories) {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.default = addOptionalModuleFederationPackages;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const versions_1 = require("../../utils/versions");
|
|
6
|
+
const httpProxyMiddlewareVersion = '^3.0.5';
|
|
6
7
|
const moduleFederationExecutors = new Set([
|
|
7
8
|
'@nx/react:module-federation-dev-server',
|
|
8
9
|
'@nx/react:module-federation-ssr-dev-server',
|
|
@@ -54,7 +55,7 @@ async function addOptionalModuleFederationPackages(tree) {
|
|
|
54
55
|
...(needsStaticServer
|
|
55
56
|
? {
|
|
56
57
|
express: versions_1.expressVersion,
|
|
57
|
-
'http-proxy-middleware':
|
|
58
|
+
'http-proxy-middleware': httpProxyMiddlewareVersion,
|
|
58
59
|
}
|
|
59
60
|
: {}),
|
|
60
61
|
}, undefined, true);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = update;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const internal_1 = require("@nx/js/internal");
|
|
6
|
+
async function update(tree) {
|
|
7
|
+
if (!(0, internal_1.registerTypescriptPluginForTypecheck)(tree, '@nx/react/router-plugin', {
|
|
8
|
+
removeTypecheckTargetName: true,
|
|
9
|
+
})) {
|
|
10
|
+
return { skipAgentic: true };
|
|
11
|
+
}
|
|
12
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
13
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#### Register `@nx/js/typescript` for typecheck targets
|
|
2
|
+
|
|
3
|
+
`@nx/react/router-plugin` no longer infers a `typecheck` target in any setup, and its `typecheckTargetName` option is removed. `@nx/js/typescript` provides the target instead. This migration registers `@nx/js/typescript` with only its typecheck target when the workspace uses `@nx/react/router-plugin` and doesn't register `@nx/js/typescript` yet, so your projects keep a `typecheck` target.
|
|
4
|
+
|
|
5
|
+
The new registration is added before the framework plugin and reuses its `typecheckTargetName`, and the migration then removes that option from `@nx/react/router-plugin`. Registrations with `typecheckTargetName: false` have the option removed and don't register `@nx/js/typescript`.
|
|
6
|
+
|
|
7
|
+
#### Sample code changes
|
|
8
|
+
|
|
9
|
+
##### Before
|
|
10
|
+
|
|
11
|
+
```json title="nx.json"
|
|
12
|
+
{
|
|
13
|
+
"plugins": [
|
|
14
|
+
{
|
|
15
|
+
"plugin": "@nx/react/router-plugin",
|
|
16
|
+
"options": {
|
|
17
|
+
"buildTargetName": "build",
|
|
18
|
+
"typecheckTargetName": "typecheck"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
##### After
|
|
26
|
+
|
|
27
|
+
```json title="nx.json"
|
|
28
|
+
{
|
|
29
|
+
"plugins": [
|
|
30
|
+
{
|
|
31
|
+
"plugin": "@nx/js/typescript",
|
|
32
|
+
"options": { "typecheck": { "targetName": "typecheck" } }
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"plugin": "@nx/react/router-plugin",
|
|
36
|
+
"options": { "buildTargetName": "build" }
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canResolve = canResolve;
|
|
4
|
+
/**
|
|
5
|
+
* Whether `request` resolves from `directory`, without loading it.
|
|
6
|
+
*/
|
|
7
|
+
function canResolve(request, directory) {
|
|
8
|
+
try {
|
|
9
|
+
require.resolve(request, { paths: [directory] });
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -7,7 +7,7 @@ const path_1 = require("path");
|
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const js_1 = require("@nx/js");
|
|
9
9
|
const internal_2 = require("@nx/js/internal");
|
|
10
|
-
const
|
|
10
|
+
const router_plugin_utils_1 = require("./router-plugin-utils");
|
|
11
11
|
const reactRouterConfigBlob = '**/react-router.config.{ts,js,cjs,cts,mjs,mts}';
|
|
12
12
|
exports.createNodes = [
|
|
13
13
|
reactRouterConfigBlob,
|
|
@@ -28,15 +28,16 @@ exports.createNodes = [
|
|
|
28
28
|
roots: [],
|
|
29
29
|
configFiles: [],
|
|
30
30
|
});
|
|
31
|
-
const
|
|
31
|
+
const packageManager = (0, devkit_1.detectPackageManager)(context.workspaceRoot);
|
|
32
|
+
const pmCommand = (0, devkit_1.getPackageManagerCommand)(packageManager);
|
|
33
|
+
const lockfile = (0, js_1.getLockFileName)(packageManager);
|
|
32
34
|
const hashes = await (0, internal_1.calculateHashesForCreateNodes)(projectRoots, { ...normalizedOptions, isUsingTsSolutionSetup }, context, projectRoots.map((_) => [lockfile]));
|
|
33
35
|
try {
|
|
34
36
|
return await (0, devkit_1.createNodesFromFiles)(async (configFile, _, context, idx) => {
|
|
35
37
|
const projectRoot = (0, path_1.dirname)(configFile);
|
|
36
|
-
const siblingFiles = (0, fs_1.readdirSync)((0, devkit_1.joinPathFragments)(context.workspaceRoot, projectRoot));
|
|
37
38
|
const hash = hashes[idx] + configFile;
|
|
38
39
|
if (!targetsCache.has(hash)) {
|
|
39
|
-
targetsCache.set(hash, await buildReactRouterTargets(configFile, projectRoot, normalizedOptions, context,
|
|
40
|
+
targetsCache.set(hash, await buildReactRouterTargets(configFile, projectRoot, normalizedOptions, context, isUsingTsSolutionSetup, pmCommand));
|
|
40
41
|
}
|
|
41
42
|
const { projectType, metadata, targets } = targetsCache.get(hash);
|
|
42
43
|
const project = {
|
|
@@ -63,7 +64,7 @@ exports.createNodes = [
|
|
|
63
64
|
* @deprecated Use {@link createNodes} instead. This will be removed in Nx 24.
|
|
64
65
|
*/
|
|
65
66
|
exports.createNodesV2 = exports.createNodes;
|
|
66
|
-
async function buildReactRouterTargets(configFilePath, projectRoot, options, context,
|
|
67
|
+
async function buildReactRouterTargets(configFilePath, projectRoot, options, context, isUsingTsSolutionSetup, pmCommand) {
|
|
67
68
|
const namedInputs = (0, internal_1.getNamedInputs)(projectRoot, context);
|
|
68
69
|
const configPath = (0, path_1.join)(context.workspaceRoot, configFilePath);
|
|
69
70
|
if (require.cache[configPath])
|
|
@@ -73,11 +74,10 @@ async function buildReactRouterTargets(configFilePath, projectRoot, options, con
|
|
|
73
74
|
const { buildDirectory, serverBuildPath } = await getBuildPaths(reactRouterConfig, isLibMode);
|
|
74
75
|
const targets = {};
|
|
75
76
|
targets[options.buildTargetName] = await getBuildTargetConfig(options.buildTargetName, projectRoot, buildDirectory, serverBuildPath, namedInputs, isUsingTsSolutionSetup);
|
|
76
|
-
targets[options.devTargetName] = await devTarget(projectRoot, namedInputs, isUsingTsSolutionSetup);
|
|
77
|
+
targets[options.devTargetName] = await devTarget(projectRoot, namedInputs, isUsingTsSolutionSetup, getDevReadyWhen(context.workspaceRoot, (0, path_1.join)(context.workspaceRoot, projectRoot)));
|
|
77
78
|
if (serverBuildPath) {
|
|
78
79
|
targets[options.startTargetName] = await startTarget(projectRoot, serverBuildPath, options.buildTargetName, namedInputs, isUsingTsSolutionSetup);
|
|
79
80
|
}
|
|
80
|
-
targets[options.typecheckTargetName] = await typecheckTarget(projectRoot, options.typecheckTargetName, namedInputs, siblingFiles, isUsingTsSolutionSetup);
|
|
81
81
|
(0, internal_2.addBuildAndWatchDepsTargets)(context.workspaceRoot, projectRoot, targets, options, pmCommand);
|
|
82
82
|
const metadata = {};
|
|
83
83
|
return {
|
|
@@ -129,18 +129,44 @@ function buildInputs(namedInputs) {
|
|
|
129
129
|
{ externalDependencies: ['@react-router/dev'] },
|
|
130
130
|
];
|
|
131
131
|
}
|
|
132
|
-
async function devTarget(projectRoot, namedInputs, isUsingTsSolutionSetup) {
|
|
132
|
+
async function devTarget(projectRoot, namedInputs, isUsingTsSolutionSetup, readyWhen) {
|
|
133
133
|
const devTarget = {
|
|
134
134
|
continuous: true,
|
|
135
135
|
inputs: buildInputs(namedInputs),
|
|
136
136
|
command: 'react-router dev',
|
|
137
137
|
options: { cwd: projectRoot },
|
|
138
138
|
};
|
|
139
|
+
if (readyWhen) {
|
|
140
|
+
devTarget.readyWhen = readyWhen;
|
|
141
|
+
}
|
|
139
142
|
if (isUsingTsSolutionSetup) {
|
|
140
143
|
devTarget.syncGenerators = ['@nx/js:typescript-sync'];
|
|
141
144
|
}
|
|
142
145
|
return devTarget;
|
|
143
146
|
}
|
|
147
|
+
// Vite's lookup order for the config in its root
|
|
148
|
+
const viteConfigFiles = [
|
|
149
|
+
'vite.config.js',
|
|
150
|
+
'vite.config.mjs',
|
|
151
|
+
'vite.config.ts',
|
|
152
|
+
'vite.config.cjs',
|
|
153
|
+
'vite.config.mts',
|
|
154
|
+
'vite.config.cts',
|
|
155
|
+
];
|
|
156
|
+
// The Vite check resolves the config when the task runs, with the task's env
|
|
157
|
+
// and options, and waits for the server's port.
|
|
158
|
+
function getDevReadyWhen(workspaceRoot, absoluteProjectRoot) {
|
|
159
|
+
// `react-router dev` serves with the default Vite config of its cwd.
|
|
160
|
+
const configFile = viteConfigFiles.find((file) => (0, fs_1.existsSync)((0, path_1.join)(absoluteProjectRoot, file)));
|
|
161
|
+
if (!configFile) {
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
// Nx runs the check from the workspace root, where @nx/vite may be missing
|
|
165
|
+
if (!(0, router_plugin_utils_1.canResolve)('@nx/vite/ready-check', workspaceRoot)) {
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
return (0, internal_1.getReadyCheckReadyWhen)('@nx/vite/ready-check', configFile, 'react-router-dev');
|
|
169
|
+
}
|
|
144
170
|
async function startTarget(projectRoot, serverBuildPath, buildTargetName, namedInputs, isUsingTsSolutionSetup) {
|
|
145
171
|
const serverPath = serverBuildPath === 'build/server'
|
|
146
172
|
? `${serverBuildPath}/index.js`
|
|
@@ -151,53 +177,18 @@ async function startTarget(projectRoot, serverBuildPath, buildTargetName, namedI
|
|
|
151
177
|
inputs: buildInputs(namedInputs),
|
|
152
178
|
command: `react-router-serve ${serverPath}`,
|
|
153
179
|
options: { cwd: projectRoot },
|
|
180
|
+
readyWhen: (0, internal_1.getReadyCheckReadyWhen)('@nx/react/ready-check'),
|
|
154
181
|
};
|
|
155
182
|
if (isUsingTsSolutionSetup) {
|
|
156
183
|
startTarget.syncGenerators = ['@nx/js:typescript-sync'];
|
|
157
184
|
}
|
|
158
185
|
return startTarget;
|
|
159
186
|
}
|
|
160
|
-
async function typecheckTarget(projectRoot, typecheckTargetName, namedInputs, siblingFiles, isUsingTsSolutionSetup) {
|
|
161
|
-
const hasTsConfigAppJson = siblingFiles.includes('tsconfig.app.json');
|
|
162
|
-
const typecheckTarget = {
|
|
163
|
-
cache: true,
|
|
164
|
-
inputs: [
|
|
165
|
-
...('production' in namedInputs
|
|
166
|
-
? ['production', '^production']
|
|
167
|
-
: ['default', '^default']),
|
|
168
|
-
{ externalDependencies: ['typescript'] },
|
|
169
|
-
],
|
|
170
|
-
command: isUsingTsSolutionSetup
|
|
171
|
-
? `tsc --build --emitDeclarationOnly`
|
|
172
|
-
: `tsc${hasTsConfigAppJson ? ` -p tsconfig.app.json` : ``} --noEmit`,
|
|
173
|
-
options: {
|
|
174
|
-
cwd: projectRoot,
|
|
175
|
-
},
|
|
176
|
-
metadata: {
|
|
177
|
-
description: `Runs type-checking for the project.`,
|
|
178
|
-
technologies: ['typescript'],
|
|
179
|
-
help: {
|
|
180
|
-
command: isUsingTsSolutionSetup
|
|
181
|
-
? `${pmCommand.exec} tsc --build --help`
|
|
182
|
-
: `${pmCommand.exec} tsc${hasTsConfigAppJson ? ` -p tsconfig.app.json` : ``} --help`,
|
|
183
|
-
example: isUsingTsSolutionSetup
|
|
184
|
-
? { args: ['--force'] }
|
|
185
|
-
: { options: { noEmit: true } },
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
};
|
|
189
|
-
if (isUsingTsSolutionSetup) {
|
|
190
|
-
typecheckTarget.dependsOn = [`^${typecheckTargetName}`];
|
|
191
|
-
typecheckTarget.syncGenerators = ['@nx/js:typescript-sync'];
|
|
192
|
-
}
|
|
193
|
-
return typecheckTarget;
|
|
194
|
-
}
|
|
195
187
|
function normalizeOptions(options) {
|
|
196
188
|
options ??= {};
|
|
197
189
|
options.buildTargetName ??= 'build';
|
|
198
190
|
options.devTargetName ??= 'dev';
|
|
199
191
|
options.startTargetName ??= 'start';
|
|
200
|
-
options.typecheckTargetName ??= 'typecheck';
|
|
201
192
|
return options;
|
|
202
193
|
}
|
|
203
194
|
function checkIfConfigFileShouldBeProject(projectRoot, context) {
|
|
@@ -18,7 +18,6 @@ export declare function addRoute(sourcePath: string, source: ts.SourceFile, opti
|
|
|
18
18
|
moduleName: string;
|
|
19
19
|
}): StringChange[];
|
|
20
20
|
export declare function addBrowserRouter(sourcePath: string, source: ts.SourceFile): StringChange[];
|
|
21
|
-
export declare function addStaticRouter(sourcePath: string, source: ts.SourceFile): StringChange[];
|
|
22
21
|
export declare function addReduxStoreToMain(sourcePath: string, source: ts.SourceFile): StringChange[];
|
|
23
22
|
export declare function updateReduxStore(sourcePath: string, source: ts.SourceFile, feature: {
|
|
24
23
|
keyName: string;
|
|
@@ -14,7 +14,6 @@ exports.isTag = isTag;
|
|
|
14
14
|
exports.addInitialRoutes = addInitialRoutes;
|
|
15
15
|
exports.addRoute = addRoute;
|
|
16
16
|
exports.addBrowserRouter = addBrowserRouter;
|
|
17
|
-
exports.addStaticRouter = addStaticRouter;
|
|
18
17
|
exports.addReduxStoreToMain = addReduxStoreToMain;
|
|
19
18
|
exports.updateReduxStore = updateReduxStore;
|
|
20
19
|
exports.getComponentNode = getComponentNode;
|
|
@@ -344,28 +343,6 @@ function addBrowserRouter(sourcePath, source) {
|
|
|
344
343
|
return [];
|
|
345
344
|
}
|
|
346
345
|
}
|
|
347
|
-
function addStaticRouter(sourcePath, source) {
|
|
348
|
-
const app = findElements(source, 'App')[0];
|
|
349
|
-
if (app) {
|
|
350
|
-
return [
|
|
351
|
-
...addImport(source, `import { StaticRouter } from 'react-router-dom/server';`),
|
|
352
|
-
{
|
|
353
|
-
type: devkit_1.ChangeType.Insert,
|
|
354
|
-
index: app.getStart(),
|
|
355
|
-
text: `<StaticRouter location={req.originalUrl}>`,
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
type: devkit_1.ChangeType.Insert,
|
|
359
|
-
index: app.getEnd(),
|
|
360
|
-
text: `</StaticRouter>`,
|
|
361
|
-
},
|
|
362
|
-
];
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
devkit_1.logger.warn(`Could not find App component in ${sourcePath}; Skipping add <StaticRouter>`);
|
|
366
|
-
return [];
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
346
|
function addReduxStoreToMain(sourcePath, source) {
|
|
370
347
|
const renderStmt = findMainRenderStatement(source);
|
|
371
348
|
if (!renderStmt) {
|
|
@@ -3,8 +3,6 @@ import { type FoundTarget } from '@nx/cypress/internal';
|
|
|
3
3
|
export declare function resolveCypressCTTarget(tree: Tree, options: {
|
|
4
4
|
project: string;
|
|
5
5
|
buildTarget: string;
|
|
6
|
-
bundler: 'vite' | 'webpack';
|
|
7
|
-
validExecutorNames: Set<string>;
|
|
8
6
|
}): Promise<{
|
|
9
7
|
found: FoundTarget;
|
|
10
8
|
bundler: 'vite' | 'webpack';
|
|
@@ -14,9 +12,4 @@ export declare function configureCypressCT(tree: Tree, options: {
|
|
|
14
12
|
found: FoundTarget;
|
|
15
13
|
bundler: 'vite' | 'webpack';
|
|
16
14
|
}): Promise<void>;
|
|
17
|
-
export declare function getBundlerFromTarget(found: FoundTarget, tree: Tree): Promise<'vite' | 'webpack'>;
|
|
18
|
-
export declare function getActualBundler(tree: Tree, options: {
|
|
19
|
-
buildTarget?: string;
|
|
20
|
-
bundler?: 'vite' | 'webpack';
|
|
21
|
-
}, found: FoundTarget): Promise<"vite" | "webpack">;
|
|
22
15
|
export declare function isComponent(tree: Tree, filePath: string): boolean;
|