@nx/rspack 16.8.2 → 17.2.0

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/rspack",
3
- "version": "16.8.2",
3
+ "version": "17.2.0",
4
4
  "type": "commonjs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,9 +19,9 @@
19
19
  "generators": "./generators.json",
20
20
  "executors": "./executors.json",
21
21
  "dependencies": {
22
- "@nx/devkit": "^16.8.0",
23
- "@nx/js": "^16.8.0",
24
- "@nx/linter": "^16.8.0",
22
+ "@nx/devkit": "^17.0.1",
23
+ "@nx/eslint": "^17.0.1",
24
+ "@nx/js": "^17.0.1",
25
25
  "@phenomnomnominal/tsquery": "~5.0.1",
26
26
  "ajv": "^8.12.0",
27
27
  "ajv-keywords": "5.1.0",
@@ -31,7 +31,8 @@
31
31
  "sass-loader": "^12.2.0",
32
32
  "stylus-loader": "^7.1.0",
33
33
  "tsconfig-paths": "4.2.0",
34
- "@nrwl/rspack": "16.8.2"
34
+ "webpack-sources": "3.2.3",
35
+ "@nrwl/rspack": "17.2.0"
35
36
  },
36
37
  "nx-migrations": {
37
38
  "migrations": "./migrations.json"
@@ -5,6 +5,7 @@ export interface RspackExecutorSchema {
5
5
  tsConfig: string;
6
6
  typeCheck?: boolean;
7
7
  outputPath: string;
8
+ outputFileName?: string;
8
9
  indexHtml?: string;
9
10
  mode?: Mode;
10
11
  watch?: boolean;
@@ -15,9 +16,10 @@ export interface RspackExecutorSchema {
15
16
  assets?: any[];
16
17
  extractLicenses?: boolean;
17
18
  fileReplacements?: FileReplacement[];
19
+ generatePackageJson?: boolean;
18
20
  }
19
21
 
20
22
  export interface FileReplacement {
21
23
  replace: string;
22
24
  with: string;
23
- }
25
+ }
@@ -18,6 +18,10 @@
18
18
  "type": "string",
19
19
  "description": "The output path for the bundle."
20
20
  },
21
+ "outputFileName": {
22
+ "type": "string",
23
+ "description": "The main output entry file"
24
+ },
21
25
  "tsConfig": {
22
26
  "type": "string",
23
27
  "description": "The tsconfig file to build the project."
@@ -89,6 +93,10 @@
89
93
  "type": "string",
90
94
  "description": "Mode to run the build in.",
91
95
  "enum": ["development", "production", "none"]
96
+ },
97
+ "generatePackageJson": {
98
+ "type": "boolean",
99
+ "description": "Generates a `package.json` and pruned lock file with the project's `node_module` dependencies populated for installing in a container. If a `package.json` exists in the project's directory, it will be reused with dependencies populated."
92
100
  }
93
101
  },
94
102
  "required": ["target", "main", "outputPath", "tsConfig", "rspackConfig"],
