UNPKG

@nx/node

Version:

The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.

51 lines (50 loc) 2.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addProject = addProject; const devkit_1 = require("@nx/devkit"); const target_defaults_utils_1 = require("@nx/devkit/src/generators/target-defaults-utils"); const has_webpack_plugin_1 = require("../../../utils/has-webpack-plugin"); const create_targets_1 = require("./create-targets"); function addProject(tree, options) { const project = { root: options.appProjectRoot, sourceRoot: (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src'), projectType: 'application', targets: {}, tags: options.parsedTags, }; if (options.bundler === 'esbuild') { (0, target_defaults_utils_1.addBuildTargetDefaults)(tree, '@nx/esbuild:esbuild'); project.targets.build = (0, create_targets_1.getEsBuildConfig)(project, options); } else if (options.bundler === 'webpack') { if (!(0, has_webpack_plugin_1.hasWebpackPlugin)(tree) && options.addPlugin === false) { (0, target_defaults_utils_1.addBuildTargetDefaults)(tree, `@nx/webpack:webpack`); project.targets.build = (0, create_targets_1.getWebpackBuildConfig)(project, options); } else if (options.isNest) { // If we are using Nest that has the webpack plugin we need to override the // build target so that node-env can be set to production or development so the serve target can be run in development mode project.targets.build = (0, create_targets_1.getNestWebpackBuildConfig)(); } } project.targets.serve = (0, create_targets_1.getServeConfig)(options); const packageJson = { name: options.importPath, version: '0.0.1', private: true, }; if (!options.useProjectJson) { packageJson.nx = { name: options.name !== options.importPath ? options.name : undefined, targets: project.targets, tags: project.tags?.length ? project.tags : undefined, }; } else { (0, devkit_1.addProjectConfiguration)(tree, options.name, project, options.standaloneConfig); } if (!options.useProjectJson || options.isUsingTsSolutionConfig) { (0, devkit_1.writeJson)(tree, (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'package.json'), packageJson); } }