UNPKG

@nx/rspack

Version:

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

93 lines (92 loc) 3.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rspackInitSchematic = void 0; exports.rspackInitGenerator = rspackInitGenerator; const devkit_1 = require("@nx/devkit"); const add_plugin_1 = require("@nx/devkit/src/utils/add-plugin"); const js_1 = require("@nx/js"); const plugin_1 = require("../../../plugin"); const versions_1 = require("../../utils/versions"); async function rspackInitGenerator(tree, schema) { 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, add_plugin_1.addPlugin)(tree, await (0, devkit_1.createProjectGraphAsync)(), '@nx/rspack/plugin', plugin_1.createNodesV2, { 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 devDependencies = { '@rspack/core': versions_1.rspackCoreVersion, '@rspack/cli': versions_1.rspackCoreVersion, ...(!schema.framework || schema.framework === 'react' ? { '@rspack/plugin-react-refresh': versions_1.rspackPluginReactRefreshVersion, 'react-refresh': versions_1.reactRefreshVersion, } : {}), }; const version = require('../../../package.json').version; if (version !== '0.0.1') { // Ignored for local dev / e2e tests. devDependencies['@nx/rspack'] = version; } 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'] = versions_1.rspackDevServerVersion; } const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies, undefined, schema.keepExistingVersions); tasks.push(installTask); return (0, devkit_1.runTasksInSerial)(...tasks); } exports.default = rspackInitGenerator; exports.rspackInitSchematic = (0, devkit_1.convertNxGenerator)(rspackInitGenerator);