@nx/react 0.0.0-pr-27504-f64ce1f → 0.0.0-pr-27652-a15068b

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/react",
3
- "version": "0.0.0-pr-27504-f64ce1f",
3
+ "version": "0.0.0-pr-27652-a15068b",
4
4
  "private": false,
5
5
  "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Vitest, Playwright, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.",
6
6
  "repository": {
@@ -39,11 +39,11 @@
39
39
  "minimatch": "9.0.3",
40
40
  "tslib": "^2.3.0",
41
41
  "@module-federation/enhanced": "~0.2.3",
42
- "@nx/devkit": "0.0.0-pr-27504-f64ce1f",
43
- "@nx/js": "0.0.0-pr-27504-f64ce1f",
44
- "@nx/eslint": "0.0.0-pr-27504-f64ce1f",
45
- "@nx/web": "0.0.0-pr-27504-f64ce1f",
46
- "@nrwl/react": "0.0.0-pr-27504-f64ce1f"
42
+ "@nx/devkit": "0.0.0-pr-27652-a15068b",
43
+ "@nx/js": "0.0.0-pr-27652-a15068b",
44
+ "@nx/eslint": "0.0.0-pr-27652-a15068b",
45
+ "@nx/web": "0.0.0-pr-27652-a15068b",
46
+ "@nrwl/react": "0.0.0-pr-27652-a15068b"
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public"
@@ -11,21 +11,6 @@ const target_defaults_utils_1 = require("@nx/devkit/src/generators/target-defaul
11
11
  async function addE2e(tree, options) {
12
12
  const hasNxBuildPlugin = (options.bundler === 'webpack' && (0, has_webpack_plugin_1.hasWebpackPlugin)(tree)) ||
13
13
  (options.bundler === 'vite' && (0, has_vite_plugin_1.hasVitePlugin)(tree));
14
- let e2eWebServerInfo = {
15
- e2eWebServerAddress: `http://localhost:${options.devServerPort ?? 4200}`,
16
- e2eWebServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx run ${options.projectName}:serve`,
17
- e2eCiWebServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx run ${options.projectName}:serve-static`,
18
- e2eCiBaseUrl: `http://localhost:4200`,
19
- e2eDevServerTarget: `${options.projectName}:serve`,
20
- };
21
- if (options.bundler === 'webpack') {
22
- const { getWebpackE2EWebServerInfo } = (0, devkit_1.ensurePackage)('@nx/webpack', versions_1.nxVersion);
23
- e2eWebServerInfo = await getWebpackE2EWebServerInfo(tree, options.projectName, (0, devkit_1.joinPathFragments)(options.appProjectRoot, `webpack.config.${options.js ? 'js' : 'ts'}`), options.addPlugin, options.devServerPort ?? 4200);
24
- }
25
- else if (options.bundler === 'vite') {
26
- const { getViteE2EWebServerInfo } = (0, devkit_1.ensurePackage)('@nx/vite', versions_1.nxVersion);
27
- e2eWebServerInfo = await getViteE2EWebServerInfo(tree, options.projectName, (0, devkit_1.joinPathFragments)(options.appProjectRoot, `vite.config.${options.js ? 'js' : 'ts'}`), options.addPlugin, options.devServerPort ?? 4200);
28
- }
29
14
  if (!hasNxBuildPlugin) {
30
15
  await (0, web_1.webStaticServeGenerator)(tree, {
31
16
  buildTarget: `${options.projectName}:build`,
@@ -51,20 +36,20 @@ async function addE2e(tree, options) {
51
36
  // the name and root are already normalized, instruct the generator to use them as is
52
37
  bundler: options.bundler === 'rspack' ? 'webpack' : options.bundler,
53
38
  skipFormat: true,
54
- devServerTarget: e2eWebServerInfo.e2eDevServerTarget,
55
- baseUrl: e2eWebServerInfo.e2eWebServerAddress,
39
+ devServerTarget: `${options.projectName}:${options.e2eWebServerTarget}`,
40
+ baseUrl: options.e2eWebServerAddress,
56
41
  jsx: true,
57
42
  rootProject: options.rootProject,
58
43
  webServerCommands: hasNxBuildPlugin
59
44
  ? {
60
- default: e2eWebServerInfo.e2eWebServerCommand,
61
- production: e2eWebServerInfo.e2eCiWebServerCommand,
45
+ default: `nx run ${options.projectName}:${options.e2eWebServerTarget}`,
46
+ production: `nx run ${options.projectName}:preview`,
62
47
  }
63
48
  : undefined,
64
49
  ciWebServerCommand: hasNxBuildPlugin
65
- ? e2eWebServerInfo.e2eCiWebServerCommand
50
+ ? `nx run ${options.projectName}:${options.e2eCiWebServerTarget}`
66
51
  : undefined,
67
- ciBaseUrl: e2eWebServerInfo.e2eCiBaseUrl,
52
+ ciBaseUrl: options.bundler === 'vite' ? options.e2eCiBaseUrl : undefined,
68
53
  });
69
54
  if (options.addPlugin ||
70
55
  (0, devkit_1.readNxJson)(tree).plugins?.find((p) => typeof p === 'string'
@@ -103,8 +88,8 @@ async function addE2e(tree, options) {
103
88
  js: false,
104
89
  linter: options.linter,
105
90
  setParserOptionsProject: options.setParserOptionsProject,
106
- webServerCommand: e2eWebServerInfo.e2eCiWebServerCommand,
107
- webServerAddress: e2eWebServerInfo.e2eCiBaseUrl,
91
+ webServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx run ${options.projectName}:${options.e2eCiWebServerTarget}`,
92
+ webServerAddress: options.e2eCiBaseUrl,
108
93
  rootProject: options.rootProject,
109
94
  addPlugin: options.addPlugin,
110
95
  });
@@ -32,8 +32,45 @@ async function normalizeOptions(host, options, callingGenerator = '@nx/react:app
32
32
  options.addPlugin ??= addPlugin;
33
33
  options.rootProject = appProjectRoot === '.';
34
34
  options.projectNameAndRootFormat = projectNameAndRootFormat;
35
+ let e2ePort = options.devServerPort ?? 4200;
36
+ let e2eWebServerTarget = 'serve';
37
+ let e2eCiWebServerTarget = options.bundler === 'vite' ? 'preview' : 'serve-static';
38
+ if (options.addPlugin) {
39
+ if (nxJson.plugins) {
40
+ for (const plugin of nxJson.plugins) {
41
+ if (options.bundler === 'vite' &&
42
+ typeof plugin === 'object' &&
43
+ plugin.plugin === '@nx/vite/plugin') {
44
+ e2eCiWebServerTarget =
45
+ plugin.options?.previewTargetName ??
46
+ e2eCiWebServerTarget;
47
+ e2eWebServerTarget =
48
+ plugin.options?.serveTargetName ??
49
+ e2eWebServerTarget;
50
+ }
51
+ else if (options.bundler === 'webpack' &&
52
+ typeof plugin === 'object' &&
53
+ plugin.plugin === '@nx/webpack/plugin') {
54
+ e2eCiWebServerTarget =
55
+ plugin.options?.serveStaticTargetName ??
56
+ e2eCiWebServerTarget;
57
+ e2eWebServerTarget =
58
+ plugin.options?.serveTargetName ??
59
+ e2eWebServerTarget;
60
+ }
61
+ }
62
+ }
63
+ }
64
+ if (nxJson.targetDefaults?.[e2eWebServerTarget] &&
65
+ nxJson.targetDefaults?.[e2eWebServerTarget].options?.port) {
66
+ e2ePort = nxJson.targetDefaults?.[e2eWebServerTarget].options?.port;
67
+ }
35
68
  const e2eProjectName = options.rootProject ? 'e2e' : `${appProjectName}-e2e`;
36
69
  const e2eProjectRoot = options.rootProject ? 'e2e' : `${appProjectRoot}-e2e`;
70
+ const e2eWebServerAddress = `http://localhost:${e2ePort}`;
71
+ const e2eCiBaseUrl = options.bundler === 'vite'
72
+ ? 'http://localhost:4300'
73
+ : `http://localhost:${e2ePort}`;
37
74
  const parsedTags = options.tags
38
75
  ? options.tags.split(',').map((s) => s.trim())
39
76
  : [];
@@ -49,6 +86,11 @@ async function normalizeOptions(host, options, callingGenerator = '@nx/react:app
49
86
  appProjectRoot,
50
87
  e2eProjectName,
51
88
  e2eProjectRoot,
89
+ e2eWebServerAddress,
90
+ e2eWebServerTarget,
91
+ e2eCiWebServerTarget,
92
+ e2eCiBaseUrl,
93
+ e2ePort,
52
94
  parsedTags,
53
95
  fileName,
54
96
  styledModule,
@@ -37,6 +37,11 @@ export interface NormalizedSchema<T extends Schema = Schema> extends T {
37
37
  appProjectRoot: string;
38
38
  e2eProjectName: string;
39
39
  e2eProjectRoot: string;
40
+ e2eWebServerAddress: string;
41
+ e2eWebServerTarget: string;
42
+ e2eCiWebServerTarget: string;
43
+ e2eCiBaseUrl: string;
44
+ e2ePort: number;
40
45
  parsedTags: string[];
41
46
  fileName: string;
42
47
  styledModule: null | SupportedStyles;