UNPKG

@nx/rspack

Version:

The Nx Plugin for Rspack contains executors and generators that support building applications using Rspack.

99 lines (98 loc) 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rspackInitSchematic = void 0; exports.rspackInitGenerator = rspackInitGenerator; const internal_1 = require("@nx/devkit/internal"); const devkit_1 = require("@nx/devkit"); const js_1 = require("@nx/js"); const plugin_1 = require("../../../plugin"); const versions_1 = require("../../utils/versions"); const version_utils_1 = require("../../utils/version-utils"); const assert_supported_rspack_version_1 = require("../../utils/assert-supported-rspack-version"); async function rspackInitGenerator(tree, schema) { (0, assert_supported_rspack_version_1.assertSupportedRspackVersion)(tree); const tasks = []; const nxJson = (0, devkit_1.readNxJson)(tree); const addPluginDefault = process.env.NX_ADD_PLUGINS !== 'false' && nxJson.useInferencePlugins !== false; schema.addPlugin ??= addPluginDefault; if (schema.addPlugin) { await (0, internal_1.addPlugin)(tree, await (0, devkit_1.createProjectGraphAsync)(), '@nx/rspack/plugin', plugin_1.createNodes, { buildTargetName: [ 'build', 'rspack:build', 'build:rspack', 'rspack-build', 'build-rspack', ], serveTargetName: [ 'serve', 'rspack:serve', 'serve:rspack', 'rspack-serve', 'serve-rspack', ], serveStaticTargetName: [ 'serve-static', 'rspack:serve-static', 'rspack-serve-static', ], previewTargetName: [ 'preview', 'rspack:preview', 'preview:rspack', 'rspack-preview', 'preview-rspack', ], buildDepsTargetName: [ 'build-deps', 'rspack:build-deps', 'rspack-build-deps', ], watchDepsTargetName: [ 'watch-deps', 'rspack:watch-deps', 'rspack-watch-deps', ], }, schema.updatePackageScripts); } const jsInitTask = await (0, js_1.initGenerator)(tree, { ...schema, tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json', skipFormat: true, }); tasks.push(jsInitTask); const rspackVersions = (0, version_utils_1.getRspackVersionsForInstalledMajor)(tree); const keepExistingVersions = schema.keepExistingVersions ?? true; const devDependencies = { '@rspack/core': rspackVersions.rspackCoreVersion, '@rspack/cli': rspackVersions.rspackCoreVersion, '@rspack/dev-server': rspackVersions.rspackDevServerVersion, ...(!schema.framework || schema.framework === 'react' ? { '@rspack/plugin-react-refresh': rspackVersions.rspackPluginReactRefreshVersion, 'react-refresh': versions_1.reactRefreshVersion, } : {}), }; if (versions_1.nxVersion !== '0.0.1') { // Ignored for local dev / e2e tests. devDependencies['@nx/rspack'] = versions_1.nxVersion; } if (schema.style === 'less') { devDependencies['less-loader'] = versions_1.lessLoaderVersion; } if (schema.style === 'scss') { devDependencies['sass-loader'] = versions_1.sassLoaderVersion; devDependencies['sass-embedded'] = versions_1.sassEmbeddedVersion; } if (schema.framework !== 'none' || schema.devServer) { devDependencies['@rspack/dev-server'] = rspackVersions.rspackDevServerVersion; } const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies, undefined, keepExistingVersions); tasks.push(installTask); return (0, devkit_1.runTasksInSerial)(...tasks); } exports.default = rspackInitGenerator; exports.rspackInitSchematic = (0, devkit_1.convertNxGenerator)(rspackInitGenerator);