@nx/node 21.4.0-beta.4 → 21.4.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/node",
3
- "version": "21.4.0-beta.4",
3
+ "version": "21.4.0-beta.6",
4
4
  "private": false,
5
5
  "description": "The Node Plugin for Nx contains generators to manage Node applications within an Nx workspace.",
6
6
  "repository": {
@@ -32,16 +32,16 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "tslib": "^2.3.0",
35
- "@nx/devkit": "21.4.0-beta.4",
36
- "@nx/jest": "21.4.0-beta.4",
37
- "@nx/js": "21.4.0-beta.4",
38
- "@nx/eslint": "21.4.0-beta.4",
39
- "@nx/docker": "21.4.0-beta.4",
35
+ "@nx/devkit": "21.4.0-beta.6",
36
+ "@nx/jest": "21.4.0-beta.6",
37
+ "@nx/js": "21.4.0-beta.6",
38
+ "@nx/eslint": "21.4.0-beta.6",
39
+ "@nx/docker": "21.4.0-beta.6",
40
40
  "tcp-port-used": "^1.0.2",
41
41
  "kill-port": "^1.6.1"
42
42
  },
43
43
  "devDependencies": {
44
- "nx": "21.4.0-beta.4"
44
+ "nx": "21.4.0-beta.6"
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "public"
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../../../packages/node/src/generators/application/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAIjB,IAAI,EAIL,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAwClC,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAMpE;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAgL5E;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../../../packages/node/src/generators/application/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAIjB,IAAI,EAIL,MAAM,YAAY,CAAC;AAcpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAwClC,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAMpE;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAwL5E;AAED,eAAe,oBAAoB,CAAC"}
@@ -50,11 +50,12 @@ async function applicationGenerator(tree, schema) {
50
50
  }
51
51
  async function applicationGeneratorInternal(tree, schema) {
52
52
  const tasks = [];
53
+ const addTsPlugin = (0, ts_solution_setup_1.shouldConfigureTsSolutionSetup)(tree, schema.addPlugin, schema.useTsSolution);
53
54
  const jsInitTask = await (0, js_1.initGenerator)(tree, {
54
55
  ...schema,
55
56
  tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',
56
57
  skipFormat: true,
57
- addTsPlugin: schema.useTsSolution,
58
+ addTsPlugin,
58
59
  });
59
60
  tasks.push(jsInitTask);
60
61
  const options = await (0, lib_1.normalizeOptions)(tree, schema);
@@ -86,7 +87,7 @@ async function applicationGeneratorInternal(tree, schema) {
86
87
  skipFormat: true,
87
88
  });
88
89
  tasks.push(initTask);
89
- const installTask = (0, lib_1.addProjectDependencies)(tree, options);
90
+ const { installTask, frameworkDependencies } = (0, lib_1.addProjectDependencies)(tree, options);
90
91
  tasks.push(installTask);
91
92
  if (options.bundler === 'webpack') {
92
93
  const { webpackInitGenerator } = (0, devkit_1.ensurePackage)('@nx/webpack', versions_1.nxVersion);
@@ -104,7 +105,7 @@ async function applicationGeneratorInternal(tree, schema) {
104
105
  }
105
106
  }
106
107
  (0, lib_1.addAppFiles)(tree, options);
107
- (0, lib_1.addProject)(tree, options);
108
+ (0, lib_1.addProject)(tree, options, frameworkDependencies);
108
109
  // If we are using the new TS solution
109
110
  // We need to update the workspace file (package.json or pnpm-workspaces.yaml) to include the new project
110
111
  if (options.isUsingTsSolutionConfig) {
@@ -1,4 +1,7 @@
1
1
  import { GeneratorCallback, Tree } from '@nx/devkit';
2
2
  import { NormalizedSchema } from './normalized-schema';
3
- export declare function addProjectDependencies(tree: Tree, options: NormalizedSchema): GeneratorCallback;
3
+ export declare function addProjectDependencies(tree: Tree, options: NormalizedSchema): {
4
+ installTask: GeneratorCallback;
5
+ frameworkDependencies: Record<string, string>;
6
+ };
4
7
  //# sourceMappingURL=add-dependencies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-dependencies.d.ts","sourceRoot":"","sources":["../../../../../../../packages/node/src/generators/application/lib/add-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAEjB,IAAI,EAEL,MAAM,YAAY,CAAC;AAepB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,iBAAiB,CA0DnB"}
1
+ {"version":3,"file":"add-dependencies.d.ts","sourceRoot":"","sources":["../../../../../../../packages/node/src/generators/application/lib/add-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAEjB,IAAI,EAEL,MAAM,YAAY,CAAC;AAepB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB;IACD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C,CAkDA"}
@@ -37,19 +37,15 @@ function addProjectDependencies(tree, options) {
37
37
  },
38
38
  fastify: {},
39
39
  };
40
- const projectPackageJson = (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'package.json');
41
- if (tree.exists(projectPackageJson)) {
42
- (0, devkit_1.updateJson)(tree, projectPackageJson, (json) => {
43
- json.dependencies ??= { ...frameworkDependencies };
44
- return json;
45
- });
46
- }
47
- return (0, devkit_1.addDependenciesToPackageJson)(tree, {
48
- ...frameworkDependencies[options.framework],
49
- tslib: versions_2.tslibVersion,
50
- }, {
51
- ...frameworkDevDependencies[options.framework],
52
- ...bundlers[options.bundler],
53
- '@types/node': versions_2.typesNodeVersion,
54
- });
40
+ return {
41
+ installTask: (0, devkit_1.addDependenciesToPackageJson)(tree, {
42
+ ...frameworkDependencies[options.framework],
43
+ tslib: versions_2.tslibVersion,
44
+ }, {
45
+ ...frameworkDevDependencies[options.framework],
46
+ ...bundlers[options.bundler],
47
+ '@types/node': versions_2.typesNodeVersion,
48
+ }),
49
+ frameworkDependencies: frameworkDependencies[options.framework],
50
+ };
55
51
  }
@@ -1,4 +1,4 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  import { NormalizedSchema } from './normalized-schema';
3
- export declare function addProject(tree: Tree, options: NormalizedSchema): void;
3
+ export declare function addProject(tree: Tree, options: NormalizedSchema, frameworkDependencies: Record<string, string>): void;
4
4
  //# sourceMappingURL=create-project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../../../../../../packages/node/src/generators/application/lib/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EAEL,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AASvD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,QAwD/D"}
1
+ {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../../../../../../packages/node/src/generators/application/lib/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EAEL,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AASvD,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,EACzB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QA0D9C"}
@@ -5,7 +5,7 @@ const devkit_1 = require("@nx/devkit");
5
5
  const target_defaults_utils_1 = require("@nx/devkit/src/generators/target-defaults-utils");
6
6
  const has_webpack_plugin_1 = require("../../../utils/has-webpack-plugin");
7
7
  const create_targets_1 = require("./create-targets");
8
- function addProject(tree, options) {
8
+ function addProject(tree, options, frameworkDependencies) {
9
9
  const project = {
10
10
  root: options.appProjectRoot,
11
11
  sourceRoot: (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src'),
@@ -37,6 +37,7 @@ function addProject(tree, options) {
37
37
  name: options.importPath,
38
38
  version: '0.0.1',
39
39
  private: true,
40
+ dependencies: { ...frameworkDependencies },
40
41
  };
41
42
  if (!options.useProjectJson) {
42
43
  packageJson.nx = {
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../../packages/node/src/generators/library/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAUjB,IAAI,EAIL,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAMhE;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BA0ExE;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../../packages/node/src/generators/library/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAUjB,IAAI,EAIL,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAMhE;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BA0ExE;AAED,eAAe,gBAAgB,CAAC"}
@@ -92,7 +92,11 @@ async function normalizeOptions(tree, options) {
92
92
  const parsedTags = options.tags
93
93
  ? options.tags.split(',').map((s) => s.trim())
94
94
  : [];
95
- const isUsingTsSolutionConfig = (0, ts_solution_setup_1.isUsingTsSolutionSetup)(tree);
95
+ // this helper is called before the jsLibraryGenerator is called, so, if the
96
+ // TS solution setup is not configured, we additionally check if the TS
97
+ // solution setup will be configured by the jsLibraryGenerator
98
+ const isUsingTsSolutionConfig = (0, ts_solution_setup_1.isUsingTsSolutionSetup)(tree) ||
99
+ (0, ts_solution_setup_1.shouldConfigureTsSolutionSetup)(tree, options.addPlugin);
96
100
  return {
97
101
  ...options,
98
102
  fileName,
@@ -10,18 +10,19 @@ FROM docker.io/node:lts-alpine
10
10
 
11
11
  ENV HOST=0.0.0.0
12
12
  ENV PORT=3000
13
+ <% if(packageManager === "pnpm" || packageManager === 'yarn') { %>
14
+ RUN corepack enable
15
+ <% } %>
13
16
 
14
17
  WORKDIR /app
15
18
 
16
- RUN addgroup --system <%= sanitizedProjectName %> && \
17
- adduser --system -G <%= sanitizedProjectName %> <%= sanitizedProjectName %>
18
-
19
- COPY <%= buildLocation %> <%= sanitizedProjectName %>/
20
- <% if (skipDockerPlugin) { %>COPY <%= projectPath %>/package.json <%= sanitizedProjectName %>/<% } else { %>COPY package.json <%= sanitizedProjectName %>/<% } %>
21
- RUN chown -R <%= sanitizedProjectName %>:<%= sanitizedProjectName %> .
19
+ COPY <%= buildLocation %> .
22
20
 
23
21
  # You can remove this install step if you build with `--bundle` option.
24
22
  # The bundled output will include external dependencies.
25
- RUN npm --prefix <%= sanitizedProjectName %> --omit=dev -f install
26
-
27
- CMD [ "node", "<%= sanitizedProjectName %>" ]
23
+ <% if(packageManager === 'npm') { %>
24
+ RUN npm --omit=dev -f install
25
+ <% } else { %>
26
+ RUN <%= packageManager %> install
27
+ <% } %>
28
+ CMD [ "node", "main.js" ]
@@ -1 +1 @@
1
- {"version":3,"file":"setup-docker.d.ts","sourceRoot":"","sources":["../../../../../../packages/node/src/generators/setup-docker/setup-docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAIjB,IAAI,EAEL,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AA4E9C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,QAqB1E;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,kBAAkB,8BAcjC;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"setup-docker.d.ts","sourceRoot":"","sources":["../../../../../../packages/node/src/generators/setup-docker/setup-docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAIjB,IAAI,EAML,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAsF9C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,QAqB1E;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,kBAAkB,8BAcjC;AAED,eAAe,oBAAoB,CAAC"}
@@ -5,6 +5,7 @@ exports.setupDockerGenerator = setupDockerGenerator;
5
5
  const devkit_1 = require("@nx/devkit");
6
6
  const generators_1 = require("@nx/docker/generators");
7
7
  const path_1 = require("path");
8
+ const fs_1 = require("fs");
8
9
  function normalizeOptions(tree, setupOptions) {
9
10
  return {
10
11
  ...setupOptions,
@@ -41,7 +42,8 @@ async function addDocker(tree, options) {
41
42
  let buildLocation;
42
43
  if (options.skipDockerPlugin) {
43
44
  // Legacy mode: use workspace-relative paths
44
- buildLocation = finalOutputPath;
45
+ // docker target is set to run at project root, so ensure offset to workspace root
46
+ buildLocation = (0, devkit_1.joinPathFragments)((0, devkit_1.offsetFromRoot)(projectConfig.root), finalOutputPath);
45
47
  }
46
48
  else {
47
49
  // New mode: use project-relative paths
@@ -53,6 +55,9 @@ async function addDocker(tree, options) {
53
55
  ? finalOutputPath.substring(projectConfig.root.length)
54
56
  : 'dist';
55
57
  }
58
+ const packageManager = (0, fs_1.existsSync)(projectConfig.root)
59
+ ? (0, devkit_1.detectPackageManager)(projectConfig.root)
60
+ : (0, devkit_1.detectPackageManager)(devkit_1.workspaceRoot);
56
61
  (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files'), projectConfig.root, {
57
62
  tmpl: '',
58
63
  buildLocation,
@@ -60,6 +65,7 @@ async function addDocker(tree, options) {
60
65
  projectPath: projectConfig.root,
61
66
  sanitizedProjectName,
62
67
  skipDockerPlugin: options.skipDockerPlugin,
68
+ packageManager,
63
69
  });
64
70
  return installTask;
65
71
  }