@nx/react 19.6.0-rc.0 → 19.6.1

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/migrations.json CHANGED
@@ -53,6 +53,12 @@
53
53
  "version": "19.6.0-beta.4",
54
54
  "description": "Update the server file for Module Federation SSR port value to be the same as the 'serve' target port value.",
55
55
  "factory": "./src/migrations/update-19-6-0/update-ssr-server-port"
56
+ },
57
+ "update-19-6-1-ensure-module-federation-target-defaults": {
58
+ "cli": "nx",
59
+ "version": "19.6.1-beta.0",
60
+ "description": "Ensure Target Defaults are set correctly for Module Federation.",
61
+ "factory": "./src/migrations/update-19-6-1/ensure-depends-on-for-mf"
56
62
  }
57
63
  },
58
64
  "packageJsonUpdates": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/react",
3
- "version": "19.6.0-rc.0",
3
+ "version": "19.6.1",
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": "19.6.0-rc.0",
43
- "@nx/js": "19.6.0-rc.0",
44
- "@nx/eslint": "19.6.0-rc.0",
45
- "@nx/web": "19.6.0-rc.0",
46
- "@nrwl/react": "19.6.0-rc.0"
42
+ "@nx/devkit": "19.6.1",
43
+ "@nx/js": "19.6.1",
44
+ "@nx/eslint": "19.6.1",
45
+ "@nx/web": "19.6.1",
46
+ "@nrwl/react": "19.6.1"
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public"
@@ -137,7 +137,11 @@ async function libraryGeneratorInternal(host, schema) {
137
137
  "'react-dom'",
138
138
  "'react/jsx-runtime'",
139
139
  ],
140
- imports: [`import react from '@vitejs/plugin-react'`],
140
+ imports: [
141
+ options.compiler === 'swc'
142
+ ? `import react from '@vitejs/plugin-react-swc'`
143
+ : `import react from '@vitejs/plugin-react'`,
144
+ ],
141
145
  plugins: ['react()'],
142
146
  }, true);
143
147
  }
@@ -1,6 +1,6 @@
1
1
  import { StorybookConfigureSchema } from './schema';
2
- import { Tree } from '@nx/devkit';
3
- export declare function storybookConfigurationGenerator(host: Tree, schema: StorybookConfigureSchema): Promise<import("@nx/devkit").GeneratorCallback>;
4
- export declare function storybookConfigurationGeneratorInternal(host: Tree, schema: StorybookConfigureSchema): Promise<import("@nx/devkit").GeneratorCallback>;
2
+ import { type GeneratorCallback, Tree } from '@nx/devkit';
3
+ export declare function storybookConfigurationGenerator(host: Tree, schema: StorybookConfigureSchema): Promise<GeneratorCallback>;
4
+ export declare function storybookConfigurationGeneratorInternal(host: Tree, schema: StorybookConfigureSchema): Promise<GeneratorCallback>;
5
5
  export default storybookConfigurationGenerator;
6
6
  export declare function findWebpackConfig(tree: Tree, projectRoot: string): string | undefined;
@@ -29,6 +29,7 @@ function storybookConfigurationGenerator(host, schema) {
29
29
  });
30
30
  }
