UNPKG

@nx/react

Version:

The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides: - Integration with libraries such as Jest, Vitest, Playwright, Cypress, and Storybook. - Generators for applica

50 lines (49 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reactInitGenerator = reactInitGenerator; const internal_1 = require("@nx/devkit/internal"); const devkit_1 = require("@nx/devkit"); const versions_1 = require("../../utils/versions"); const version_utils_1 = require("../../utils/version-utils"); const assert_supported_react_version_1 = require("../../utils/assert-supported-react-version"); const router_plugin_1 = require("../../plugins/router-plugin"); async function reactInitGenerator(tree, schema) { (0, assert_supported_react_version_1.assertSupportedReactVersion)(tree); const tasks = []; if (!schema.skipPackageJson) { tasks.push((0, devkit_1.removeDependenciesFromPackageJson)(tree, ['@nx/react'], [])); const reactDeps = await (0, version_utils_1.getReactDependenciesVersionsToInstall)(tree); tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, { react: reactDeps.react, 'react-dom': reactDeps['react-dom'], }, { '@nx/react': versions_1.nxVersion, }, undefined, schema.keepExistingVersions ?? true)); } const nxJson = (0, devkit_1.readNxJson)(tree); schema.addPlugin ??= process.env.NX_ADD_PLUGINS !== 'false' && nxJson.useInferencePlugins !== false; if (schema.useReactRouterPlugin && schema.addPlugin) { await (0, internal_1.addPlugin)(tree, await (0, devkit_1.createProjectGraphAsync)(), '@nx/react/router-plugin', router_plugin_1.createNodes, { buildTargetName: ['build', 'react-router:build', 'react-router-build'], devTargetName: ['dev', 'react-router:dev', 'react-router-dev'], startTargetName: ['start', 'react-router-serve', 'react-router-start'], watchDepsTargetName: [ 'watch-deps', 'react-router:watch-deps', 'react-router-watch-deps', ], buildDepsTargetName: [ 'build-deps', 'react-router:build-deps', 'react-router-build-deps', ], }, schema.updatePackageScripts); } if (!schema.skipFormat) { await (0, devkit_1.formatFiles)(tree); } return (0, devkit_1.runTasksInSerial)(...tasks); } exports.default = reactInitGenerator;