@nx/vite 0.0.0-pr-22179-271588f

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.
Files changed (170) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +68 -0
  3. package/executors.d.ts +8 -0
  4. package/executors.js +27 -0
  5. package/executors.js.map +1 -0
  6. package/executors.json +46 -0
  7. package/generators.json +25 -0
  8. package/index.d.ts +8 -0
  9. package/index.js +26 -0
  10. package/index.js.map +1 -0
  11. package/migrations.json +253 -0
  12. package/package.json +62 -0
  13. package/plugin.d.ts +1 -0
  14. package/plugin.js +21 -0
  15. package/plugin.js.map +1 -0
  16. package/plugins/nx-tsconfig-paths.plugin.d.ts +24 -0
  17. package/plugins/nx-tsconfig-paths.plugin.js +132 -0
  18. package/plugins/nx-tsconfig-paths.plugin.js.map +1 -0
  19. package/plugins/rollup-replace-files.plugin.d.ts +16 -0
  20. package/plugins/rollup-replace-files.plugin.js +51 -0
  21. package/plugins/rollup-replace-files.plugin.js.map +1 -0
  22. package/src/executors/build/build.impl.d.ts +13 -0
  23. package/src/executors/build/build.impl.js +187 -0
  24. package/src/executors/build/build.impl.js.map +1 -0
  25. package/src/executors/build/compat.d.ts +2 -0
  26. package/src/executors/build/compat.js +12 -0
  27. package/src/executors/build/compat.js.map +1 -0
  28. package/src/executors/build/schema.d.js +3 -0
  29. package/src/executors/build/schema.d.js.map +1 -0
  30. package/src/executors/build/schema.d.ts +10 -0
  31. package/src/executors/build/schema.json +67 -0
  32. package/src/executors/dev-server/compat.d.ts +2 -0
  33. package/src/executors/dev-server/compat.js +12 -0
  34. package/src/executors/dev-server/compat.js.map +1 -0
  35. package/src/executors/dev-server/dev-server.impl.d.ts +7 -0
  36. package/src/executors/dev-server/dev-server.impl.js +136 -0
  37. package/src/executors/dev-server/dev-server.impl.js.map +1 -0
  38. package/src/executors/dev-server/schema.d.js +3 -0
  39. package/src/executors/dev-server/schema.d.js.map +1 -0
  40. package/src/executors/dev-server/schema.d.ts +5 -0
  41. package/src/executors/dev-server/schema.json +38 -0
  42. package/src/executors/preview-server/compat.d.ts +2 -0
  43. package/src/executors/preview-server/compat.js +12 -0
  44. package/src/executors/preview-server/compat.js.map +1 -0
  45. package/src/executors/preview-server/preview-server.impl.d.ts +7 -0
  46. package/src/executors/preview-server/preview-server.impl.js +176 -0
  47. package/src/executors/preview-server/preview-server.impl.js.map +1 -0
  48. package/src/executors/preview-server/schema.d.js +3 -0
  49. package/src/executors/preview-server/schema.d.js.map +1 -0
  50. package/src/executors/preview-server/schema.d.ts +5 -0
  51. package/src/executors/preview-server/schema.json +37 -0
  52. package/src/executors/test/compat.d.ts +2 -0
  53. package/src/executors/test/compat.js +12 -0
  54. package/src/executors/test/compat.js.map +1 -0
  55. package/src/executors/test/lib/nx-reporter.d.ts +14 -0
  56. package/src/executors/test/lib/nx-reporter.js +40 -0
  57. package/src/executors/test/lib/nx-reporter.js.map +1 -0
  58. package/src/executors/test/lib/utils.d.ts +4 -0
  59. package/src/executors/test/lib/utils.js +77 -0
  60. package/src/executors/test/lib/utils.js.map +1 -0
  61. package/src/executors/test/schema.d.js +3 -0
  62. package/src/executors/test/schema.d.js.map +1 -0
  63. package/src/executors/test/schema.d.ts +7 -0
  64. package/src/executors/test/schema.json +36 -0
  65. package/src/executors/test/vitest.impl.d.ts +6 -0
  66. package/src/executors/test/vitest.impl.js +67 -0
  67. package/src/executors/test/vitest.impl.js.map +1 -0
  68. package/src/generators/configuration/configuration.d.ts +5 -0
  69. package/src/generators/configuration/configuration.js +147 -0
  70. package/src/generators/configuration/configuration.js.map +1 -0
  71. package/src/generators/configuration/lib/convert-non-vite.d.ts +5 -0
  72. package/src/generators/configuration/lib/convert-non-vite.js +62 -0
  73. package/src/generators/configuration/lib/convert-non-vite.js.map +1 -0
  74. package/src/generators/configuration/schema.d.js +3 -0
  75. package/src/generators/configuration/schema.d.js.map +1 -0
  76. package/src/generators/configuration/schema.d.ts +12 -0
  77. package/src/generators/configuration/schema.json +61 -0
  78. package/src/generators/init/init.d.ts +6 -0
  79. package/src/generators/init/init.js +82 -0
  80. package/src/generators/init/init.js.map +1 -0
  81. package/src/generators/init/lib/utils.d.ts +6 -0
  82. package/src/generators/init/lib/utils.js +80 -0
  83. package/src/generators/init/lib/utils.js.map +1 -0
  84. package/src/generators/init/schema.d.js +3 -0
  85. package/src/generators/init/schema.d.js.map +1 -0
  86. package/src/generators/init/schema.d.ts +7 -0
  87. package/src/generators/init/schema.json +31 -0
  88. package/src/generators/vitest/files/tsconfig.spec.json__tmpl__ +20 -0
  89. package/src/generators/vitest/schema.d.js +3 -0
  90. package/src/generators/vitest/schema.d.js.map +1 -0
  91. package/src/generators/vitest/schema.d.ts +11 -0
  92. package/src/generators/vitest/schema.json +56 -0
  93. package/src/generators/vitest/vitest-generator.d.ts +5 -0
  94. package/src/generators/vitest/vitest-generator.js +187 -0
  95. package/src/generators/vitest/vitest-generator.js.map +1 -0
  96. package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.d.ts +3 -0
  97. package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js +67 -0
  98. package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js.map +1 -0
  99. package/src/migrations/update-15-3-4/set-mode-in-configuration.d.ts +3 -0
  100. package/src/migrations/update-15-3-4/set-mode-in-configuration.js +37 -0
  101. package/src/migrations/update-15-3-4/set-mode-in-configuration.js.map +1 -0
  102. package/src/migrations/update-15-4-3/update-report-directory.d.ts +3 -0
  103. package/src/migrations/update-15-4-3/update-report-directory.js +39 -0
  104. package/src/migrations/update-15-4-3/update-report-directory.js.map +1 -0
  105. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
  106. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +15 -0
  107. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js.map +1 -0
  108. package/src/migrations/update-16-4-1-update-test-file-config/update-16-4-1-test-file-config.d.ts +2 -0
  109. package/src/migrations/update-16-4-1-update-test-file-config/update-16-4-1-test-file-config.js +35 -0
  110. package/src/migrations/update-16-4-1-update-test-file-config/update-16-4-1-test-file-config.js.map +1 -0
  111. package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.d.ts +2 -0
  112. package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js +39 -0
  113. package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js.map +1 -0
  114. package/src/migrations/update-17-1-0/move-target-defaults.d.ts +2 -0
  115. package/src/migrations/update-17-1-0/move-target-defaults.js +77 -0
  116. package/src/migrations/update-17-1-0/move-target-defaults.js.map +1 -0
  117. package/src/migrations/update-17-2-0/lib/add-file-replacements.d.ts +2 -0
  118. package/src/migrations/update-17-2-0/lib/add-file-replacements.js +67 -0
  119. package/src/migrations/update-17-2-0/lib/add-file-replacements.js.map +1 -0
  120. package/src/migrations/update-17-2-0/lib/edit-build-config.d.ts +2 -0
  121. package/src/migrations/update-17-2-0/lib/edit-build-config.js +121 -0
  122. package/src/migrations/update-17-2-0/lib/edit-build-config.js.map +1 -0
  123. package/src/migrations/update-17-2-0/lib/edit-test-config.d.ts +2 -0
  124. package/src/migrations/update-17-2-0/lib/edit-test-config.js +83 -0
  125. package/src/migrations/update-17-2-0/lib/edit-test-config.js.map +1 -0
  126. package/src/migrations/update-17-2-0/update-vite-config.d.ts +5 -0
  127. package/src/migrations/update-17-2-0/update-vite-config.js +68 -0
  128. package/src/migrations/update-17-2-0/update-vite-config.js.map +1 -0
  129. package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.d.ts +3 -0
  130. package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js +117 -0
  131. package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js.map +1 -0
  132. package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.d.ts +2 -0
  133. package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js +45 -0
  134. package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js.map +1 -0
  135. package/src/plugins/plugin.d.ts +10 -0
  136. package/src/plugins/plugin.js +223 -0
  137. package/src/plugins/plugin.js.map +1 -0
  138. package/src/utils/ensure-dependencies.d.ts +8 -0
  139. package/src/utils/ensure-dependencies.js +34 -0
  140. package/src/utils/ensure-dependencies.js.map +1 -0
  141. package/src/utils/executor-utils.d.ts +11 -0
  142. package/src/utils/executor-utils.js +59 -0
  143. package/src/utils/executor-utils.js.map +1 -0
  144. package/src/utils/find-vite-config.d.ts +3 -0
  145. package/src/utils/find-vite-config.js +46 -0
  146. package/src/utils/find-vite-config.js.map +1 -0
  147. package/src/utils/generator-utils.d.ts +42 -0
  148. package/src/utils/generator-utils.js +527 -0
  149. package/src/utils/generator-utils.js.map +1 -0
  150. package/src/utils/options-utils.d.ts +17 -0
  151. package/src/utils/options-utils.js +100 -0
  152. package/src/utils/options-utils.js.map +1 -0
  153. package/src/utils/test-files/angular-project.config.json +89 -0
  154. package/src/utils/test-files/react-lib-non-buildable-jest.json +22 -0
  155. package/src/utils/test-files/react-lib-non-buildable-vitest.json +22 -0
  156. package/src/utils/test-files/react-mixed-project.config.json +47 -0
  157. package/src/utils/test-files/react-vite-project.config.json +54 -0
  158. package/src/utils/test-files/test-vite-configs.d.ts +31 -0
  159. package/src/utils/test-files/test-vite-configs.js +291 -0
  160. package/src/utils/test-files/test-vite-configs.js.map +1 -0
  161. package/src/utils/test-files/unknown-project.config.json +69 -0
  162. package/src/utils/test-utils.d.ts +9 -0
  163. package/src/utils/test-utils.js +522 -0
  164. package/src/utils/test-utils.js.map +1 -0
  165. package/src/utils/versions.d.ts +11 -0
  166. package/src/utils/versions.js +55 -0
  167. package/src/utils/versions.js.map +1 -0
  168. package/src/utils/vite-config-edit-utils.d.ts +3 -0
  169. package/src/utils/vite-config-edit-utils.js +314 -0
  170. package/src/utils/vite-config-edit-utils.js.map +1 -0
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "nxViteTsPaths", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return nxViteTsPaths;
6
+ }
7
+ });
8
+ const _devkit = require("@nx/devkit");
9
+ const _nodefs = require("node:fs");
10
+ const _nodepath = require("node:path");
11
+ const _tsconfigpaths = require("tsconfig-paths");
12
+ function nxViteTsPaths(options = {}) {
13
+ var _options, _options1;
14
+ let matchTsPathEsm;
15
+ let matchTsPathFallback;
16
+ let tsConfigPathsEsm;
17
+ let tsConfigPathsFallback;
18
+ var _extensions;
19
+ (_extensions = (_options = options).extensions) != null ? _extensions : _options.extensions = [
20
+ '.ts',
21
+ '.tsx',
22
+ '.js',
23
+ '.jsx',
24
+ '.json',
25
+ '.mjs',
26
+ '.cjs'
27
+ ];
28
+ var _mainFields;
29
+ (_mainFields = (_options1 = options).mainFields) != null ? _mainFields : _options1.mainFields = [
30
+ [
31
+ 'exports',
32
+ '.',
33
+ 'import'
34
+ ],
35
+ 'module',
36
+ 'main'
37
+ ];
38
+ return {
39
+ name: 'nx-vite-ts-paths',
40
+ configResolved (config) {
41
+ const projectRoot = config.root;
42
+ const projectRootFromWorkspaceRoot = (0, _nodepath.relative)(_devkit.workspaceRoot, projectRoot);
43
+ const foundTsConfigPath = getTsConfig((0, _nodepath.join)(_devkit.workspaceRoot, 'tmp', projectRootFromWorkspaceRoot, 'tsconfig.generated.json'));
44
+ if (!foundTsConfigPath) {
45
+ throw new Error((0, _devkit.stripIndents)`Unable to find a tsconfig in the workspace!
46
+ There should at least be a tsconfig.base.json or tsconfig.json in the root of the workspace ${_devkit.workspaceRoot}`);
47
+ }
48
+ const parsed = (0, _tsconfigpaths.loadConfig)(foundTsConfigPath);
49
+ logIt('first parsed tsconfig: ', parsed);
50
+ if (parsed.resultType === 'failed') {
51
+ throw new Error(`Failed loading tsonfig at ${foundTsConfigPath}`);
52
+ }
53
+ tsConfigPathsEsm = parsed;
54
+ matchTsPathEsm = (0, _tsconfigpaths.createMatchPath)(parsed.absoluteBaseUrl, parsed.paths, options.mainFields);
55
+ const rootLevelTsConfig = getTsConfig((0, _nodepath.join)(_devkit.workspaceRoot, 'tsconfig.base.json'));
56
+ const rootLevelParsed = (0, _tsconfigpaths.loadConfig)(rootLevelTsConfig);
57
+ logIt('fallback parsed tsconfig: ', rootLevelParsed);
58
+ if (rootLevelParsed.resultType === 'success') {
59
+ tsConfigPathsFallback = rootLevelParsed;
60
+ matchTsPathFallback = (0, _tsconfigpaths.createMatchPath)(rootLevelParsed.absoluteBaseUrl, rootLevelParsed.paths, [
61
+ 'main',
62
+ 'module'
63
+ ]);
64
+ }
65
+ },
66
+ resolveId (importPath) {
67
+ let resolvedFile;
68
+ try {
69
+ resolvedFile = matchTsPathEsm(importPath);
70
+ } catch (e) {
71
+ logIt('Using fallback path matching.');
72
+ resolvedFile = matchTsPathFallback == null ? void 0 : matchTsPathFallback(importPath);
73
+ }
74
+ if (!resolvedFile) {
75
+ if (tsConfigPathsEsm || tsConfigPathsFallback) {
76
+ logIt(`Unable to resolve ${importPath} with tsconfig paths. Using fallback file matching.`);
77
+ resolvedFile = loadFileFromPaths(tsConfigPathsEsm, importPath) || loadFileFromPaths(tsConfigPathsFallback, importPath);
78
+ } else {
79
+ logIt(`Unable to resolve ${importPath} with tsconfig paths`);
80
+ }
81
+ }
82
+ logIt(`Resolved ${importPath} to ${resolvedFile}`);
83
+ // Returning null defers to other resolveId functions and eventually the default resolution behavior
84
+ // https://rollupjs.org/plugin-development/#resolveid
85
+ return resolvedFile || null;
86
+ }
87
+ };
88
+ function getTsConfig(preferredTsConfigPath) {
89
+ return [
90
+ (0, _nodepath.resolve)(preferredTsConfigPath),
91
+ (0, _nodepath.resolve)((0, _nodepath.join)(_devkit.workspaceRoot, 'tsconfig.base.json')),
92
+ (0, _nodepath.resolve)((0, _nodepath.join)(_devkit.workspaceRoot, 'tsconfig.json'))
93
+ ].find((tsPath)=>{
94
+ if ((0, _nodefs.existsSync)(tsPath)) {
95
+ logIt('Found tsconfig at', tsPath);
96
+ return tsPath;
97
+ }
98
+ });
99
+ }
100
+ function logIt(...msg) {
101
+ if (process.env.NX_VERBOSE_LOGGING === 'true' || (options == null ? void 0 : options.debug)) {
102
+ console.debug('\n[Nx Vite TsPaths]', ...msg);
103
+ }
104
+ }
105
+ function loadFileFromPaths(tsconfig, importPath) {
106
+ logIt(`Trying to resolve file from config in ${tsconfig.configFileAbsolutePath}`);
107
+ let resolvedFile;
108
+ for(const alias in tsconfig.paths){
109
+ const paths = tsconfig.paths[alias];
110
+ const normalizedImport = alias.replace(/\/\*$/, '');
111
+ if (importPath.startsWith(normalizedImport)) {
112
+ const joinedPath = (0, _devkit.joinPathFragments)(tsconfig.absoluteBaseUrl, paths[0].replace(/\/\*$/, ''));
113
+ resolvedFile = findFile(importPath.replace(normalizedImport, joinedPath));
114
+ }
115
+ }
116
+ return resolvedFile;
117
+ }
118
+ function findFile(path) {
119
+ for (const ext of options.extensions){
120
+ const resolvedPath = (0, _nodepath.resolve)(path + ext);
121
+ if ((0, _nodefs.existsSync)(resolvedPath)) {
122
+ return resolvedPath;
123
+ }
124
+ const resolvedIndexPath = (0, _nodepath.resolve)(path, `index${ext}`);
125
+ if ((0, _nodefs.existsSync)(resolvedIndexPath)) {
126
+ return resolvedIndexPath;
127
+ }
128
+ }
129
+ }
130
+ }
131
+
132
+ //# sourceMappingURL=nx-tsconfig-paths.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../packages/vite/plugins/nx-tsconfig-paths.plugin.ts"],"sourcesContent":["import { joinPathFragments, stripIndents, workspaceRoot } from '@nx/devkit';\nimport { existsSync } from 'node:fs';\nimport { relative, join, resolve } from 'node:path';\nimport {\n loadConfig,\n createMatchPath,\n MatchPath,\n ConfigLoaderSuccessResult,\n} from 'tsconfig-paths';\n\nexport interface nxViteTsPathsOptions {\n /**\n * Enable debug logging\n * @default false\n **/\n debug?: boolean;\n /**\n * export fields in package.json to use for resolving\n * @default [['exports', '.', 'import'], 'module', 'main']\n *\n * fallback resolution will use ['main', 'module']\n **/\n mainFields?: (string | string[])[];\n /**\n * extensions to check when resolving files when package.json resolution fails\n * @default ['.ts', '.tsx', '.js', '.jsx', '.json', '.mjs', '.cjs']\n **/\n extensions?: string[];\n}\n\nexport function nxViteTsPaths(options: nxViteTsPathsOptions = {}) {\n let matchTsPathEsm: MatchPath;\n let matchTsPathFallback: MatchPath | undefined;\n let tsConfigPathsEsm: ConfigLoaderSuccessResult;\n let tsConfigPathsFallback: ConfigLoaderSuccessResult;\n\n options.extensions ??= [\n '.ts',\n '.tsx',\n '.js',\n '.jsx',\n '.json',\n '.mjs',\n '.cjs',\n ];\n options.mainFields ??= [['exports', '.', 'import'], 'module', 'main'];\n\n return {\n name: 'nx-vite-ts-paths',\n configResolved(config: any) {\n const projectRoot = config.root;\n const projectRootFromWorkspaceRoot = relative(workspaceRoot, projectRoot);\n\n const foundTsConfigPath = getTsConfig(\n join(\n workspaceRoot,\n 'tmp',\n projectRootFromWorkspaceRoot,\n 'tsconfig.generated.json'\n )\n );\n if (!foundTsConfigPath) {\n throw new Error(stripIndents`Unable to find a tsconfig in the workspace! \nThere should at least be a tsconfig.base.json or tsconfig.json in the root of the workspace ${workspaceRoot}`);\n }\n const parsed = loadConfig(foundTsConfigPath);\n\n logIt('first parsed tsconfig: ', parsed);\n if (parsed.resultType === 'failed') {\n throw new Error(`Failed loading tsonfig at ${foundTsConfigPath}`);\n }\n tsConfigPathsEsm = parsed;\n\n matchTsPathEsm = createMatchPath(\n parsed.absoluteBaseUrl,\n parsed.paths,\n options.mainFields\n );\n\n const rootLevelTsConfig = getTsConfig(\n join(workspaceRoot, 'tsconfig.base.json')\n );\n const rootLevelParsed = loadConfig(rootLevelTsConfig);\n logIt('fallback parsed tsconfig: ', rootLevelParsed);\n if (rootLevelParsed.resultType === 'success') {\n tsConfigPathsFallback = rootLevelParsed;\n matchTsPathFallback = createMatchPath(\n rootLevelParsed.absoluteBaseUrl,\n rootLevelParsed.paths,\n ['main', 'module']\n );\n }\n },\n resolveId(importPath: string) {\n let resolvedFile: string;\n try {\n resolvedFile = matchTsPathEsm(importPath);\n } catch (e) {\n logIt('Using fallback path matching.');\n resolvedFile = matchTsPathFallback?.(importPath);\n }\n\n if (!resolvedFile) {\n if (tsConfigPathsEsm || tsConfigPathsFallback) {\n logIt(\n `Unable to resolve ${importPath} with tsconfig paths. Using fallback file matching.`\n );\n resolvedFile =\n loadFileFromPaths(tsConfigPathsEsm, importPath) ||\n loadFileFromPaths(tsConfigPathsFallback, importPath);\n } else {\n logIt(`Unable to resolve ${importPath} with tsconfig paths`);\n }\n }\n\n logIt(`Resolved ${importPath} to ${resolvedFile}`);\n // Returning null defers to other resolveId functions and eventually the default resolution behavior\n // https://rollupjs.org/plugin-development/#resolveid\n return resolvedFile || null;\n },\n };\n\n function getTsConfig(preferredTsConfigPath: string): string {\n return [\n resolve(preferredTsConfigPath),\n resolve(join(workspaceRoot, 'tsconfig.base.json')),\n resolve(join(workspaceRoot, 'tsconfig.json')),\n ].find((tsPath) => {\n if (existsSync(tsPath)) {\n logIt('Found tsconfig at', tsPath);\n return tsPath;\n }\n });\n }\n\n function logIt(...msg: any[]) {\n if (process.env.NX_VERBOSE_LOGGING === 'true' || options?.debug) {\n console.debug('\\n[Nx Vite TsPaths]', ...msg);\n }\n }\n\n function loadFileFromPaths(\n tsconfig: ConfigLoaderSuccessResult,\n importPath: string\n ) {\n logIt(\n `Trying to resolve file from config in ${tsconfig.configFileAbsolutePath}`\n );\n let resolvedFile: string;\n for (const alias in tsconfig.paths) {\n const paths = tsconfig.paths[alias];\n\n const normalizedImport = alias.replace(/\\/\\*$/, '');\n\n if (importPath.startsWith(normalizedImport)) {\n const joinedPath = joinPathFragments(\n tsconfig.absoluteBaseUrl,\n paths[0].replace(/\\/\\*$/, '')\n );\n\n resolvedFile = findFile(\n importPath.replace(normalizedImport, joinedPath)\n );\n }\n }\n\n return resolvedFile;\n }\n\n function findFile(path: string): string {\n for (const ext of options.extensions) {\n const resolvedPath = resolve(path + ext);\n if (existsSync(resolvedPath)) {\n return resolvedPath;\n }\n\n const resolvedIndexPath = resolve(path, `index${ext}`);\n if (existsSync(resolvedIndexPath)) {\n return resolvedIndexPath;\n }\n }\n }\n}\n"],"names":["nxViteTsPaths","options","matchTsPathEsm","matchTsPathFallback","tsConfigPathsEsm","tsConfigPathsFallback","extensions","mainFields","name","configResolved","config","projectRoot","root","projectRootFromWorkspaceRoot","relative","workspaceRoot","foundTsConfigPath","getTsConfig","join","Error","stripIndents","parsed","loadConfig","logIt","resultType","createMatchPath","absoluteBaseUrl","paths","rootLevelTsConfig","rootLevelParsed","resolveId","importPath","resolvedFile","e","loadFileFromPaths","preferredTsConfigPath","resolve","find","tsPath","existsSync","msg","process","env","NX_VERBOSE_LOGGING","debug","console","tsconfig","configFileAbsolutePath","alias","normalizedImport","replace","startsWith","joinedPath","joinPathFragments","findFile","path","ext","resolvedPath","resolvedIndexPath"],"mappings":";+BA8BgBA;;;eAAAA;;;wBA9B+C;wBACpC;0BACa;+BAMjC;AAsBA,SAASA,cAAcC,UAAgC,CAAC,CAAC;QAM9DA,UASAA;IAdA,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;;IAEJJ,gBAAAA,WAAAA,SAAQK,oCAARL,SAAQK,aAAe;QACrB;QACA;QACA;QACA;QACA;QACA;QACA;KACD;;IACDL,gBAAAA,YAAAA,SAAQM,oCAARN,UAAQM,aAAe;QAAC;YAAC;YAAW;YAAK;SAAS;QAAE;QAAU;KAAO;IAErE,OAAO;QACLC,MAAM;QACNC,gBAAeC,MAAW;YACxB,MAAMC,cAAcD,OAAOE,IAAI;YAC/B,MAAMC,+BAA+BC,IAAAA,kBAAQ,EAACC,qBAAa,EAAEJ;YAE7D,MAAMK,oBAAoBC,YACxBC,IAAAA,cAAI,EACFH,qBAAa,EACb,OACAF,8BACA;YAGJ,IAAI,CAACG,mBAAmB;gBACtB,MAAM,IAAIG,MAAMC,IAAAA,oBAAY,CAAA,CAAC;4FACuD,EAAEL,qBAAa,CAAC,CAAC;YACvG;YACA,MAAMM,SAASC,IAAAA,yBAAU,EAACN;YAE1BO,MAAM,2BAA2BF;YACjC,IAAIA,OAAOG,UAAU,KAAK,UAAU;gBAClC,MAAM,IAAIL,MAAM,CAAC,0BAA0B,EAAEH,kBAAkB,CAAC;YAClE;YACAZ,mBAAmBiB;YAEnBnB,iBAAiBuB,IAAAA,8BAAe,EAC9BJ,OAAOK,eAAe,EACtBL,OAAOM,KAAK,EACZ1B,QAAQM,UAAU;YAGpB,MAAMqB,oBAAoBX,YACxBC,IAAAA,cAAI,EAACH,qBAAa,EAAE;YAEtB,MAAMc,kBAAkBP,IAAAA,yBAAU,EAACM;YACnCL,MAAM,8BAA8BM;YACpC,IAAIA,gBAAgBL,UAAU,KAAK,WAAW;gBAC5CnB,wBAAwBwB;gBACxB1B,sBAAsBsB,IAAAA,8BAAe,EACnCI,gBAAgBH,eAAe,EAC/BG,gBAAgBF,KAAK,EACrB;oBAAC;oBAAQ;iBAAS;YAEtB;QACF;QACAG,WAAUC,UAAkB;YAC1B,IAAIC;YACJ,IAAI;gBACFA,eAAe9B,eAAe6B;YAChC,EAAE,OAAOE,GAAG;gBACVV,MAAM;gBACNS,eAAe7B,uCAAAA,oBAAsB4B;YACvC;YAEA,IAAI,CAACC,cAAc;gBACjB,IAAI5B,oBAAoBC,uBAAuB;oBAC7CkB,MACE,CAAC,kBAAkB,EAAEQ,WAAW,mDAAmD,CAAC;oBAEtFC,eACEE,kBAAkB9B,kBAAkB2B,eACpCG,kBAAkB7B,uBAAuB0B;gBAC7C,OAAO;oBACLR,MAAM,CAAC,kBAAkB,EAAEQ,WAAW,oBAAoB,CAAC;gBAC7D;YACF;YAEAR,MAAM,CAAC,SAAS,EAAEQ,WAAW,IAAI,EAAEC,aAAa,CAAC;YACjD,oGAAoG;YACpG,qDAAqD;YACrD,OAAOA,gBAAgB;QACzB;IACF;IAEA,SAASf,YAAYkB,qBAA6B;QAChD,OAAO;YACLC,IAAAA,iBAAO,EAACD;YACRC,IAAAA,iBAAO,EAAClB,IAAAA,cAAI,EAACH,qBAAa,EAAE;YAC5BqB,IAAAA,iBAAO,EAAClB,IAAAA,cAAI,EAACH,qBAAa,EAAE;SAC7B,CAACsB,IAAI,CAAC,CAACC;YACN,IAAIC,IAAAA,kBAAU,EAACD,SAAS;gBACtBf,MAAM,qBAAqBe;gBAC3B,OAAOA;YACT;QACF;IACF;IAEA,SAASf,MAAM,GAAGiB,GAAU;QAC1B,IAAIC,QAAQC,GAAG,CAACC,kBAAkB,KAAK,WAAU1C,2BAAAA,QAAS2C,KAAK,GAAE;YAC/DC,QAAQD,KAAK,CAAC,0BAA0BJ;QAC1C;IACF;IAEA,SAASN,kBACPY,QAAmC,EACnCf,UAAkB;QAElBR,MACE,CAAC,sCAAsC,EAAEuB,SAASC,sBAAsB,CAAC,CAAC;QAE5E,IAAIf;QACJ,IAAK,MAAMgB,SAASF,SAASnB,KAAK,CAAE;YAClC,MAAMA,QAAQmB,SAASnB,KAAK,CAACqB,MAAM;YAEnC,MAAMC,mBAAmBD,MAAME,OAAO,CAAC,SAAS;YAEhD,IAAInB,WAAWoB,UAAU,CAACF,mBAAmB;gBAC3C,MAAMG,aAAaC,IAAAA,yBAAiB,EAClCP,SAASpB,eAAe,EACxBC,KAAK,CAAC,EAAE,CAACuB,OAAO,CAAC,SAAS;gBAG5BlB,eAAesB,SACbvB,WAAWmB,OAAO,CAACD,kBAAkBG;YAEzC;QACF;QAEA,OAAOpB;IACT;IAEA,SAASsB,SAASC,IAAY;QAC5B,KAAK,MAAMC,OAAOvD,QAAQK,UAAU,CAAE;YACpC,MAAMmD,eAAerB,IAAAA,iBAAO,EAACmB,OAAOC;YACpC,IAAIjB,IAAAA,kBAAU,EAACkB,eAAe;gBAC5B,OAAOA;YACT;YAEA,MAAMC,oBAAoBtB,IAAAA,iBAAO,EAACmB,MAAM,CAAC,KAAK,EAAEC,IAAI,CAAC;YACrD,IAAIjB,IAAAA,kBAAU,EAACmB,oBAAoB;gBACjC,OAAOA;YACT;QACF;IACF;AACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @function replaceFiles
3
+ * @param {FileReplacement[]} replacements
4
+ * @return {({name: "rollup-plugin-replace-files", enforce: "pre" | "post" | undefined, Promise<resolveId>})}
5
+ */
6
+ export declare function replaceFiles(replacements: FileReplacement[]): {
7
+ name: string;
8
+ enforce: 'pre' | 'post' | undefined;
9
+ resolveId(source: any, importer: any, options: any): Promise<{
10
+ id: string;
11
+ }>;
12
+ };
13
+ export interface FileReplacement {
14
+ replace: string;
15
+ with: string;
16
+ }
@@ -0,0 +1,51 @@
1
+ // source: https://github.com/Myrmod/vitejs-theming/blob/master/build-plugins/rollup/replace-files.js
2
+ /**
3
+ * @function replaceFiles
4
+ * @param {FileReplacement[]} replacements
5
+ * @return {({name: "rollup-plugin-replace-files", enforce: "pre" | "post" | undefined, Promise<resolveId>})}
6
+ */ "use strict";
7
+ Object.defineProperty(exports, "replaceFiles", {
8
+ enumerable: true,
9
+ get: function() {
10
+ return replaceFiles;
11
+ }
12
+ });
13
+ const _extends = require("@swc/helpers/_/_extends");
14
+ function replaceFiles(replacements) {
15
+ if (!(replacements == null ? void 0 : replacements.length)) {
16
+ return null;
17
+ }
18
+ return {
19
+ name: 'rollup-plugin-replace-files',
20
+ enforce: 'pre',
21
+ async resolveId (source, importer, options) {
22
+ const resolved = await this.resolve(source, importer, _extends._({}, options, {
23
+ skipSelf: true
24
+ }));
25
+ /**
26
+ * The reason we're using endsWith here is because the resolved id
27
+ * will be the absolute path to the file. We want to check if the
28
+ * file ends with the file we're trying to replace, which will be essentially
29
+ * the path from the root of our workspace.
30
+ */ const foundReplace = replacements.find((replacement)=>{
31
+ var _resolved_id;
32
+ return resolved == null ? void 0 : (_resolved_id = resolved.id) == null ? void 0 : _resolved_id.endsWith(replacement.replace);
33
+ });
34
+ if (foundReplace) {
35
+ console.info(`replace "${foundReplace.replace}" with "${foundReplace.with}"`);
36
+ try {
37
+ // return new file content
38
+ return {
39
+ id: foundReplace.with
40
+ };
41
+ } catch (err) {
42
+ console.error(err);
43
+ return null;
44
+ }
45
+ }
46
+ return null;
47
+ }
48
+ };
49
+ }
50
+
51
+ //# sourceMappingURL=rollup-replace-files.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../packages/vite/plugins/rollup-replace-files.plugin.ts"],"sourcesContent":["// source: https://github.com/Myrmod/vitejs-theming/blob/master/build-plugins/rollup/replace-files.js\n\n/**\n * @function replaceFiles\n * @param {FileReplacement[]} replacements\n * @return {({name: \"rollup-plugin-replace-files\", enforce: \"pre\" | \"post\" | undefined, Promise<resolveId>})}\n */\nexport function replaceFiles(replacements: FileReplacement[]): {\n name: string;\n enforce: 'pre' | 'post' | undefined;\n resolveId(\n source: any,\n importer: any,\n options: any\n ): Promise<{\n id: string;\n }>;\n} {\n if (!replacements?.length) {\n return null;\n }\n return {\n name: 'rollup-plugin-replace-files',\n enforce: 'pre',\n async resolveId(source, importer, options) {\n const resolved = await this.resolve(source, importer, {\n ...options,\n skipSelf: true,\n });\n /**\n * The reason we're using endsWith here is because the resolved id\n * will be the absolute path to the file. We want to check if the\n * file ends with the file we're trying to replace, which will be essentially\n * the path from the root of our workspace.\n */\n\n const foundReplace = replacements.find((replacement) =>\n resolved?.id?.endsWith(replacement.replace)\n );\n if (foundReplace) {\n console.info(\n `replace \"${foundReplace.replace}\" with \"${foundReplace.with}\"`\n );\n try {\n // return new file content\n return {\n id: foundReplace.with,\n };\n } catch (err) {\n console.error(err);\n return null;\n }\n }\n return null;\n },\n };\n}\n\nexport interface FileReplacement {\n replace: string;\n with: string;\n}\n"],"names":["replaceFiles","replacements","length","name","enforce","resolveId","source","importer","options","resolved","resolve","skipSelf","foundReplace","find","replacement","id","endsWith","replace","console","info","with","err","error"],"mappings":"AAAA,qGAAqG;AAErG;;;;CAIC;+BACeA;;;eAAAA;;;;AAAT,SAASA,aAAaC,YAA+B;IAW1D,IAAI,EAACA,gCAAAA,aAAcC,MAAM,GAAE;QACzB,OAAO;IACT;IACA,OAAO;QACLC,MAAM;QACNC,SAAS;QACT,MAAMC,WAAUC,MAAM,EAAEC,QAAQ,EAAEC,OAAO;YACvC,MAAMC,WAAW,MAAM,IAAI,CAACC,OAAO,CAACJ,QAAQC,UAAU,eACjDC;gBACHG,UAAU;;YAEZ;;;;;OAKC,GAED,MAAMC,eAAeX,aAAaY,IAAI,CAAC,CAACC;oBACtCL;uBAAAA,6BAAAA,eAAAA,SAAUM,EAAE,qBAAZN,aAAcO,QAAQ,CAACF,YAAYG,OAAO;;YAE5C,IAAIL,cAAc;gBAChBM,QAAQC,IAAI,CACV,CAAC,SAAS,EAAEP,aAAaK,OAAO,CAAC,QAAQ,EAAEL,aAAaQ,IAAI,CAAC,CAAC,CAAC;gBAEjE,IAAI;oBACF,0BAA0B;oBAC1B,OAAO;wBACLL,IAAIH,aAAaQ,IAAI;oBACvB;gBACF,EAAE,OAAOC,KAAK;oBACZH,QAAQI,KAAK,CAACD;oBACd,OAAO;gBACT;YACF;YACA,OAAO;QACT;IACF;AACF"}
@@ -0,0 +1,13 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { ViteBuildExecutorOptions } from './schema';
3
+ export declare function viteBuildExecutor(options: Record<string, any> & ViteBuildExecutorOptions, context: ExecutorContext): AsyncGenerator<{
4
+ success: boolean;
5
+ } | {
6
+ success: boolean;
7
+ outfile: string;
8
+ }, void, undefined>;
9
+ export declare function getBuildExtraArgs(options: ViteBuildExecutorOptions): Promise<{
10
+ buildOptions: Record<string, unknown>;
11
+ otherOptions: Record<string, any>;
12
+ }>;
13
+ export default viteBuildExecutor;
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ viteBuildExecutor: function() {
10
+ return viteBuildExecutor;
11
+ },
12
+ getBuildExtraArgs: function() {
13
+ return getBuildExtraArgs;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ const _extends = require("@swc/helpers/_/_extends");
20
+ const _devkit = require("@nx/devkit");
21
+ const _optionsutils = require("../../utils/options-utils");
22
+ const _js = require("@nx/js");
23
+ const _fs = require("fs");
24
+ const _path = require("path");
25
+ const _asynciterable = require("@nx/devkit/src/utils/async-iterable");
26
+ const _executorutils = require("../../utils/executor-utils");
27
+ async function* viteBuildExecutor(options, context) {
28
+ var _resolved_config_build, _resolved_config;
29
+ process.env.VITE_CJS_IGNORE_WARNING = 'true';
30
+ // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
31
+ const { mergeConfig, build, loadConfigFromFile } = await (0, _executorutils.loadViteDynamicImport)();
32
+ const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
33
+ (0, _executorutils.createBuildableTsConfig)(projectRoot, options, context);
34
+ const viteConfigPath = (0, _optionsutils.normalizeViteConfigFilePath)(context.root, projectRoot, options.configFile);
35
+ const root = projectRoot === '.' ? process.cwd() : (0, _path.relative)(context.cwd, (0, _devkit.joinPathFragments)(context.root, projectRoot));
36
+ const { buildOptions, otherOptions } = await getBuildExtraArgs(options);
37
+ var _otherOptions_mode;
38
+ const resolved = await loadConfigFromFile({
39
+ mode: (_otherOptions_mode = otherOptions == null ? void 0 : otherOptions.mode) != null ? _otherOptions_mode : 'production',
40
+ command: 'build'
41
+ }, viteConfigPath);
42
+ var _joinPathFragments;
43
+ const outDir = (_joinPathFragments = (0, _devkit.joinPathFragments)((0, _devkit.offsetFromRoot)(projectRoot), options.outputPath)) != null ? _joinPathFragments : resolved == null ? void 0 : (_resolved_config = resolved.config) == null ? void 0 : (_resolved_config_build = _resolved_config.build) == null ? void 0 : _resolved_config_build.outDir;
44
+ var _resolved_config_root;
45
+ const buildConfig = mergeConfig({
46
+ // This should not be needed as it's going to be set in vite.config.ts
47
+ // but leaving it here in case someone did not migrate correctly
48
+ root: (_resolved_config_root = resolved.config.root) != null ? _resolved_config_root : root,
49
+ configFile: viteConfigPath
50
+ }, _extends._({
51
+ build: _extends._({
52
+ outDir
53
+ }, buildOptions)
54
+ }, otherOptions));
55
+ if (!options.skipTypeCheck) {
56
+ var _options_tsConfig;
57
+ await (0, _executorutils.validateTypes)({
58
+ workspaceRoot: context.root,
59
+ projectRoot: projectRoot,
60
+ tsconfig: (_options_tsConfig = options.tsConfig) != null ? _options_tsConfig : (0, _optionsutils.getProjectTsConfigPath)(projectRoot)
61
+ });
62
+ }
63
+ const watcherOrOutput = await build(buildConfig);
64
+ const libraryPackageJson = (0, _path.resolve)(projectRoot, 'package.json');
65
+ const rootPackageJson = (0, _path.resolve)(context.root, 'package.json');
66
+ // Here, we want the outdir relative to the workspace root.
67
+ // So, we calculate the relative path from the workspace root to the outdir.
68
+ const outDirRelativeToWorkspaceRoot = outDir.replaceAll('../', '');
69
+ const distPackageJson = (0, _path.resolve)(outDirRelativeToWorkspaceRoot, 'package.json');
70
+ // Generate a package.json if option has been set.
71
+ if (options.generatePackageJson) {
72
+ if (context.projectGraph.nodes[context.projectName].type !== 'app') {
73
+ _devkit.logger.warn((0, _devkit.stripIndents)`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.
74
+ For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/packages/eslint-plugin/documents/dependency-checks).`);
75
+ }
76
+ const builtPackageJson = (0, _js.createPackageJson)(context.projectName, context.projectGraph, {
77
+ target: context.targetName,
78
+ root: context.root,
79
+ isProduction: !options.includeDevDependenciesInPackageJson
80
+ });
81
+ builtPackageJson.type = 'module';
82
+ (0, _devkit.writeJsonFile)(`${outDirRelativeToWorkspaceRoot}/package.json`, builtPackageJson);
83
+ const packageManager = (0, _devkit.detectPackageManager)(context.root);
84
+ const lockFile = (0, _js.createLockFile)(builtPackageJson, context.projectGraph, packageManager);
85
+ (0, _fs.writeFileSync)(`${outDirRelativeToWorkspaceRoot}/${(0, _js.getLockFileName)(packageManager)}`, lockFile, {
86
+ encoding: 'utf-8'
87
+ });
88
+ } else if (options.generatePackageJson !== false && !(0, _fs.existsSync)(distPackageJson) && (0, _fs.existsSync)(libraryPackageJson) && rootPackageJson !== libraryPackageJson) {
89
+ await (0, _js.copyAssets)({
90
+ outputPath: outDirRelativeToWorkspaceRoot,
91
+ assets: [
92
+ {
93
+ input: projectRoot,
94
+ output: '.',
95
+ glob: 'package.json'
96
+ }
97
+ ]
98
+ }, context);
99
+ }
100
+ if ('on' in watcherOrOutput) {
101
+ const iterable = (0, _asynciterable.createAsyncIterable)(({ next })=>{
102
+ let success = true;
103
+ watcherOrOutput.on('event', (event)=>{
104
+ if (event.code === 'START') {
105
+ success = true;
106
+ } else if (event.code === 'ERROR') {
107
+ success = false;
108
+ } else if (event.code === 'END') {
109
+ next({
110
+ success
111
+ });
112
+ }
113
+ // result must be closed when present.
114
+ // see https://rollupjs.org/guide/en/#rollupwatch
115
+ if ('result' in event && event.result) {
116
+ event.result.close();
117
+ }
118
+ });
119
+ });
120
+ yield* iterable;
121
+ } else {
122
+ var _watcherOrOutput_, _output_;
123
+ const output = (watcherOrOutput == null ? void 0 : watcherOrOutput['output']) || (watcherOrOutput == null ? void 0 : (_watcherOrOutput_ = watcherOrOutput[0]) == null ? void 0 : _watcherOrOutput_.output);
124
+ const fileName = (output == null ? void 0 : (_output_ = output[0]) == null ? void 0 : _output_.fileName) || 'main.cjs';
125
+ const outfile = (0, _path.resolve)(outDirRelativeToWorkspaceRoot, fileName);
126
+ yield {
127
+ success: true,
128
+ outfile
129
+ };
130
+ }
131
+ }
132
+ async function getBuildExtraArgs(options) {
133
+ // support passing extra args to vite cli
134
+ const schema = await Promise.resolve().then(()=>require("./schema.json"));
135
+ const extraArgs = {};
136
+ for (const key of Object.keys(options)){
137
+ if (!schema.properties[key]) {
138
+ extraArgs[key] = options[key];
139
+ }
140
+ }
141
+ const buildOptions = {};
142
+ const buildSchemaKeys = [
143
+ 'target',
144
+ 'polyfillModulePreload',
145
+ 'modulePreload',
146
+ 'outDir',
147
+ 'assetsDir',
148
+ 'assetsInlineLimit',
149
+ 'cssCodeSplit',
150
+ 'cssTarget',
151
+ 'cssMinify',
152
+ 'sourcemap',
153
+ 'minify',
154
+ 'terserOptions',
155
+ 'rollupOptions',
156
+ 'commonjsOptions',
157
+ 'dynamicImportVarsOptions',
158
+ 'write',
159
+ 'emptyOutDir',
160
+ 'copyPublicDir',
161
+ 'manifest',
162
+ 'lib',
163
+ 'ssr',
164
+ 'ssrManifest',
165
+ 'ssrEmitAssets',
166
+ 'reportCompressedSize',
167
+ 'chunkSizeWarningLimit',
168
+ 'watch'
169
+ ];
170
+ const otherOptions = {};
171
+ for (const key of Object.keys(extraArgs)){
172
+ if (buildSchemaKeys.includes(key)) {
173
+ buildOptions[key] = extraArgs[key];
174
+ } else {
175
+ otherOptions[key] = extraArgs[key];
176
+ }
177
+ }
178
+ var _options_watch;
179
+ buildOptions['watch'] = (_options_watch = options.watch) != null ? _options_watch : undefined;
180
+ return {
181
+ buildOptions,
182
+ otherOptions
183
+ };
184
+ }
185
+ const _default = viteBuildExecutor;
186
+
187
+ //# sourceMappingURL=build.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n validateTypes,\n} from '../../utils/executor-utils';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build, loadConfigFromFile } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n createBuildableTsConfig(projectRoot, options, context);\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.config?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n projectRoot: projectRoot,\n tsconfig: options.tsConfig ?? getProjectTsConfigPath(projectRoot),\n });\n }\n\n const watcherOrOutput = await build(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const outDirRelativeToWorkspaceRoot = outDir.replaceAll('../', '');\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/packages/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n }\n );\n\n builtPackageJson.type = 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n options.generatePackageJson !== false &&\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n if ('on' in watcherOrOutput) {\n const iterable = createAsyncIterable<{ success: boolean }>(({ next }) => {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n });\n yield* iterable;\n } else {\n const output = watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n yield { success: true, outfile };\n }\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n buildOptions['watch'] = options.watch ?? undefined;\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","getBuildExtraArgs","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","loadConfigFromFile","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","mode","command","outDir","offsetFromRoot","outputPath","config","buildConfig","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","tsConfig","getProjectTsConfigPath","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","outDirRelativeToWorkspaceRoot","replaceAll","distPackageJson","generatePackageJson","projectGraph","nodes","type","logger","warn","stripIndents","builtPackageJson","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","success","on","event","code","result","close","fileName","outfile","schema","extraArgs","key","Object","keys","properties","buildSchemaKeys","includes","watch","undefined"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "default", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return _default;
6
+ }
7
+ });
8
+ const _devkit = require("@nx/devkit");
9
+ const _buildimpl = require("./build.impl");
10
+ const _default = (0, _devkit.convertNxExecutor)(_buildimpl.default);
11
+
12
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/build/compat.ts"],"sourcesContent":["import { convertNxExecutor } from '@nx/devkit';\nimport viteBuildExecutor from './build.impl';\n\nexport default convertNxExecutor(viteBuildExecutor);\n"],"names":["convertNxExecutor","viteBuildExecutor"],"mappings":";+BAGA;;;eAAA;;;wBAHkC;2BACJ;MAE9B,WAAeA,IAAAA,yBAAiB,EAACC,kBAAiB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=schema.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/build/schema.d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export interface ViteBuildExecutorOptions {
2
+ outputPath?: string;
3
+ buildLibsFromSource?: boolean;
4
+ skipTypeCheck?: boolean;
5
+ configFile?: string;
6
+ watch?: boolean;
7
+ generatePackageJson?: boolean;
8
+ includeDevDependenciesInPackageJson?: boolean;
9
+ tsConfig?: string;
10
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "version": 2,
3
+ "outputCapture": "direct-nodejs",
4
+ "title": "Vite Prod Builder",
5
+ "cli": "nx",
6
+ "description": "Builds a Vite.js application for production.",
7
+ "type": "object",
8
+ "presets": [
9
+ {
10
+ "name": "Default minimum setup",
11
+ "keys": []
12
+ }
13
+ ],
14
+ "properties": {
15
+ "outputPath": {
16
+ "type": "string",
17
+ "description": "The output path of the generated files.",
18
+ "x-completion-type": "directory",
19
+ "x-priority": "important"
20
+ },
21
+ "buildLibsFromSource": {
22
+ "type": "boolean",
23
+ "description": "Read buildable libraries from source instead of building them separately.",
24
+ "default": true
25
+ },
26
+ "skipTypeCheck": {
27
+ "type": "boolean",
28
+ "description": "Skip type-checking via TypeScript. Skipping type-checking speeds up the build but type errors are not caught.",
29
+ "default": false
30
+ },
31
+ "tsConfig": {
32
+ "type": "string",
33
+ "description": "The path to custom tsconfig file for type-checking when skipTypeCheck is false. Required when tsconfig file is not at the projectRoot level.",
34
+ "x-completion-type": "file",
35
+ "x-completion-glob": "tsconfig.*.json"
36
+ },
37
+ "configFile": {
38
+ "type": "string",
39
+ "description": "The name of the Vite.js configuration file.",
40
+ "x-completion-type": "file",
41
+ "x-completion-glob": "vite.config.@(js|ts)"
42
+ },
43
+ "watch": {
44
+ "description": "Enable re-building when files change.",
45
+ "oneOf": [
46
+ {
47
+ "type": "boolean"
48
+ },
49
+ {
50
+ "type": "object"
51
+ }
52
+ ],
53
+ "default": false
54
+ },
55
+ "generatePackageJson": {
56
+ "description": "Generate a package.json for the build output.",
57
+ "type": "boolean"
58
+ },
59
+ "includeDevDependenciesInPackageJson": {
60
+ "description": "Include devDependencies in the generated package.json.",
61
+ "type": "boolean"
62
+ }
63
+ },
64
+ "definitions": {},
65
+ "required": [],
66
+ "examplesFile": "../../../docs/build-examples.md"
67
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "default", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return _default;
6
+ }
7
+ });
8
+ const _devkit = require("@nx/devkit");
9
+ const _devserverimpl = require("./dev-server.impl");
10
+ const _default = (0, _devkit.convertNxExecutor)(_devserverimpl.default);
11
+
12
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/dev-server/compat.ts"],"sourcesContent":["import { convertNxExecutor } from '@nx/devkit';\nimport viteDevServerExecutor from './dev-server.impl';\n\nexport default convertNxExecutor(viteDevServerExecutor);\n"],"names":["convertNxExecutor","viteDevServerExecutor"],"mappings":";+BAGA;;;eAAA;;;wBAHkC;+BACA;MAElC,WAAeA,IAAAA,yBAAiB,EAACC,sBAAqB"}
@@ -0,0 +1,7 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { ViteDevServerExecutorOptions } from './schema';
3
+ export declare function viteDevServerExecutor(options: ViteDevServerExecutorOptions, context: ExecutorContext): AsyncGenerator<{
4
+ success: boolean;
5
+ baseUrl: string;
6
+ }>;
7
+ export default viteDevServerExecutor;