31
31
  async function storybookConfigurationGeneratorInternal(host, schema) {
32
+ const tasks = [];
32
33
  const nxJson = (0, devkit_1.readNxJson)(host);
33
34
  const addPluginDefault = process.env.NX_ADD_PLUGINS !== 'false' &&
34
35
  nxJson.useInferencePlugins !== false;
@@ -42,6 +43,9 @@ async function storybookConfigurationGeneratorInternal(host, schema) {
42
43
  projectConfig.targets['build']?.executor === '@nx/expo:build') {
43
44
  uiFramework = '@storybook/react-webpack5';
44
45
  }
46
+ if (uiFramework === '@storybook/react-vite') {
47
+ tasks.push((0, devkit_1.addDependenciesToPackageJson)(host, {}, { '@vitejs/plugin-react': versions_1.reactViteVersion }));
48
+ }
45
49
  const installTask = await configurationGenerator(host, {
46
50
  project: schema.project,
47
51
  configureCypress: schema.configureCypress,
@@ -55,11 +59,12 @@ async function storybookConfigurationGeneratorInternal(host, schema) {
55
59
  skipFormat: true,
56
60
  addPlugin: schema.addPlugin,
57
61
  });
62
+ tasks.push(installTask);
58
63
  if (schema.generateStories) {
59
64
  await generateStories(host, schema);
60
65
  }
61
66
  await (0, devkit_1.formatFiles)(host);
62
- return installTask;
67
+ return (0, devkit_1.runTasksInSerial)(...tasks);
63
68
  }
64
69
  exports.default = storybookConfigurationGenerator;
65
70
  function findWebpackConfig(tree, projectRoot) {
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const executor_options_utils_1 = require("@nx/devkit/src/generators/executor-options-utils");
6
+ async function default_1(tree) {
7
+ let usesModuleFederation = false;
8
+ (0, executor_options_utils_1.forEachExecutorOptions)(tree, '@nx/webpack:webpack', (options, projectName, targetName) => {
9
+ const webpackConfig = options.webpackConfig;
10
+ if (!webpackConfig) {
11
+ return;
12
+ }
13
+ const webpackContents = tree.read(webpackConfig, 'utf-8');
14
+ if (['withModuleFederation', 'withModuleFederationForSSR'].some((p) => webpackContents.includes(p))) {
15
+ usesModuleFederation = true;
16
+ }
17
+ });
18
+ if (!usesModuleFederation) {
19
+ return;
20
+ }
21
+ const nxJson = (0, devkit_1.readNxJson)(tree);
22
+ const nxMFDevRemotesEnvVar = 'NX_MF_DEV_REMOTES';
23
+ if (!nxJson.targetDefaults ||
24
+ !nxJson.targetDefaults?.['@nx/webpack:webpack']) {
25
+ nxJson.targetDefaults ??= {};
26
+ nxJson.targetDefaults['@nx/webpack:webpack'] = {
27
+ cache: true,
28
+ inputs: ['production', '^production', { env: nxMFDevRemotesEnvVar }],
29
+ dependsOn: ['^build'],
30
+ };
31
+ }
32
+ else {
33
+ nxJson.targetDefaults['@nx/webpack:webpack'].dependsOn ??= [];
34
+ if (!nxJson.targetDefaults['@nx/webpack:webpack'].dependsOn.includes('^build')) {
35
+ nxJson.targetDefaults['@nx/webpack:webpack'].dependsOn.push('^build');
36
+ }
37
+ nxJson.targetDefaults['@nx/webpack:webpack'].inputs ??= [];
38
+ if (!nxJson.targetDefaults['@nx/webpack:webpack'].inputs.find((i) => typeof i === 'string' ? false : i['env'] === nxMFDevRemotesEnvVar)) {
39
+ nxJson.targetDefaults['@nx/webpack:webpack'].inputs.push({
40
+ env: nxMFDevRemotesEnvVar,
41
+ });
42
+ }
43
+ }
44
+ (0, devkit_1.updateNxJson)(tree, nxJson);
45
+ await (0, devkit_1.formatFiles)(tree);
46
+ }
@@ -12,6 +12,7 @@ function addMfEnvToTargetDefaultInputs(tree) {
12
12
  'production',
13
13
  '^production',
14
14
  ];
15
+ nxJson.targetDefaults[webpackExecutor].dependsOn ??= ['^build'];
15
16
  let mfEnvVarExists = false;
16
17
  for (const input of nxJson.targetDefaults[webpackExecutor].inputs) {
17
18
  if (typeof input === 'object' && input['env'] === mfEnvVar) {
@@ -8,6 +8,7 @@ export declare const babelLoaderVersion = "^9.1.2";
8
8
  export declare const typesReactVersion = "18.3.1";
9
9
  export declare const typesReactDomVersion = "18.3.0";
10
10
  export declare const typesReactIsVersion = "18.3.0";
11
+ export declare const reactViteVersion = "^4.2.0";
11
12
  export declare const typesNodeVersion = "18.16.9";
12
13
  export declare const babelPresetReactVersion = "^7.14.5";
13
14
  export declare const babelCoreVersion = "^7.14.5";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.swcPluginStyledComponentsVersion = exports.swcPluginEmotionVersion = exports.swcPluginStyledJsxVersion = exports.svgrRollupVersion = exports.rollupPluginUrlVersion = exports.sassVersion = exports.lessVersion = exports.moduleFederationEnhancedVersion = exports.moduleFederationNodeVersion = exports.typesCorsVersion = exports.corsVersion = exports.isbotVersion = exports.typesExpressVersion = exports.expressVersion = exports.autoprefixerVersion = exports.tailwindcssVersion = exports.postcssVersion = exports.tsLibVersion = exports.babelPluginStyledComponentsVersion = exports.eslintPluginReactHooksVersion = exports.eslintPluginReactVersion = exports.eslintPluginJsxA11yVersion = exports.eslintPluginImportVersion = exports.reactTestRendererVersion = exports.reactReduxVersion = exports.reduxjsToolkitVersion = exports.testingLibraryReactVersion = exports.reactRouterDomVersion = exports.styledJsxVersion = exports.emotionBabelPlugin = exports.emotionReactVersion = exports.emotionStyledVersion = exports.typesStyledComponentsVersion = exports.styledComponentsVersion = exports.babelCoreVersion = exports.babelPresetReactVersion = exports.typesNodeVersion = exports.typesReactIsVersion = exports.typesReactDomVersion = exports.typesReactVersion = exports.babelLoaderVersion = exports.swcLoaderVersion = exports.reactIsVersion = exports.reactDomVersion = exports.reactVersion = exports.nxRspackVersion = exports.nxVersion = void 0;
3
+ exports.swcPluginStyledComponentsVersion = exports.swcPluginEmotionVersion = exports.swcPluginStyledJsxVersion = exports.svgrRollupVersion = exports.rollupPluginUrlVersion = exports.sassVersion = exports.lessVersion = exports.moduleFederationEnhancedVersion = exports.moduleFederationNodeVersion = exports.typesCorsVersion = exports.corsVersion = exports.isbotVersion = exports.typesExpressVersion = exports.expressVersion = exports.autoprefixerVersion = exports.tailwindcssVersion = exports.postcssVersion = exports.tsLibVersion = exports.babelPluginStyledComponentsVersion = exports.eslintPluginReactHooksVersion = exports.eslintPluginReactVersion = exports.eslintPluginJsxA11yVersion = exports.eslintPluginImportVersion = exports.reactTestRendererVersion = exports.reactReduxVersion = exports.reduxjsToolkitVersion = exports.testingLibraryReactVersion = exports.reactRouterDomVersion = exports.styledJsxVersion = exports.emotionBabelPlugin = exports.emotionReactVersion = exports.emotionStyledVersion = exports.typesStyledComponentsVersion = exports.styledComponentsVersion = exports.babelCoreVersion = exports.babelPresetReactVersion = exports.typesNodeVersion = exports.reactViteVersion = exports.typesReactIsVersion = exports.typesReactDomVersion = exports.typesReactVersion = exports.babelLoaderVersion = exports.swcLoaderVersion = exports.reactIsVersion = exports.reactDomVersion = exports.reactVersion = exports.nxRspackVersion = exports.nxVersion = void 0;
4
4
  exports.nxVersion = require('../../package.json').version;
5
5
  // Always pull the latest version until we merge rspack plugin into the repo.
6
6
  exports.nxRspackVersion = '*';
@@ -12,6 +12,7 @@ exports.babelLoaderVersion = '^9.1.2';
12
12
  exports.typesReactVersion = '18.3.1';
13
13
  exports.typesReactDomVersion = '18.3.0';
14
14
  exports.typesReactIsVersion = '18.3.0';
15
+ exports.reactViteVersion = '^4.2.0';
15
16
  exports.typesNodeVersion = '18.16.9';
16
17
  exports.babelPresetReactVersion = '^7.14.5';
17
18
  exports.babelCoreVersion = '^7.14.5';