@nx/vite 17.0.5 → 17.0.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.
Files changed (116) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -9
  3. package/generators.json +3 -3
  4. package/migrations.json +0 -90
  5. package/package.json +7 -9
  6. package/plugins/nx-tsconfig-paths.plugin.js +5 -9
  7. package/plugins/nx-tsconfig-paths.plugin.js.map +1 -1
  8. package/plugins/rollup-replace-files.plugin.d.ts +3 -3
  9. package/plugins/rollup-replace-files.plugin.js +2 -2
  10. package/plugins/rollup-replace-files.plugin.js.map +1 -1
  11. package/src/executors/build/build.impl.d.ts +1 -5
  12. package/src/executors/build/build.impl.js +21 -90
  13. package/src/executors/build/build.impl.js.map +1 -1
  14. package/src/executors/build/schema.d.ts +18 -5
  15. package/src/executors/build/schema.json +106 -4
  16. package/src/executors/dev-server/dev-server.impl.js +9 -74
  17. package/src/executors/dev-server/dev-server.impl.js.map +1 -1
  18. package/src/executors/dev-server/schema.d.ts +10 -0
  19. package/src/executors/dev-server/schema.json +63 -0
  20. package/src/executors/preview-server/preview-server.impl.d.ts +1 -1
  21. package/src/executors/preview-server/preview-server.impl.js +15 -79
  22. package/src/executors/preview-server/preview-server.impl.js.map +1 -1
  23. package/src/executors/preview-server/schema.d.ts +7 -0
  24. package/src/executors/preview-server/schema.json +51 -1
  25. package/src/executors/test/schema.d.ts +8 -3
  26. package/src/executors/test/schema.json +43 -11
  27. package/src/executors/test/vitest.impl.js +112 -20
  28. package/src/executors/test/vitest.impl.js.map +1 -1
  29. package/src/generators/configuration/configuration.d.ts +1 -2
  30. package/src/generators/configuration/configuration.js +87 -49
  31. package/src/generators/configuration/configuration.js.map +1 -1
  32. package/src/generators/configuration/schema.d.ts +3 -1
  33. package/src/generators/configuration/schema.json +12 -0
  34. package/src/generators/init/init.d.ts +3 -4
  35. package/src/generators/init/init.js +67 -50
  36. package/src/generators/init/init.js.map +1 -1
  37. package/src/generators/init/schema.d.ts +5 -5
  38. package/src/generators/init/schema.json +20 -17
  39. package/src/generators/vitest/files/tsconfig.spec.json__tmpl__ +1 -2
  40. package/src/generators/vitest/schema.d.ts +1 -2
  41. package/src/generators/vitest/schema.json +2 -2
  42. package/src/generators/vitest/vitest-generator.d.ts +1 -2
  43. package/src/generators/vitest/vitest-generator.js +10 -34
  44. package/src/generators/vitest/vitest-generator.js.map +1 -1
  45. package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js.map +1 -1
  46. package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js +17 -3
  47. package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js.map +1 -1
  48. package/src/utils/executor-utils.d.ts +0 -2
  49. package/src/utils/executor-utils.js +7 -22
  50. package/src/utils/executor-utils.js.map +1 -1
  51. package/src/utils/generator-utils.d.ts +12 -10
  52. package/src/utils/generator-utils.js +213 -134
  53. package/src/utils/generator-utils.js.map +1 -1
  54. package/src/utils/options-utils.d.ts +19 -3
  55. package/src/utils/options-utils.js +68 -25
  56. package/src/utils/options-utils.js.map +1 -1
  57. package/src/utils/test-files/react-lib-non-buildable-jest.json +4 -1
  58. package/src/utils/test-files/react-lib-non-buildable-vitest.json +4 -1
  59. package/src/utils/test-files/react-mixed-project.config.json +6 -1
  60. package/src/utils/test-files/react-project.config.json +85 -0
  61. package/src/utils/test-files/react-vite-project.config.json +4 -1
  62. package/src/utils/test-files/unknown-project.config.json +4 -1
  63. package/src/utils/test-files/web-project.config.json +72 -0
  64. package/src/utils/test-utils.d.ts +1 -1
  65. package/src/utils/test-utils.js +18 -10
  66. package/src/utils/test-utils.js.map +1 -1
  67. package/src/utils/versions.d.ts +9 -7
  68. package/src/utils/versions.js +15 -7
  69. package/src/utils/versions.js.map +1 -1
  70. package/src/utils/vite-config-edit-utils.js +1 -1
  71. package/src/utils/vite-config-edit-utils.js.map +1 -1
  72. package/plugin.d.ts +0 -1
  73. package/plugin.js +0 -21
  74. package/plugin.js.map +0 -1
  75. package/src/executors/test/lib/nx-reporter.d.ts +0 -14
  76. package/src/executors/test/lib/nx-reporter.js +0 -40
  77. package/src/executors/test/lib/nx-reporter.js.map +0 -1
  78. package/src/executors/test/lib/utils.d.ts +0 -4
  79. package/src/executors/test/lib/utils.js +0 -77
  80. package/src/executors/test/lib/utils.js.map +0 -1
  81. package/src/generators/configuration/lib/convert-non-vite.d.ts +0 -5
  82. package/src/generators/configuration/lib/convert-non-vite.js +0 -62
  83. package/src/generators/configuration/lib/convert-non-vite.js.map +0 -1
  84. package/src/generators/init/lib/utils.d.ts +0 -6
  85. package/src/generators/init/lib/utils.js +0 -80
  86. package/src/generators/init/lib/utils.js.map +0 -1
  87. package/src/migrations/update-17-1-0/move-target-defaults.d.ts +0 -2
  88. package/src/migrations/update-17-1-0/move-target-defaults.js +0 -77
  89. package/src/migrations/update-17-1-0/move-target-defaults.js.map +0 -1
  90. package/src/migrations/update-17-2-0/lib/add-file-replacements.d.ts +0 -2
  91. package/src/migrations/update-17-2-0/lib/add-file-replacements.js +0 -67
  92. package/src/migrations/update-17-2-0/lib/add-file-replacements.js.map +0 -1
  93. package/src/migrations/update-17-2-0/lib/edit-build-config.d.ts +0 -2
  94. package/src/migrations/update-17-2-0/lib/edit-build-config.js +0 -121
  95. package/src/migrations/update-17-2-0/lib/edit-build-config.js.map +0 -1
  96. package/src/migrations/update-17-2-0/lib/edit-test-config.d.ts +0 -2
  97. package/src/migrations/update-17-2-0/lib/edit-test-config.js +0 -83
  98. package/src/migrations/update-17-2-0/lib/edit-test-config.js.map +0 -1
  99. package/src/migrations/update-17-2-0/update-vite-config.d.ts +0 -5
  100. package/src/migrations/update-17-2-0/update-vite-config.js +0 -68
  101. package/src/migrations/update-17-2-0/update-vite-config.js.map +0 -1
  102. package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.d.ts +0 -3
  103. package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js +0 -117
  104. package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js.map +0 -1
  105. package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.d.ts +0 -2
  106. package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js +0 -45
  107. package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js.map +0 -1
  108. package/src/plugins/plugin.d.ts +0 -10
  109. package/src/plugins/plugin.js +0 -226
  110. package/src/plugins/plugin.js.map +0 -1
  111. package/src/utils/ensure-dependencies.d.ts +0 -8
  112. package/src/utils/ensure-dependencies.js +0 -34
  113. package/src/utils/ensure-dependencies.js.map +0 -1
  114. package/src/utils/find-vite-config.d.ts +0 -3
  115. package/src/utils/find-vite-config.js +0 -46
  116. package/src/utils/find-vite-config.js.map +0 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2017-2024 Narwhal Technologies Inc.