@@ -0,0 +1,12 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { type Compiler, type RspackPluginInstance } from '@rspack/core';
3
+ export declare class GeneratePackageJsonPlugin implements RspackPluginInstance {
4
+ private readonly options;
5
+ private readonly context;
6
+ private readonly projectGraph;
7
+ constructor(options: {
8
+ tsConfig: string;
9
+ outputFileName: string;
10
+ }, context: ExecutorContext);
11
+ apply(compiler: Compiler): void;
12
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeneratePackageJsonPlugin = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const js_1 = require("@nx/js");
6
+ const webpack_sources_1 = require("webpack-sources");
7
+ const pluginName = 'GeneratePackageJsonPlugin';
8
+ class GeneratePackageJsonPlugin {
9
+ constructor(options, context) {
10
+ this.options = options;
11
+ this.context = context;
12
+ this.projectGraph = context.projectGraph;
13
+ }
14
+ apply(compiler) {
15
+ compiler.hooks.thisCompilation.tap(pluginName, (compilation) => {
16
+ compilation.hooks.processAssets.tap({
17
+ name: pluginName,
18
+ stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL,
19
+ }, () => {
20
+ var _a;
21
+ const helperDependencies = (0, js_1.getHelperDependenciesFromProjectGraph)(this.context.root, this.context.projectName, this.projectGraph);
22
+ const importHelpers = !!(0, js_1.readTsConfig)(this.options.tsConfig).options
23
+ .importHelpers;
24
+ const shouldAddHelperDependency = importHelpers &&
25
+ helperDependencies.every((dep) => dep.target !== js_1.HelperDependency.tsc);
26
+ if (shouldAddHelperDependency) {
27
+ helperDependencies.push({
28
+ type: 'static',
29
+ source: this.context.projectName,
30
+ target: js_1.HelperDependency.tsc,
31
+ });
32
+ }
33
+ const packageJson = (0, js_1.createPackageJson)(this.context.projectName, this.projectGraph, {
34
+ target: this.context.targetName,
35
+ root: this.context.root,
36
+ isProduction: true,
37
+ helperDependencies: helperDependencies.map((dep) => dep.target),
38
+ });
39
+ packageJson.main = (_a = packageJson.main) !== null && _a !== void 0 ? _a : this.options.outputFileName;
40
+ compilation.emitAsset('package.json', new webpack_sources_1.RawSource((0, devkit_1.serializeJson)(packageJson)));
41
+ const packageManager = (0, devkit_1.detectPackageManager)(this.context.root);
42
+ compilation.emitAsset((0, js_1.getLockFileName)(packageManager), new webpack_sources_1.RawSource((0, js_1.createLockFile)(packageJson, this.projectGraph, packageManager)));
43
+ });
44
+ });
45
+ }
46
+ }
47
+ exports.GeneratePackageJsonPlugin = GeneratePackageJsonPlugin;
48
+ //# sourceMappingURL=generate-package-json-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-package-json-plugin.js","sourceRoot":"","sources":["../../../../../packages/rspack/src/plugins/generate-package-json-plugin.ts"],"names":[],"mappings":";;;AAAA,uCAKoB;AACpB,+BAOgB;AAEhB,qDAA4C;AAE5C,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C,MAAa,yBAAyB;IAGpC,YACmB,OAAqD,EACrD,OAAwB;QADxB,YAAO,GAAP,OAAO,CAA8C;QACrD,YAAO,GAAP,OAAO,CAAiB;QAEzC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,EAAE;YAC7D,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CACjC;gBACE,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B;aACpE,EACD,GAAG,EAAE;;gBACH,MAAM,kBAAkB,GAAG,IAAA,0CAAqC,EAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CAAC,YAAY,CAClB,CAAC;gBAEF,MAAM,aAAa,GAAG,CAAC,CAAC,IAAA,iBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO;qBAChE,aAAa,CAAC;gBACjB,MAAM,yBAAyB,GAC7B,aAAa;oBACb,kBAAkB,CAAC,KAAK,CACtB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,qBAAgB,CAAC,GAAG,CAC7C,CAAC;gBAEJ,IAAI,yBAAyB,EAAE;oBAC7B,kBAAkB,CAAC,IAAI,CAAC;wBACtB,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;wBAChC,MAAM,EAAE,qBAAgB,CAAC,GAAG;qBAC7B,CAAC,CAAC;iBACJ;gBAED,MAAM,WAAW,GAAG,IAAA,sBAAiB,EACnC,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CAAC,YAAY,EACjB;oBACE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;oBAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBACvB,YAAY,EAAE,IAAI;oBAClB,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;iBAChE,CACF,CAAC;gBACF,WAAW,CAAC,IAAI,GAAG,MAAA,WAAW,CAAC,IAAI,mCAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBAEnE,WAAW,CAAC,SAAS,CACnB,cAAc,EACd,IAAI,2BAAS,CAAC,IAAA,sBAAa,EAAC,WAAW,CAAC,CAAC,CAC1C,CAAC;gBACF,MAAM,cAAc,GAAG,IAAA,6BAAoB,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/D,WAAW,CAAC,SAAS,CACnB,IAAA,oBAAe,EAAC,cAAc,CAAC,EAC/B,IAAI,2BAAS,CACX,IAAA,mBAAc,EAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAC/D,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAnED,8DAmEC"}
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withNx = void 0;
4
+ const license_webpack_plugin_1 = require("license-webpack-plugin");
4
5
  const path = require("path");
6
+ const generate_package_json_plugin_1 = require("../plugins/generate-package-json-plugin");
5
7
  const get_copy_patterns_1 = require("./get-copy-patterns");
6
8
  const normalize_assets_1 = require("./normalize-assets");
7
- const license_webpack_plugin_1 = require("license-webpack-plugin");
8
9
  function withNx(_opts = {}) {
9
10
  return function makeConfig(config, { options, context }) {
10
- var _a;
11
+ var _a, _b;
11
12
  const isProd = process.env.NODE_ENV === 'production' || options.mode === 'production';
12
13
  const project = context.projectGraph.nodes[context.projectName];
13
14
  const sourceRoot = path.join(context.root, project.data.sourceRoot);
@@ -28,7 +29,14 @@ function withNx(_opts = {}) {
28
29
  outputFilename: `3rdpartylicenses.txt`,
29
30
  }));
30
31
  }
31
- options.fileReplacements.forEach(item => {
32
+ if (options.generatePackageJson) {
33
+ const mainOutputFile = options.main.split('/').pop().split('.')[0] + '.js';
34
+ plugins.push(new generate_package_json_plugin_1.GeneratePackageJsonPlugin({
35
+ tsConfig: options.tsConfig,
36
+ outputFileName: (_b = options.outputFileName) !== null && _b !== void 0 ? _b : mainOutputFile,
37
+ }, context));
38
+ }
39
+ options.fileReplacements.forEach((item) => {
32
40
  alias[item.replace] = item.with;
33
41
  });
34
42
  const externals = {};
@@ -1 +1 @@
1
- {"version":3,"file":"with-nx.js","sourceRoot":"","sources":["../../../../../packages/rspack/src/utils/with-nx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"with-nx.js","sourceRoot":"","sources":["../../../../../packages/rspack/src/utils/with-nx.ts"],"names":[],"mappings":"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"}