@nx/rspack
Version:
93 lines (92 loc) • 3.6 kB
JavaScript
;
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);