3
+ Copyright (c) 2017-2023 Narwhal Technologies Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
package/README.md CHANGED
@@ -1,9 +1,4 @@
1
- <p style="text-align: center;">
2
- <picture>
3
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-dark.svg">
4
- <img alt="Nx - Smart Monorepos · Fast CI" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
5
- </picture>
6
- </p>
1
+ <p style="text-align: center;"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx.png" width="600" alt="Nx - Smart, Fast and Extensible Build System"></p>
7
2
 
8
3
  <div style="text-align: center;">
9
4
 
@@ -20,9 +15,9 @@
20
15
 
21
16
  <hr>
22
17
 
23
- # Nx: Smart Monorepos · Fast CI
18
+ # Nx: Smart, Fast and Extensible Build System
24
19
 
25
- Nx is a build system with built-in tooling and advanced CI capabilities. It helps you maintain and scale monorepos, both locally and on CI.
20
+ Nx is a next generation build system with first class monorepo support and powerful integrations.
26
21
 
27
22
  This package is a [Vite plugin for Nx](https://nx.dev/packages/vite).
28
23
 
@@ -64,5 +59,5 @@ npx nx@latest init
64
59
  - [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
65
60
 
66
61
  <p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
67
- width="100%" alt="Nx - Smart Monorepos · Fast CI"></a></p>
62
+ width="100%" alt="Nx - Smart, Fast and Extensible Build System"></a></p>
68
63
 
package/generators.json CHANGED
@@ -3,21 +3,21 @@
3
3
  "version": "0.1",
4
4
  "generators": {
5
5
  "init": {
6
- "factory": "./src/generators/init/init#initGeneratorInternal",
6
+ "factory": "./src/generators/init/init",
7
7
  "schema": "./src/generators/init/schema.json",
8
8
  "description": "Initialize Vite in the workspace.",
9
9
  "aliases": ["ng-add"],
10
10
  "hidden": true
11
11
  },
12
12
  "configuration": {
13
- "factory": "./src/generators/configuration/configuration#viteConfigurationGeneratorInternal",
13
+ "factory": "./src/generators/configuration/configuration",
14
14
  "schema": "./src/generators/configuration/schema.json",
15
15
  "description": "Add Vite configuration to an application.",
16
16
  "aliases": ["config"],
17
17
  "hidden": false
18
18
  },
19
19
  "vitest": {
20
- "factory": "./src/generators/vitest/vitest-generator#vitestGeneratorInternal",
20
+ "factory": "./src/generators/vitest/vitest-generator",
21
21
  "schema": "./src/generators/vitest/schema.json",
22
22
  "description": "Generate a vitest configuration"
23
23
  }
package/migrations.json CHANGED
@@ -35,99 +35,9 @@
35
35
  "description": "Change vite-tsconfig-paths plugin for first party nx-vite-tsconfig-paths plugin",
36
36
  "cli": "nx",
37
37
  "implementation": "./src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin"
38
- },
39
- "move-target-defaults": {
40
- "version": "17.1.0-beta.2",
41
- "description": "Move target defaults",
42
- "implementation": "./src/migrations/update-17-1-0/move-target-defaults"
43
- },
44
- "update-vite-config": {
45
- "version": "17.2.0-beta.10",
46
- "description": "Update vite config.",
47
- "implementation": "./src/migrations/update-17-2-0/update-vite-config"
48
- },
49
- "vitest-coverage-and-reporters": {
50
- "version": "17.3.0-beta.0",
51
- "description": "Move the vitest coverage thresholds in their own object if exists and add reporters.",
52
- "implementation": "./src/migrations/update-17-3-0/vitest-coverage-and-reporters"
53
38
  }
54
39
  },
55
40
  "packageJsonUpdates": {
56
- "18.1.0": {
57
- "version": "18.1.0-beta.1",
58
- "packages": {
59
- "vitest": {
60
- "version": "^1.3.1",
61
- "alwaysAddToPackageJson": false
62
- },
63
- "@vitest/coverage-v8": {
64
- "version": "^1.3.1",
65
- "alwaysAddToPackageJson": false
66
- },
67
- "@vitest/ui": {
68
- "version": "^1.3.1",
69
- "alwaysAddToPackageJson": false
70
- },
71
- "@vitest/coverage-istanbul": {
72
- "version": "^1.3.1",
73
- "alwaysAddToPackageJson": false
74
- }
75
- }
76
- },
77
- "17.3.0": {
78
- "version": "17.3.0-beta.0",
79
- "packages": {
80
- "vitest": {
81
- "version": "^1.0.4",
82
- "alwaysAddToPackageJson": false
83
- },
84
- "@vitest/coverage-v8": {
85
- "version": "^1.0.4",
86
- "alwaysAddToPackageJson": false
87
- },
88
- "@vitest/ui": {
89
- "version": "^1.0.4",
90
- "alwaysAddToPackageJson": false
91
- },
92
- "@vitest/coverage-istanbul": {
93
- "version": "^1.0.4",
94
- "alwaysAddToPackageJson": false
95
- }
96
- }
97
- },
98
- "17.2.0": {
99
- "version": "17.2.0-beta.2",
100
- "packages": {
101
- "vite": {
102
- "version": "^5.0.0",
103
- "alwaysAddToPackageJson": false
104
- },
105
- "@vitejs/plugin-react": {
106
- "version": "^4.2.0",
107
- "alwaysAddToPackageJson": false
108
- },
109
- "@vitejs/plugin-react-swc": {
110
- "version": "^3.5.0",
111
- "alwaysAddToPackageJson": false
112
- },
113
- "vitest": {
114
- "version": "~0.34.6",
115
- "alwaysAddToPackageJson": false
116
- },
117
- "@vitest/coverage-v8": {
118
- "version": "~0.34.6",
119
- "alwaysAddToPackageJson": false
120
- },
121
- "@vitest/ui": {
122
- "version": "~0.34.6",
123
- "alwaysAddToPackageJson": false
124
- },
125
- "@vitest/coverage-istanbul": {
126
- "version": "~0.34.6",
127
- "alwaysAddToPackageJson": false
128
- }
129
- }
130
- },
131
41
  "16.4.0-beta.7": {
132
42
  "version": "16.4.0-beta.7",
133
43
  "packages": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/vite",
3
- "version": "17.0.5",
3
+ "version": "v17.0.6",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for building and testing applications using Vite",
6
6
  "repository": {
@@ -29,24 +29,23 @@
29
29
  "migrations": "./migrations.json"
30
30
  },
31
31
  "dependencies": {
32
- "@nx/devkit": "17.0.5",
33
32
  "@phenomnomnominal/tsquery": "~5.0.1",
34
33
  "@swc/helpers": "~0.5.0",
35
34
  "enquirer": "~2.3.6",
36
- "@nx/js": "17.0.5",
35
+ "@nx/devkit": "v17.0.6",
36
+ "@nx/js": "v17.0.6",
37
37
  "tsconfig-paths": "^4.1.2",
38
- "@nrwl/vite": "17.0.5"
38
+ "@nrwl/vite": "v17.0.6"
39
39
  },
40
40
  "peerDependencies": {
41
- "vite": "^5.0.0",
42
- "vitest": "^1.3.1"
41
+ "vite": "^4.3.4",
42
+ "vitest": ">=0.31.0 <1.0.0"
43
43
  },
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
47
  "exports": {
48
48
  ".": "./index.js",
49
- "./plugin": "./plugin.js",
50
49
  "./package.json": "./package.json",
51
50
  "./migrations.json": "./migrations.json",
52
51
  "./generators.json": "./generators.json",
@@ -55,8 +54,7 @@
55
54
  "./src/executors/*/schema.json": "./src/executors/*/schema.json",
56
55
  "./src/executors/*.impl": "./src/executors/*.impl.js",
57
56
  "./src/executors/*/compat": "./src/executors/*/compat.js",
58
- "./plugins/nx-tsconfig-paths.plugin": "./plugins/nx-tsconfig-paths.plugin.js",
59
- "./plugins/rollup-replace-files.plugin": "./plugins/rollup-replace-files.plugin.js"
57
+ "./plugins/nx-tsconfig-paths.plugin": "./plugins/nx-tsconfig-paths.plugin.js"
60
58
  },
61
59
  "type": "commonjs"
62
60
  }
@@ -109,21 +109,17 @@ There should at least be a tsconfig.base.json or tsconfig.json in the root of th
109
109
  const paths = tsconfig.paths[alias];
110
110
  const normalizedImport = alias.replace(/\/\*$/, '');
111
111
  if (importPath.startsWith(normalizedImport)) {
112
- const joinedPath = (0, _devkit.joinPathFragments)(tsconfig.absoluteBaseUrl, paths[0].replace(/\/\*$/, ''));
113
- resolvedFile = findFile(importPath.replace(normalizedImport, joinedPath));
112
+ const path = (tsconfig.absoluteBaseUrl, paths[0].replace(/\/\*$/, ''));
113
+ resolvedFile = findFile(importPath.replace(normalizedImport, path));
114
114
  }
115
115
  }
116
116
  return resolvedFile;
117
117
  }
118
118
  function findFile(path) {
119
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;
120
+ const r = (0, _nodepath.resolve)(path + ext);
121
+ if ((0, _nodefs.existsSync)(r)) {
122
+ return r;
127
123
  }
128
124
  }
129
125
  }
@@ -1 +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":"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"}
1
+ {"version":3,"sources":["../../../../packages/vite/plugins/nx-tsconfig-paths.plugin.ts"],"sourcesContent":["import { 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 path = (tsconfig.absoluteBaseUrl, paths[0].replace(/\\/\\*$/, ''));\n resolvedFile = findFile(importPath.replace(normalizedImport, path));\n }\n }\n\n return resolvedFile;\n }\n\n function findFile(path: string): string {\n for (const ext of options.extensions) {\n const r = resolve(path + ext);\n if (existsSync(r)) {\n return r;\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","path","findFile","ext","r"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @function replaceFiles
3
3
  * @param {FileReplacement[]} replacements
4
- * @return {({name: "rollup-plugin-replace-files", enforce: "pre" | "post" | undefined, Promise<resolveId>})}
4
+ * @return {({name: "rollup-plugin-replace-files", enforce: "pre", Promise<resolveId>})}
5
5
  */
6
- export declare function replaceFiles(replacements: FileReplacement[]): {
6
+ export default function replaceFiles(replacements: FileReplacement[]): {
7
7
  name: string;
8
- enforce: 'pre' | 'post' | undefined;
8
+ enforce: string;
9
9
  resolveId(source: any, importer: any, options: any): Promise<{
10
10
  id: string;
11
11
  }>;
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * @function replaceFiles
4
4
  * @param {FileReplacement[]} replacements
5
- * @return {({name: "rollup-plugin-replace-files", enforce: "pre" | "post" | undefined, Promise<resolveId>})}
5
+ * @return {({name: "rollup-plugin-replace-files", enforce: "pre", Promise<resolveId>})}
6
6
  */ "use strict";
7
- Object.defineProperty(exports, "replaceFiles", {
7
+ Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
9
  get: function() {
10
10
  return replaceFiles;
@@ -1 +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"}
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\", Promise<resolveId>})}\n */\nexport default function replaceFiles(replacements: FileReplacement[]) {\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;+BACD;;;eAAwBA;;;;AAAT,SAASA,aAAaC,YAA+B;IAClE,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"}
@@ -1,13 +1,9 @@
1
1
  import { ExecutorContext } from '@nx/devkit';
2
2
  import { ViteBuildExecutorOptions } from './schema';
3
- export declare function viteBuildExecutor(options: Record<string, any> & ViteBuildExecutorOptions, context: ExecutorContext): AsyncGenerator<{
3
+ export declare function viteBuildExecutor(options: ViteBuildExecutorOptions, context: ExecutorContext): AsyncGenerator<{
4
4
  success: boolean;
5
5
  } | {
6
6
  success: boolean;
7
7
  outfile: string;
8
8
  }, void, undefined>;
9
- export declare function getBuildExtraArgs(options: ViteBuildExecutorOptions): Promise<{
10
- buildOptions: Record<string, unknown>;
11
- otherOptions: Record<string, any>;
12
- }>;
13
9
  export default viteBuildExecutor;
@@ -9,9 +9,6 @@ _export(exports, {
9
9
  viteBuildExecutor: function() {
10
10
  return viteBuildExecutor;
11
11
  },
12
- getBuildExtraArgs: function() {
13
- return getBuildExtraArgs;
14
- },
15
12
  default: function() {
16
13
  return _default;
17
14
  }
@@ -25,48 +22,25 @@ const _path = require("path");
25
22
  const _asynciterable = require("@nx/devkit/src/utils/async-iterable");
26
23
  const _executorutils = require("../../utils/executor-utils");
27
24
  async function* viteBuildExecutor(options, context) {
28
- var _resolved_config_build, _resolved_config;
29
- process.env.VITE_CJS_IGNORE_WARNING = 'true';
30
25
  // 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)();
26
+ const { mergeConfig, build } = await Function('return import("vite")')();
32
27
  const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
33
28
  (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));
29
+ const normalizedOptions = normalizeOptions(options);
30
+ const buildConfig = mergeConfig((0, _optionsutils.getViteSharedConfig)(normalizedOptions, false, context), {
31
+ build: (0, _optionsutils.getViteBuildOptions)(normalizedOptions, context)
32
+ });
55
33
  if (!options.skipTypeCheck) {
56
- var _options_tsConfig;
57
34
  await (0, _executorutils.validateTypes)({
58
35
  workspaceRoot: context.root,
59
36
  projectRoot: projectRoot,
60
- tsconfig: (_options_tsConfig = options.tsConfig) != null ? _options_tsConfig : (0, _optionsutils.getProjectTsConfigPath)(projectRoot)
37
+ tsconfig: (0, _optionsutils.getProjectTsConfigPath)(projectRoot)
61
38
  });
62
39
  }
63
40
  const watcherOrOutput = await build(buildConfig);
64
41
  const libraryPackageJson = (0, _path.resolve)(projectRoot, 'package.json');
65
42
  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');
43
+ const distPackageJson = (0, _path.resolve)(normalizedOptions.outputPath, 'package.json');
70
44
  // Generate a package.json if option has been set.
71
45
  if (options.generatePackageJson) {
72
46
  if (context.projectGraph.nodes[context.projectName].type !== 'app') {
@@ -79,15 +53,15 @@ async function* viteBuildExecutor(options, context) {
79
53
  isProduction: !options.includeDevDependenciesInPackageJson
80
54
  });
81
55
  builtPackageJson.type = 'module';
82
- (0, _devkit.writeJsonFile)(`${outDirRelativeToWorkspaceRoot}/package.json`, builtPackageJson);
56
+ (0, _devkit.writeJsonFile)(`${options.outputPath}/package.json`, builtPackageJson);
83
57
  const packageManager = (0, _devkit.detectPackageManager)(context.root);
84
58
  const lockFile = (0, _js.createLockFile)(builtPackageJson, context.projectGraph, packageManager);
85
- (0, _fs.writeFileSync)(`${outDirRelativeToWorkspaceRoot}/${(0, _js.getLockFileName)(packageManager)}`, lockFile, {
59
+ (0, _fs.writeFileSync)(`${options.outputPath}/${(0, _js.getLockFileName)(packageManager)}`, lockFile, {
86
60
  encoding: 'utf-8'
87
61
  });
88
- } else if (options.generatePackageJson !== false && !(0, _fs.existsSync)(distPackageJson) && (0, _fs.existsSync)(libraryPackageJson) && rootPackageJson !== libraryPackageJson) {
62
+ } else if (!(0, _fs.existsSync)(distPackageJson) && (0, _fs.existsSync)(libraryPackageJson) && rootPackageJson !== libraryPackageJson) {
89
63
  await (0, _js.copyAssets)({
90
- outputPath: outDirRelativeToWorkspaceRoot,
64
+ outputPath: normalizedOptions.outputPath,
91
65
  assets: [
92
66
  {
93
67
  input: projectRoot,
@@ -112,7 +86,7 @@ async function* viteBuildExecutor(options, context) {
112
86
  }
113
87
  // result must be closed when present.
114
88
  // see https://rollupjs.org/guide/en/#rollupwatch
115
- if ('result' in event && event.result) {
89
+ if ('result' in event) {
116
90
  event.result.close();
117
91
  }
118
92
  });
@@ -122,65 +96,22 @@ async function* viteBuildExecutor(options, context) {
122
96
  var _watcherOrOutput_, _output_;
123
97
  const output = (watcherOrOutput == null ? void 0 : watcherOrOutput['output']) || (watcherOrOutput == null ? void 0 : (_watcherOrOutput_ = watcherOrOutput[0]) == null ? void 0 : _watcherOrOutput_.output);
124
98
  const fileName = (output == null ? void 0 : (_output_ = output[0]) == null ? void 0 : _output_.fileName) || 'main.cjs';
125
- const outfile = (0, _path.resolve)(outDirRelativeToWorkspaceRoot, fileName);
99
+ const outfile = (0, _path.resolve)(normalizedOptions.outputPath, fileName);
126
100
  yield {
127
101
  success: true,
128
102
  outfile
129
103
  };
130
104
  }
131
105
  }
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
- }
106
+ function normalizeOptions(options) {
107
+ const normalizedOptions = _extends._({}, options);
108
+ // coerce watch to null or {} to match with Vite's watch config
109
+ if (options.watch === false) {
110
+ normalizedOptions.watch = null;
111
+ } else if (options.watch === true) {
112
+ normalizedOptions.watch = {};
177
113
  }
178
- var _options_watch;
179
- buildOptions['watch'] = (_options_watch = options.watch) != null ? _options_watch : undefined;
180
- return {
181
- buildOptions,
182
- otherOptions
183
- };
114
+ return normalizedOptions;
184
115
  }
185
116
  const _default = viteBuildExecutor;
186
117
 
@@ -1 +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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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n logger,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n getViteBuildOptions,\n getViteSharedConfig,\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 { resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n validateTypes,\n} from '../../utils/executor-utils';\n\nexport async function* viteBuildExecutor(\n options: ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n createBuildableTsConfig(projectRoot, options, context);\n\n const normalizedOptions = normalizeOptions(options);\n\n const buildConfig = mergeConfig(\n getViteSharedConfig(normalizedOptions, false, context),\n {\n build: getViteBuildOptions(normalizedOptions, context),\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n projectRoot: projectRoot,\n 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 const distPackageJson = resolve(normalizedOptions.outputPath, 'package.json');\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(`${options.outputPath}/package.json`, builtPackageJson);\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${options.outputPath}/${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 !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: normalizedOptions.outputPath,\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) {\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(normalizedOptions.outputPath, fileName);\n yield { success: true, outfile };\n }\n}\n\nfunction normalizeOptions(options: ViteBuildExecutorOptions) {\n const normalizedOptions = { ...options };\n\n // coerce watch to null or {} to match with Vite's watch config\n if (options.watch === false) {\n normalizedOptions.watch = null;\n } else if (options.watch === true) {\n normalizedOptions.watch = {};\n }\n\n return normalizedOptions;\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","options","context","mergeConfig","build","Function","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","normalizedOptions","normalizeOptions","buildConfig","getViteSharedConfig","getViteBuildOptions","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","getProjectTsConfigPath","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","distPackageJson","outputPath","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","watch"],"mappings":"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"}
@@ -1,10 +1,23 @@
1
+ import type { FileReplacement } from '../../plugins/rollup-replace-files.plugin';
1
2
  export interface ViteBuildExecutorOptions {
2
- outputPath?: string;
3
- buildLibsFromSource?: boolean;
4
- skipTypeCheck?: boolean;
3
+ outputPath: string;
4
+ emptyOutDir?: boolean;
5
+ base?: string;
5
6
  configFile?: string;
6
- watch?: boolean;
7
+ fileReplacements?: FileReplacement[];
8
+ force?: boolean;
9
+ sourcemap?: boolean | 'inline' | 'hidden';
10
+ minify?: boolean | 'esbuild' | 'terser';
11
+ manifest?: boolean | string;
12
+ ssrManifest?: boolean | string;
13
+ logLevel?: 'info' | 'warn' | 'error' | 'silent';
14
+ mode?: string;
15
+ ssr?: boolean | string;
16
+ watch?: object | boolean;
17
+ target?: string | string[];
7
18
  generatePackageJson?: boolean;
8
19
  includeDevDependenciesInPackageJson?: boolean;
9
- tsConfig?: string;
20
+ cssCodeSplit?: boolean;
21
+ buildLibsFromSource?: boolean;
22
+ skipTypeCheck?: boolean;
10
23
  }