@nx/vite 20.5.0-beta.3 → 20.5.0-canary.20250128-e0c49d3

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 (48) hide show
  1. package/migrations.json +0 -28
  2. package/package.json +6 -7
  3. package/plugins/nx-tsconfig-paths.plugin.js +1 -1
  4. package/plugins/nx-tsconfig-paths.plugin.js.map +1 -1
  5. package/src/generators/configuration/configuration.js +0 -1
  6. package/src/generators/configuration/configuration.js.map +1 -1
  7. package/src/generators/init/init.js +3 -3
  8. package/src/generators/init/init.js.map +1 -1
  9. package/src/generators/init/lib/utils.d.ts +1 -1
  10. package/src/generators/init/lib/utils.js +4 -7
  11. package/src/generators/init/lib/utils.js.map +1 -1
  12. package/src/generators/init/schema.d.ts +0 -2
  13. package/src/generators/init/schema.json +0 -7
  14. package/src/generators/vitest/vitest-generator.js +8 -15
  15. package/src/generators/vitest/vitest-generator.js.map +1 -1
  16. package/src/migrations/update-17-2-0/lib/edit-test-config.js +2 -2
  17. package/src/migrations/update-17-2-0/lib/edit-test-config.js.map +1 -1
  18. package/src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore.js +2 -2
  19. package/src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore.js.map +1 -1
  20. package/src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore.js +2 -2
  21. package/src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore.js.map +1 -1
  22. package/src/plugins/plugin.js +46 -97
  23. package/src/plugins/plugin.js.map +1 -1
  24. package/src/utils/add-vite-temp-files-to-gitignore.d.ts +2 -0
  25. package/src/utils/add-vite-temp-files-to-gitignore.js +34 -0
  26. package/src/utils/add-vite-temp-files-to-gitignore.js.map +1 -0
  27. package/src/utils/generator-utils.js +4 -4
  28. package/src/utils/generator-utils.js.map +1 -1
  29. package/src/utils/versions.d.ts +5 -10
  30. package/src/utils/versions.js +5 -25
  31. package/src/utils/versions.js.map +1 -1
  32. package/src/utils/vite-config-edit-utils.js +1 -14
  33. package/src/utils/vite-config-edit-utils.js.map +1 -1
  34. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.d.ts +0 -2
  35. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.js +0 -47
  36. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.js.map +0 -1
  37. package/src/migrations/update-20-5-0/install-jiti.d.ts +0 -2
  38. package/src/migrations/update-20-5-0/install-jiti.js +0 -17
  39. package/src/migrations/update-20-5-0/install-jiti.js.map +0 -1
  40. package/src/migrations/update-20-5-0/update-resolve-conditions.d.ts +0 -2
  41. package/src/migrations/update-20-5-0/update-resolve-conditions.js +0 -72
  42. package/src/migrations/update-20-5-0/update-resolve-conditions.js.map +0 -1
  43. package/src/utils/ignore-vite-temp-files.d.ts +0 -4
  44. package/src/utils/ignore-vite-temp-files.js +0 -71
  45. package/src/utils/ignore-vite-temp-files.js.map +0 -1
  46. package/src/utils/version-utils.d.ts +0 -11
  47. package/src/utils/version-utils.js +0 -68
  48. package/src/utils/version-utils.js.map +0 -1
package/migrations.json CHANGED
@@ -34,37 +34,9 @@
34
34
  "version": "20.3.0-beta.2",
35
35
  "description": "Add gitignore entry for temporary vitest config files.",
36
36
  "implementation": "./src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore"
37
- },
38
- "update-20-5-0-install-jiti": {
39
- "version": "20.5.0-beta.2",
40
- "description": "Install jiti as a devDependency to allow vite to parse TS postcss files.",
41
- "implementation": "./src/migrations/update-20-5-0/install-jiti"
42
- },
43
- "update-20-5-0-update-resolve-conditions": {
44
- "version": "20.5.0-beta.3",
45
- "description": "Update resolve.conditions to include defaults that are no longer provided by Vite.",
46
- "implementation": "./src/migrations/update-20-5-0/update-resolve-conditions"
47
- },
48
- "eslint-ignore-vite-temp-files": {
49
- "version": "20.5.0-beta.3",
50
- "description": "Add vite config temporary files to the ESLint configuration ignore patterns if ESLint is used.",
51
- "implementation": "./src/migrations/update-20-5-0/eslint-ignore-vite-temp-files"
52
37
  }
53
38
  },
54
39
  "packageJsonUpdates": {
55
- "20.5.0": {
56
- "version": "20.5.0-beta.3",
57
- "packages": {
58
- "vite": {
59
- "version": "^6.0.0",
60
- "alwaysAddToPackageJson": false
61
- },
62
- "vite-plugin-dts": {
63
- "version": "~4.5.0",
64
- "alwaysAddToPackageJson": false
65
- }
66
- }
67
- },
68
40
  "18.1.0": {
69
41
  "version": "18.1.0-beta.1",
70
42
  "packages": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/vite",
3
- "version": "20.5.0-beta.3",
3
+ "version": "20.5.0-canary.20250128-e0c49d3",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for building and testing applications using Vite",
6
6
  "repository": {
@@ -30,18 +30,17 @@
30
30
  "migrations": "./migrations.json"
31
31
  },
32
32
  "dependencies": {
33
- "@nx/devkit": "20.5.0-beta.3",
33
+ "@nx/devkit": "20.5.0-canary.20250128-e0c49d3",
34
34
  "@phenomnomnominal/tsquery": "~5.0.1",
35
35
  "@swc/helpers": "~0.5.0",
36
36
  "enquirer": "~2.3.6",
37
- "@nx/js": "20.5.0-beta.3",
37
+ "@nx/js": "20.5.0-canary.20250128-e0c49d3",
38
38
  "tsconfig-paths": "^4.1.2",
39
- "minimatch": "9.0.3",
40
- "semver": "^7.6.3"
39
+ "minimatch": "9.0.3"
41
40
  },
42
41
  "peerDependencies": {
43
- "vite": "^5.0.0 || ^6.0.0",
44
- "vitest": "^1.3.1 || ^2.0.0 || ^3.0.0"
42
+ "vite": "^5.0.0",
43
+ "vitest": "^1.3.1 || ^2.0.0"
45
44
  },
46
45
  "publishConfig": {
47
46
  "access": "public"
@@ -106,7 +106,7 @@ There should at least be a tsconfig.base.json or tsconfig.json in the root of th
106
106
  logIt('Using fallback path matching.');
107
107
  resolvedFile = matchTsPathFallback == null ? void 0 : matchTsPathFallback(importPath);
108
108
  }
109
- if (!resolvedFile || !(0, _nodefs.existsSync)(resolvedFile)) {
109
+ if (!resolvedFile) {
110
110
  if (tsConfigPathsEsm || tsConfigPathsFallback) {
111
111
  logIt(`Unable to resolve ${importPath} with tsconfig paths. Using fallback file matching.`);
112
112
  resolvedFile = loadFileFromPaths(tsConfigPathsEsm, importPath) || loadFileFromPaths(tsConfigPathsFallback, importPath);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../packages/vite/plugins/nx-tsconfig-paths.plugin.ts"],"sourcesContent":["import {\n createProjectGraphAsync,\n joinPathFragments,\n stripIndents,\n workspaceRoot,\n} from '@nx/devkit';\nimport { copyFileSync, existsSync } from 'node:fs';\nimport { join, relative, resolve } from 'node:path';\nimport {\n loadConfig,\n createMatchPath,\n MatchPath,\n ConfigLoaderSuccessResult,\n} from 'tsconfig-paths';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\nimport { Plugin } from 'vite';\nimport { nxViteBuildCoordinationPlugin } from './nx-vite-build-coordination.plugin';\nimport { findFile } from '../src/utils/nx-tsconfig-paths-find-file';\nimport { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\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 * Inform Nx whether to use the raw source or to use the built output for buildable dependencies.\n * Set to `false` to use incremental builds.\n * @default true\n */\n buildLibsFromSource?: boolean;\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 '.mts',\n '.mjs',\n '.cts',\n '.cjs',\n '.css',\n '.scss',\n '.less',\n ];\n options.mainFields ??= [['exports', '.', 'import'], 'module', 'main'];\n options.buildLibsFromSource ??= true;\n let projectRoot = '';\n\n return {\n name: 'nx-vite-ts-paths',\n // Ensure the resolveId aspect of the plugin is called before vite's internal resolver\n // Otherwise, issues can arise with Yarn Workspaces and Pnpm Workspaces\n enforce: 'pre',\n async configResolved(config: any) {\n projectRoot = config.root;\n const projectRootFromWorkspaceRoot = relative(workspaceRoot, projectRoot);\n let foundTsConfigPath = getTsConfig(\n join(\n workspaceRoot,\n 'tmp',\n projectRootFromWorkspaceRoot,\n process.env.NX_TASK_TARGET_TARGET ?? 'build',\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\n if (\n !options.buildLibsFromSource &&\n !global.NX_GRAPH_CREATION &&\n config.mode !== 'test'\n ) {\n const projectGraph = await createProjectGraphAsync({\n exitOnError: false,\n resetDaemonClient: true,\n });\n const { dependencies } = calculateProjectBuildableDependencies(\n undefined,\n projectGraph,\n workspaceRoot,\n process.env.NX_TASK_TARGET_PROJECT,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n process.env.NX_TASK_TARGET_TARGET === 'serve'\n ? 'build'\n : process.env.NX_TASK_TARGET_TARGET,\n process.env.NX_TASK_TARGET_CONFIGURATION\n );\n // This tsconfig is used via the Vite ts paths plugin.\n // It can be also used by other user-defined Vite plugins (e.g. for creating type declaration files).\n foundTsConfigPath = createTmpTsConfig(\n foundTsConfigPath,\n workspaceRoot,\n relative(workspaceRoot, projectRoot),\n dependencies,\n true\n );\n\n if (config.command === 'serve') {\n const buildableLibraryDependencies = dependencies\n .filter((dep) => dep.node.type === 'lib')\n .map((dep) => dep.node.name)\n .join(',');\n const buildCommand = `npx nx run-many --target=${process.env.NX_TASK_TARGET_TARGET} --projects=${buildableLibraryDependencies}`;\n config.plugins.push(nxViteBuildCoordinationPlugin({ buildCommand }));\n }\n }\n\n const parsed = loadConfig(foundTsConfigPath);\n\n logIt('first parsed tsconfig: ', parsed);\n if (parsed.resultType === 'failed') {\n throw new Error(`Failed loading tsconfig 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 || !existsSync(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 async writeBundle(options) {\n if (isUsingTsSolutionSetup()) return;\n const outDir = options.dir || 'dist';\n const src = resolve(projectRoot, 'package.json');\n if (existsSync(src)) {\n const dest = join(outDir, 'package.json');\n\n try {\n copyFileSync(src, dest);\n } catch (err) {\n console.error('Error copying package.json:', err);\n }\n }\n },\n } as Plugin;\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 (\n importPath === normalizedImport ||\n importPath.startsWith(normalizedImport + '/')\n ) {\n const joinedPath = joinPathFragments(\n tsconfig.absoluteBaseUrl,\n paths[0].replace(/\\/\\*$/, '')\n );\n\n resolvedFile = findFile(\n importPath.replace(normalizedImport, joinedPath),\n options.extensions\n );\n }\n }\n\n return resolvedFile;\n }\n}\n"],"names":["nxViteTsPaths","options","matchTsPathEsm","matchTsPathFallback","tsConfigPathsEsm","tsConfigPathsFallback","extensions","mainFields","buildLibsFromSource","projectRoot","name","enforce","configResolved","config","root","projectRootFromWorkspaceRoot","relative","workspaceRoot","process","foundTsConfigPath","getTsConfig","join","env","NX_TASK_TARGET_TARGET","Error","stripIndents","global","NX_GRAPH_CREATION","mode","projectGraph","createProjectGraphAsync","exitOnError","resetDaemonClient","dependencies","calculateProjectBuildableDependencies","undefined","NX_TASK_TARGET_PROJECT","NX_TASK_TARGET_CONFIGURATION","createTmpTsConfig","command","buildableLibraryDependencies","filter","dep","node","type","map","buildCommand","plugins","push","nxViteBuildCoordinationPlugin","parsed","loadConfig","logIt","resultType","createMatchPath","absoluteBaseUrl","paths","rootLevelTsConfig","rootLevelParsed","resolveId","importPath","resolvedFile","e","existsSync","loadFileFromPaths","writeBundle","isUsingTsSolutionSetup","outDir","dir","src","resolve","dest","copyFileSync","err","console","error","preferredTsConfigPath","find","tsPath","msg","NX_VERBOSE_LOGGING","debug","tsconfig","configFileAbsolutePath","alias","normalizedImport","replace","startsWith","joinedPath","joinPathFragments","findFile"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../packages/vite/plugins/nx-tsconfig-paths.plugin.ts"],"sourcesContent":["import {\n createProjectGraphAsync,\n joinPathFragments,\n stripIndents,\n workspaceRoot,\n} from '@nx/devkit';\nimport { copyFileSync, existsSync } from 'node:fs';\nimport { join, relative, resolve } from 'node:path';\nimport {\n loadConfig,\n createMatchPath,\n MatchPath,\n ConfigLoaderSuccessResult,\n} from 'tsconfig-paths';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\nimport { Plugin } from 'vite';\nimport { nxViteBuildCoordinationPlugin } from './nx-vite-build-coordination.plugin';\nimport { findFile } from '../src/utils/nx-tsconfig-paths-find-file';\nimport { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\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 * Inform Nx whether to use the raw source or to use the built output for buildable dependencies.\n * Set to `false` to use incremental builds.\n * @default true\n */\n buildLibsFromSource?: boolean;\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 '.mts',\n '.mjs',\n '.cts',\n '.cjs',\n '.css',\n '.scss',\n '.less',\n ];\n options.mainFields ??= [['exports', '.', 'import'], 'module', 'main'];\n options.buildLibsFromSource ??= true;\n let projectRoot = '';\n\n return {\n name: 'nx-vite-ts-paths',\n // Ensure the resolveId aspect of the plugin is called before vite's internal resolver\n // Otherwise, issues can arise with Yarn Workspaces and Pnpm Workspaces\n enforce: 'pre',\n async configResolved(config: any) {\n projectRoot = config.root;\n const projectRootFromWorkspaceRoot = relative(workspaceRoot, projectRoot);\n let foundTsConfigPath = getTsConfig(\n join(\n workspaceRoot,\n 'tmp',\n projectRootFromWorkspaceRoot,\n process.env.NX_TASK_TARGET_TARGET ?? 'build',\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\n if (\n !options.buildLibsFromSource &&\n !global.NX_GRAPH_CREATION &&\n config.mode !== 'test'\n ) {\n const projectGraph = await createProjectGraphAsync({\n exitOnError: false,\n resetDaemonClient: true,\n });\n const { dependencies } = calculateProjectBuildableDependencies(\n undefined,\n projectGraph,\n workspaceRoot,\n process.env.NX_TASK_TARGET_PROJECT,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n process.env.NX_TASK_TARGET_TARGET === 'serve'\n ? 'build'\n : process.env.NX_TASK_TARGET_TARGET,\n process.env.NX_TASK_TARGET_CONFIGURATION\n );\n // This tsconfig is used via the Vite ts paths plugin.\n // It can be also used by other user-defined Vite plugins (e.g. for creating type declaration files).\n foundTsConfigPath = createTmpTsConfig(\n foundTsConfigPath,\n workspaceRoot,\n relative(workspaceRoot, projectRoot),\n dependencies,\n true\n );\n\n if (config.command === 'serve') {\n const buildableLibraryDependencies = dependencies\n .filter((dep) => dep.node.type === 'lib')\n .map((dep) => dep.node.name)\n .join(',');\n const buildCommand = `npx nx run-many --target=${process.env.NX_TASK_TARGET_TARGET} --projects=${buildableLibraryDependencies}`;\n config.plugins.push(nxViteBuildCoordinationPlugin({ buildCommand }));\n }\n }\n\n const parsed = loadConfig(foundTsConfigPath);\n\n logIt('first parsed tsconfig: ', parsed);\n if (parsed.resultType === 'failed') {\n throw new Error(`Failed loading tsconfig 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 async writeBundle(options) {\n if (isUsingTsSolutionSetup()) return;\n const outDir = options.dir || 'dist';\n const src = resolve(projectRoot, 'package.json');\n if (existsSync(src)) {\n const dest = join(outDir, 'package.json');\n\n try {\n copyFileSync(src, dest);\n } catch (err) {\n console.error('Error copying package.json:', err);\n }\n }\n },\n } as Plugin;\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 (\n importPath === normalizedImport ||\n importPath.startsWith(normalizedImport + '/')\n ) {\n const joinedPath = joinPathFragments(\n tsconfig.absoluteBaseUrl,\n paths[0].replace(/\\/\\*$/, '')\n );\n\n resolvedFile = findFile(\n importPath.replace(normalizedImport, joinedPath),\n options.extensions\n );\n }\n }\n\n return resolvedFile;\n }\n}\n"],"names":["nxViteTsPaths","options","matchTsPathEsm","matchTsPathFallback","tsConfigPathsEsm","tsConfigPathsFallback","extensions","mainFields","buildLibsFromSource","projectRoot","name","enforce","configResolved","config","root","projectRootFromWorkspaceRoot","relative","workspaceRoot","process","foundTsConfigPath","getTsConfig","join","env","NX_TASK_TARGET_TARGET","Error","stripIndents","global","NX_GRAPH_CREATION","mode","projectGraph","createProjectGraphAsync","exitOnError","resetDaemonClient","dependencies","calculateProjectBuildableDependencies","undefined","NX_TASK_TARGET_PROJECT","NX_TASK_TARGET_CONFIGURATION","createTmpTsConfig","command","buildableLibraryDependencies","filter","dep","node","type","map","buildCommand","plugins","push","nxViteBuildCoordinationPlugin","parsed","loadConfig","logIt","resultType","createMatchPath","absoluteBaseUrl","paths","rootLevelTsConfig","rootLevelParsed","resolveId","importPath","resolvedFile","e","loadFileFromPaths","writeBundle","isUsingTsSolutionSetup","outDir","dir","src","resolve","existsSync","dest","copyFileSync","err","console","error","preferredTsConfigPath","find","tsPath","msg","NX_VERBOSE_LOGGING","debug","tsconfig","configFileAbsolutePath","alias","normalizedImport","replace","startsWith","joinedPath","joinPathFragments","findFile"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -59,7 +59,6 @@ async function viteConfigurationGeneratorInternal(tree, schema) {
59
59
  }));
60
60
  tasks.push(jsInitTask);
61
61
  const initTask = await (0, _init.default)(tree, _extends._({}, schema, {
62
- projectRoot,
63
62
  skipFormat: true
64
63
  }));
65
64
  tasks.push(initTask);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n formatFiles,\n GeneratorCallback,\n joinPathFragments,\n readJson,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n writeJson,\n} from '@nx/devkit';\nimport {\n getUpdatedPackageJsonContent,\n initGenerator as jsInitGenerator,\n} from '@nx/js';\nimport { getImportPath } from '@nx/js/src/utils/get-import-path';\nimport {\n getProjectType,\n isUsingTsSolutionSetup,\n} from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { join } from 'node:path/posix';\nimport type { PackageJson } from 'nx/src/utils/package-json';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\nimport {\n addBuildTarget,\n addPreviewTarget,\n addServeTarget,\n createOrEditViteConfig,\n TargetFlags,\n} from '../../utils/generator-utils';\nimport initGenerator from '../init/init';\nimport vitestGenerator from '../vitest/vitest-generator';\nimport { convertNonVite } from './lib/convert-non-vite';\nimport { ViteConfigurationGeneratorSchema } from './schema';\n\nexport function viteConfigurationGenerator(\n host: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n return viteConfigurationGeneratorInternal(host, {\n addPlugin: false,\n ...schema,\n });\n}\n\nexport async function viteConfigurationGeneratorInternal(\n tree: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const projectConfig = readProjectConfiguration(tree, schema.project);\n const { targets, root: projectRoot } = projectConfig;\n\n const projectType = getProjectType(\n tree,\n projectConfig.root,\n schema.projectType ?? projectConfig.projectType\n );\n\n schema.includeLib ??= projectType === 'library';\n\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n /**\n * This is for when we are converting an existing project\n * to use the vite executors.\n */\n let projectAlreadyHasViteTargets: TargetFlags = {};\n\n if (!schema.newProject) {\n await convertNonVite(tree, schema, projectRoot, projectType, targets);\n }\n\n const jsInitTask = await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: projectRoot === '.' ? 'tsconfig.json' : 'tsconfig.base.json',\n });\n tasks.push(jsInitTask);\n const initTask = await initGenerator(tree, {\n ...schema,\n projectRoot,\n skipFormat: true,\n });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, schema));\n\n const nxJson = readNxJson(tree);\n const addPluginDefault =\n process.env.NX_ADD_PLUGINS !== 'false' &&\n nxJson.useInferencePlugins !== false;\n schema.addPlugin ??= addPluginDefault;\n\n const hasPlugin = nxJson.plugins?.some((p) =>\n typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin'\n );\n\n if (!hasPlugin) {\n if (!projectAlreadyHasViteTargets.build) {\n addBuildTarget(tree, schema, 'build');\n }\n\n if (!schema.includeLib) {\n if (!projectAlreadyHasViteTargets.serve) {\n addServeTarget(tree, schema, 'serve');\n }\n if (!projectAlreadyHasViteTargets.preview) {\n addPreviewTarget(tree, schema, 'preview');\n }\n }\n }\n if (projectType === 'library') {\n // update tsconfig.lib.json to include vite/client\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n json.compilerOptions ??= {};\n json.compilerOptions.types ??= [];\n if (!json.compilerOptions.types.includes('vite/client')) {\n json.compilerOptions.types.push('vite/client');\n }\n return json;\n }\n );\n }\n\n if (!schema.newProject) {\n // We are converting existing project to use Vite\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: schema.includeLib,\n includeVitest: schema.includeVitest,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n },\n false,\n undefined\n );\n } else {\n createOrEditViteConfig(tree, schema, false, projectAlreadyHasViteTargets);\n }\n }\n\n if (schema.includeVitest) {\n const vitestTask = await vitestGenerator(tree, {\n project: schema.project,\n uiFramework: schema.uiFramework,\n inSourceTests: schema.inSourceTests,\n coverageProvider: 'v8',\n skipViteConfig: true,\n testTarget: 'test',\n skipFormat: true,\n addPlugin: schema.addPlugin,\n compiler: schema.compiler,\n projectType,\n });\n tasks.push(vitestTask);\n }\n\n if (isUsingTsSolutionSetup(tree)) {\n updatePackageJson(tree, schema, projectType);\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default viteConfigurationGenerator;\n\nfunction updatePackageJson(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n projectType: 'application' | 'library'\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const packageJsonPath = join(project.root, 'package.json');\n let packageJson: PackageJson;\n if (tree.exists(packageJsonPath)) {\n packageJson = readJson(tree, packageJsonPath);\n } else {\n packageJson = {\n name: getImportPath(tree, options.project),\n version: '0.0.1',\n };\n if (getProjectType(tree, project.root, projectType) === 'application') {\n packageJson.private = true;\n }\n }\n\n if (projectType === 'library') {\n // we always write/override the vite and project config with some set values,\n // so we can rely on them\n const main = join(project.root, 'src/index.ts');\n // we configure the dts plugin with the entryRoot set to `src`\n const rootDir = join(project.root, 'src');\n const outputPath = joinPathFragments(project.root, 'dist');\n\n packageJson = getUpdatedPackageJsonContent(packageJson, {\n main,\n outputPath,\n projectRoot: project.root,\n rootDir,\n generateExportsField: true,\n packageJsonPath,\n format: ['esm'],\n });\n }\n\n writeJson(tree, packageJsonPath, packageJson);\n}\n"],"names":["viteConfigurationGenerator","viteConfigurationGeneratorInternal","host","schema","addPlugin","tree","nxJson","tasks","projectConfig","readProjectConfiguration","project","targets","root","projectRoot","projectType","getProjectType","includeLib","testEnvironment","projectAlreadyHasViteTargets","newProject","convertNonVite","jsInitTask","jsInitGenerator","skipFormat","tsConfigName","push","initTask","initGenerator","ensureDependencies","readNxJson","addPluginDefault","process","env","NX_ADD_PLUGINS","useInferencePlugins","hasPlugin","plugins","some","p","plugin","build","addBuildTarget","serve","addServeTarget","preview","addPreviewTarget","updateJson","joinPathFragments","json","compilerOptions","types","includes","uiFramework","createOrEditViteConfig","includeVitest","inSourceTests","rollupOptionsExternal","imports","compiler","undefined","vitestTask","vitestGenerator","coverageProvider","skipViteConfig","testTarget","isUsingTsSolutionSetup","updatePackageJson","formatFiles","runTasksInSerial","options","packageJsonPath","join","packageJson","exists","readJson","name","getImportPath","version","private","main","rootDir","outputPath","getUpdatedPackageJsonContent","generateExportsField","format","writeJson"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n formatFiles,\n GeneratorCallback,\n joinPathFragments,\n readJson,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n writeJson,\n} from '@nx/devkit';\nimport {\n getUpdatedPackageJsonContent,\n initGenerator as jsInitGenerator,\n} from '@nx/js';\nimport { getImportPath } from '@nx/js/src/utils/get-import-path';\nimport {\n getProjectType,\n isUsingTsSolutionSetup,\n} from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { join } from 'node:path/posix';\nimport type { PackageJson } from 'nx/src/utils/package-json';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\nimport {\n addBuildTarget,\n addPreviewTarget,\n addServeTarget,\n createOrEditViteConfig,\n TargetFlags,\n} from '../../utils/generator-utils';\nimport initGenerator from '../init/init';\nimport vitestGenerator from '../vitest/vitest-generator';\nimport { convertNonVite } from './lib/convert-non-vite';\nimport { ViteConfigurationGeneratorSchema } from './schema';\n\nexport function viteConfigurationGenerator(\n host: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n return viteConfigurationGeneratorInternal(host, {\n addPlugin: false,\n ...schema,\n });\n}\n\nexport async function viteConfigurationGeneratorInternal(\n tree: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const projectConfig = readProjectConfiguration(tree, schema.project);\n const { targets, root: projectRoot } = projectConfig;\n\n const projectType = getProjectType(\n tree,\n projectConfig.root,\n schema.projectType ?? projectConfig.projectType\n );\n\n schema.includeLib ??= projectType === 'library';\n\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n /**\n * This is for when we are converting an existing project\n * to use the vite executors.\n */\n let projectAlreadyHasViteTargets: TargetFlags = {};\n\n if (!schema.newProject) {\n await convertNonVite(tree, schema, projectRoot, projectType, targets);\n }\n\n const jsInitTask = await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: projectRoot === '.' ? 'tsconfig.json' : 'tsconfig.base.json',\n });\n tasks.push(jsInitTask);\n const initTask = await initGenerator(tree, { ...schema, skipFormat: true });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, schema));\n\n const nxJson = readNxJson(tree);\n const addPluginDefault =\n process.env.NX_ADD_PLUGINS !== 'false' &&\n nxJson.useInferencePlugins !== false;\n schema.addPlugin ??= addPluginDefault;\n\n const hasPlugin = nxJson.plugins?.some((p) =>\n typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin'\n );\n\n if (!hasPlugin) {\n if (!projectAlreadyHasViteTargets.build) {\n addBuildTarget(tree, schema, 'build');\n }\n\n if (!schema.includeLib) {\n if (!projectAlreadyHasViteTargets.serve) {\n addServeTarget(tree, schema, 'serve');\n }\n if (!projectAlreadyHasViteTargets.preview) {\n addPreviewTarget(tree, schema, 'preview');\n }\n }\n }\n if (projectType === 'library') {\n // update tsconfig.lib.json to include vite/client\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n json.compilerOptions ??= {};\n json.compilerOptions.types ??= [];\n if (!json.compilerOptions.types.includes('vite/client')) {\n json.compilerOptions.types.push('vite/client');\n }\n return json;\n }\n );\n }\n\n if (!schema.newProject) {\n // We are converting existing project to use Vite\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: schema.includeLib,\n includeVitest: schema.includeVitest,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n },\n false,\n undefined\n );\n } else {\n createOrEditViteConfig(tree, schema, false, projectAlreadyHasViteTargets);\n }\n }\n\n if (schema.includeVitest) {\n const vitestTask = await vitestGenerator(tree, {\n project: schema.project,\n uiFramework: schema.uiFramework,\n inSourceTests: schema.inSourceTests,\n coverageProvider: 'v8',\n skipViteConfig: true,\n testTarget: 'test',\n skipFormat: true,\n addPlugin: schema.addPlugin,\n compiler: schema.compiler,\n projectType,\n });\n tasks.push(vitestTask);\n }\n\n if (isUsingTsSolutionSetup(tree)) {\n updatePackageJson(tree, schema, projectType);\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default viteConfigurationGenerator;\n\nfunction updatePackageJson(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n projectType: 'application' | 'library'\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const packageJsonPath = join(project.root, 'package.json');\n let packageJson: PackageJson;\n if (tree.exists(packageJsonPath)) {\n packageJson = readJson(tree, packageJsonPath);\n } else {\n packageJson = {\n name: getImportPath(tree, options.project),\n version: '0.0.1',\n };\n if (getProjectType(tree, project.root, projectType) === 'application') {\n packageJson.private = true;\n }\n }\n\n if (projectType === 'library') {\n // we always write/override the vite and project config with some set values,\n // so we can rely on them\n const main = join(project.root, 'src/index.ts');\n // we configure the dts plugin with the entryRoot set to `src`\n const rootDir = join(project.root, 'src');\n const outputPath = joinPathFragments(project.root, 'dist');\n\n packageJson = getUpdatedPackageJsonContent(packageJson, {\n main,\n outputPath,\n projectRoot: project.root,\n rootDir,\n generateExportsField: true,\n packageJsonPath,\n format: ['esm'],\n });\n }\n\n writeJson(tree, packageJsonPath, packageJson);\n}\n"],"names":["viteConfigurationGenerator","viteConfigurationGeneratorInternal","host","schema","addPlugin","tree","nxJson","tasks","projectConfig","readProjectConfiguration","project","targets","root","projectRoot","projectType","getProjectType","includeLib","testEnvironment","projectAlreadyHasViteTargets","newProject","convertNonVite","jsInitTask","jsInitGenerator","skipFormat","tsConfigName","push","initTask","initGenerator","ensureDependencies","readNxJson","addPluginDefault","process","env","NX_ADD_PLUGINS","useInferencePlugins","hasPlugin","plugins","some","p","plugin","build","addBuildTarget","serve","addServeTarget","preview","addPreviewTarget","updateJson","joinPathFragments","json","compilerOptions","types","includes","uiFramework","createOrEditViteConfig","includeVitest","inSourceTests","rollupOptionsExternal","imports","compiler","undefined","vitestTask","vitestGenerator","coverageProvider","skipViteConfig","testTarget","isUsingTsSolutionSetup","updatePackageJson","formatFiles","runTasksInSerial","options","packageJsonPath","join","packageJson","exists","readJson","name","getImportPath","version","private","main","rootDir","outputPath","getUpdatedPackageJsonContent","generateExportsField","format","writeJson"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -25,7 +25,7 @@ const _addplugin = require("@nx/devkit/src/utils/add-plugin");
25
25
  const _setuppathsplugin = require("../setup-paths-plugin/setup-paths-plugin");
26
26
  const _plugin = require("../../plugins/plugin");
27
27
  const _utils = require("./lib/utils");
28
- const _ignorevitetempfiles = require("../../utils/ignore-vite-temp-files");
28
+ const _addvitetempfilestogitignore = require("../../utils/add-vite-temp-files-to-gitignore");
29
29
  function updateNxJsonSettings(tree) {
30
30
  var _nxJson_namedInputs, _nxJson_plugins;
31
31
  const nxJson = (0, _devkit.readNxJson)(tree);
@@ -112,7 +112,7 @@ async function initGeneratorInternal(tree, schema) {
112
112
  }, schema.updatePackageScripts);
113
113
  }
114
114
  updateNxJsonSettings(tree);
115
- await (0, _ignorevitetempfiles.ignoreViteTempFiles)(tree, schema.projectRoot);
115
+ (0, _addvitetempfilestogitignore.addViteTempFilesToGitIgnore)(tree);
116
116
  if (schema.setupPathsPlugin) {
117
117
  await (0, _setuppathsplugin.setupPathsPlugin)(tree, {
118
118
  skipFormat: true
@@ -121,7 +121,7 @@ async function initGeneratorInternal(tree, schema) {
121
121
  const tasks = [];
122
122
  if (!schema.skipPackageJson) {
123
123
  tasks.push((0, _utils.moveToDevDependencies)(tree));
124
- tasks.push(await (0, _utils.checkDependenciesInstalled)(tree, schema));
124
+ tasks.push((0, _utils.checkDependenciesInstalled)(tree, schema));
125
125
  }
126
126
  if (!schema.skipFormat) {
127
127
  await (0, _devkit.formatFiles)(tree);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n createProjectGraphAsync,\n formatFiles,\n GeneratorCallback,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateNxJson,\n} from '@nx/devkit';\nimport { addPlugin } from '@nx/devkit/src/utils/add-plugin';\n\nimport { setupPathsPlugin } from '../setup-paths-plugin/setup-paths-plugin';\nimport { createNodesV2 } from '../../plugins/plugin';\nimport { InitGeneratorSchema } from './schema';\nimport { checkDependenciesInstalled, moveToDevDependencies } from './lib/utils';\nimport { ignoreViteTempFiles } from '../../utils/ignore-vite-temp-files';\n\nexport function updateNxJsonSettings(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json',\n '!{projectRoot}/src/test-setup.[jt]s'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n const hasPlugin = nxJson.plugins?.some((p) =>\n typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin'\n );\n\n if (!hasPlugin) {\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults['@nx/vite:test'] ??= {};\n nxJson.targetDefaults['@nx/vite:test'].cache ??= true;\n nxJson.targetDefaults['@nx/vite:test'].inputs ??= [\n 'default',\n productionFileSet ? '^production' : '^default',\n ];\n }\n\n updateNxJson(tree, nxJson);\n}\n\nexport function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n return initGeneratorInternal(tree, { addPlugin: false, ...schema });\n}\n\nexport async function initGeneratorInternal(\n tree: Tree,\n schema: InitGeneratorSchema\n) {\n const nxJson = readNxJson(tree);\n const addPluginDefault =\n process.env.NX_ADD_PLUGINS !== 'false' &&\n nxJson.useInferencePlugins !== false;\n schema.addPlugin ??= addPluginDefault;\n\n if (schema.addPlugin) {\n await addPlugin(\n tree,\n await createProjectGraphAsync(),\n '@nx/vite/plugin',\n createNodesV2,\n {\n buildTargetName: ['build', 'vite:build', 'vite-build'],\n testTargetName: ['test', 'vite:test', 'vite-test'],\n serveTargetName: ['serve', 'vite:serve', 'vite-serve'],\n devTargetName: ['dev', 'vite:dev', 'vite-dev'],\n previewTargetName: ['preview', 'vite:preview', 'vite-preview'],\n serveStaticTargetName: [\n 'serve-static',\n 'vite:serve-static',\n 'vite-serve-static',\n ],\n typecheckTargetName: ['typecheck', 'vite:typecheck', 'vite-typecheck'],\n buildDepsTargetName: [\n 'build-deps',\n 'vite:build-deps',\n 'vite-build-deps',\n ],\n watchDepsTargetName: [\n 'watch-deps',\n 'vite:watch-deps',\n 'vite-watch-deps',\n ],\n },\n schema.updatePackageScripts\n );\n }\n\n updateNxJsonSettings(tree);\n await ignoreViteTempFiles(tree, schema.projectRoot);\n\n if (schema.setupPathsPlugin) {\n await setupPathsPlugin(tree, { skipFormat: true });\n }\n\n const tasks: GeneratorCallback[] = [];\n if (!schema.skipPackageJson) {\n tasks.push(moveToDevDependencies(tree));\n tasks.push(await checkDependenciesInstalled(tree, schema));\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["initGenerator","initGeneratorInternal","updateNxJsonSettings","tree","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","hasPlugin","plugins","some","p","plugin","targetDefaults","cache","inputs","updateNxJson","schema","addPlugin","addPluginDefault","process","env","NX_ADD_PLUGINS","useInferencePlugins","createProjectGraphAsync","createNodesV2","buildTargetName","testTargetName","serveTargetName","devTargetName","previewTargetName","serveStaticTargetName","typecheckTargetName","buildDepsTargetName","watchDepsTargetName","updatePackageScripts","ignoreViteTempFiles","projectRoot","setupPathsPlugin","skipFormat","tasks","skipPackageJson","moveToDevDependencies","checkDependenciesInstalled","formatFiles","runTasksInSerial"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAqHA,OAA6B;eAA7B;;IAnEgBA,aAAa;eAAbA;;IAIMC,qBAAqB;eAArBA;;IArCNC,oBAAoB;eAApBA;;;;wBATT;2BACmB;kCAEO;wBACH;uBAEoC;qCAC9B;AAE7B,SAASA,qBAAqBC,IAAU;QAGnBC,qBAWRA;IAblB,MAAMA,SAASC,IAAAA,kBAAU,EAACF;IAE1B,MAAMG,qBAAoBF,sBAAAA,OAAOG,WAAW,qBAAlBH,oBAAoBI,UAAU;IACxD,IAAIF,mBAAmB;QACrBA,kBAAkBG,IAAI,CACpB,yDACA,qCACA;QAGFL,OAAOG,WAAW,CAACC,UAAU,GAAGE,MAAMC,IAAI,CAAC,IAAIC,IAAIN;IACrD;IAEA,MAAMO,aAAYT,kBAAAA,OAAOU,OAAO,qBAAdV,gBAAgBW,IAAI,CAAC,CAACC,IACtC,OAAOA,MAAM,WACTA,MAAM,oBACNA,EAAEC,MAAM,KAAK;IAGnB,IAAI,CAACJ,WAAW;YACdT,SACAA,wBAAsB,aACtBA,mCACAA;;QAHAA,oBAAAA,UAAAA,QAAOc,4CAAPd,QAAOc,iBAAmB,CAAC;;QAC3Bd,MAAAA,yBAAAA,OAAOc,cAAc,CAAA,CAAC,cAAA,gBAAgB,gBAAtCd,sBAAqB,CAAC,YAAgB,GAAK,CAAC;;QAC5CA,WAAAA,oCAAAA,OAAOc,cAAc,CAAC,gBAAgB,EAACC,0BAAvCf,kCAAuCe,QAAU;;QACjDf,YAAAA,qCAAAA,OAAOc,cAAc,CAAC,gBAAgB,EAACE,4BAAvChB,mCAAuCgB,SAAW;YAChD;YACAd,oBAAoB,gBAAgB;SACrC;IACH;IAEAe,IAAAA,oBAAY,EAAClB,MAAMC;AACrB;AAEO,SAASJ,cAAcG,IAAU,EAAEmB,MAA2B;IACnE,OAAOrB,sBAAsBE,MAAM;QAAEoB,WAAW;OAAUD;AAC5D;AAEO,eAAerB,sBACpBE,IAAU,EACVmB,MAA2B;QAM3BA;IAJA,MAAMlB,SAASC,IAAAA,kBAAU,EAACF;IAC1B,MAAMqB,mBACJC,QAAQC,GAAG,CAACC,cAAc,KAAK,WAC/BvB,OAAOwB,mBAAmB,KAAK;;IACjCN,eAAAA,UAAAA,QAAOC,kCAAPD,QAAOC,YAAcC;IAErB,IAAIF,OAAOC,SAAS,EAAE;QACpB,MAAMA,IAAAA,oBAAS,EACbpB,MACA,MAAM0B,IAAAA,+BAAuB,KAC7B,mBACAC,qBAAa,EACb;YACEC,iBAAiB;gBAAC;gBAAS;gBAAc;aAAa;YACtDC,gBAAgB;gBAAC;gBAAQ;gBAAa;aAAY;YAClDC,iBAAiB;gBAAC;gBAAS;gBAAc;aAAa;YACtDC,eAAe;gBAAC;gBAAO;gBAAY;aAAW;YAC9CC,mBAAmB;gBAAC;gBAAW;gBAAgB;aAAe;YAC9DC,uBAAuB;gBACrB;gBACA;gBACA;aACD;YACDC,qBAAqB;gBAAC;gBAAa;gBAAkB;aAAiB;YACtEC,qBAAqB;gBACnB;gBACA;gBACA;aACD;YACDC,qBAAqB;gBACnB;gBACA;gBACA;aACD;QACH,GACAjB,OAAOkB,oBAAoB;IAE/B;IAEAtC,qBAAqBC;IACrB,MAAMsC,IAAAA,wCAAmB,EAACtC,MAAMmB,OAAOoB,WAAW;IAElD,IAAIpB,OAAOqB,gBAAgB,EAAE;QAC3B,MAAMA,IAAAA,kCAAgB,EAACxC,MAAM;YAAEyC,YAAY;QAAK;IAClD;IAEA,MAAMC,QAA6B,EAAE;IACrC,IAAI,CAACvB,OAAOwB,eAAe,EAAE;QAC3BD,MAAMpC,IAAI,CAACsC,IAAAA,4BAAqB,EAAC5C;QACjC0C,MAAMpC,IAAI,CAAC,MAAMuC,IAAAA,iCAA0B,EAAC7C,MAAMmB;IACpD;IAEA,IAAI,CAACA,OAAOsB,UAAU,EAAE;QACtB,MAAMK,IAAAA,mBAAW,EAAC9C;IACpB;IAEA,OAAO+C,IAAAA,wBAAgB,KAAIL;AAC7B;MAEA,WAAe7C"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n createProjectGraphAsync,\n formatFiles,\n GeneratorCallback,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateNxJson,\n} from '@nx/devkit';\nimport { addPlugin } from '@nx/devkit/src/utils/add-plugin';\n\nimport { setupPathsPlugin } from '../setup-paths-plugin/setup-paths-plugin';\nimport { createNodesV2 } from '../../plugins/plugin';\nimport { InitGeneratorSchema } from './schema';\nimport { checkDependenciesInstalled, moveToDevDependencies } from './lib/utils';\nimport { addViteTempFilesToGitIgnore } from '../../utils/add-vite-temp-files-to-gitignore';\n\nexport function updateNxJsonSettings(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json',\n '!{projectRoot}/src/test-setup.[jt]s'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n const hasPlugin = nxJson.plugins?.some((p) =>\n typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin'\n );\n\n if (!hasPlugin) {\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults['@nx/vite:test'] ??= {};\n nxJson.targetDefaults['@nx/vite:test'].cache ??= true;\n nxJson.targetDefaults['@nx/vite:test'].inputs ??= [\n 'default',\n productionFileSet ? '^production' : '^default',\n ];\n }\n\n updateNxJson(tree, nxJson);\n}\n\nexport function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n return initGeneratorInternal(tree, { addPlugin: false, ...schema });\n}\n\nexport async function initGeneratorInternal(\n tree: Tree,\n schema: InitGeneratorSchema\n) {\n const nxJson = readNxJson(tree);\n const addPluginDefault =\n process.env.NX_ADD_PLUGINS !== 'false' &&\n nxJson.useInferencePlugins !== false;\n schema.addPlugin ??= addPluginDefault;\n\n if (schema.addPlugin) {\n await addPlugin(\n tree,\n await createProjectGraphAsync(),\n '@nx/vite/plugin',\n createNodesV2,\n {\n buildTargetName: ['build', 'vite:build', 'vite-build'],\n testTargetName: ['test', 'vite:test', 'vite-test'],\n serveTargetName: ['serve', 'vite:serve', 'vite-serve'],\n devTargetName: ['dev', 'vite:dev', 'vite-dev'],\n previewTargetName: ['preview', 'vite:preview', 'vite-preview'],\n serveStaticTargetName: [\n 'serve-static',\n 'vite:serve-static',\n 'vite-serve-static',\n ],\n typecheckTargetName: ['typecheck', 'vite:typecheck', 'vite-typecheck'],\n buildDepsTargetName: [\n 'build-deps',\n 'vite:build-deps',\n 'vite-build-deps',\n ],\n watchDepsTargetName: [\n 'watch-deps',\n 'vite:watch-deps',\n 'vite-watch-deps',\n ],\n },\n schema.updatePackageScripts\n );\n }\n\n updateNxJsonSettings(tree);\n addViteTempFilesToGitIgnore(tree);\n\n if (schema.setupPathsPlugin) {\n await setupPathsPlugin(tree, { skipFormat: true });\n }\n\n const tasks: GeneratorCallback[] = [];\n if (!schema.skipPackageJson) {\n tasks.push(moveToDevDependencies(tree));\n tasks.push(checkDependenciesInstalled(tree, schema));\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["initGenerator","initGeneratorInternal","updateNxJsonSettings","tree","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","hasPlugin","plugins","some","p","plugin","targetDefaults","cache","inputs","updateNxJson","schema","addPlugin","addPluginDefault","process","env","NX_ADD_PLUGINS","useInferencePlugins","createProjectGraphAsync","createNodesV2","buildTargetName","testTargetName","serveTargetName","devTargetName","previewTargetName","serveStaticTargetName","typecheckTargetName","buildDepsTargetName","watchDepsTargetName","updatePackageScripts","addViteTempFilesToGitIgnore","setupPathsPlugin","skipFormat","tasks","skipPackageJson","moveToDevDependencies","checkDependenciesInstalled","formatFiles","runTasksInSerial"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  import { InitGeneratorSchema } from '../schema';
3
- export declare function checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema): Promise<import("@nx/devkit").GeneratorCallback>;
3
+ export declare function checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema): import("@nx/devkit").GeneratorCallback;
4
4
  export declare function moveToDevDependencies(tree: Tree): () => void;
5
5
  export declare function createVitestConfig(tree: Tree): void;
@@ -18,16 +18,13 @@ _export(exports, {
18
18
  });
19
19
  const _devkit = require("@nx/devkit");
20
20
  const _versions = require("../../../utils/versions");
21
- const _versionutils = require("../../../utils/version-utils");
22
- async function checkDependenciesInstalled(host, schema) {
23
- const { vitest } = await (0, _versionutils.getVitestDependenciesVersionsToInstall)(host);
21
+ function checkDependenciesInstalled(host, schema) {
24
22
  return (0, _devkit.addDependenciesToPackageJson)(host, {}, {
25
23
  '@nx/vite': _versions.nxVersion,
26
24
  '@nx/web': _versions.nxVersion,
27
- vite: schema.useViteV5 ? _versions.viteV5Version : _versions.viteVersion,
28
- vitest: vitest,
29
- '@vitest/ui': vitest,
30
- jiti: _versions.jitiVersion
25
+ vite: _versions.viteVersion,
26
+ vitest: _versions.vitestVersion,
27
+ '@vitest/ui': _versions.vitestVersion
31
28
  }, undefined, schema.keepExistingVersions);
32
29
  }
33
30
  function moveToDevDependencies(tree) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/vite/src/generators/init/lib/utils.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n installPackagesTask,\n readNxJson,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\nimport {\n jitiVersion,\n nxVersion,\n viteV5Version,\n viteVersion,\n} from '../../../utils/versions';\nimport { InitGeneratorSchema } from '../schema';\nimport { getVitestDependenciesVersionsToInstall } from '../../../utils/version-utils';\n\nexport async function checkDependenciesInstalled(\n host: Tree,\n schema: InitGeneratorSchema\n) {\n const { vitest } = await getVitestDependenciesVersionsToInstall(host);\n return addDependenciesToPackageJson(\n host,\n {},\n {\n '@nx/vite': nxVersion,\n '@nx/web': nxVersion,\n vite: schema.useViteV5 ? viteV5Version : viteVersion,\n vitest: vitest,\n '@vitest/ui': vitest,\n jiti: jitiVersion,\n },\n undefined,\n schema.keepExistingVersions\n );\n}\n\nexport function moveToDevDependencies(tree: Tree) {\n let wasUpdated = false;\n updateJson(tree, 'package.json', (packageJson) => {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n if (packageJson.dependencies['@nx/vite']) {\n packageJson.devDependencies['@nx/vite'] =\n packageJson.dependencies['@nx/vite'];\n delete packageJson.dependencies['@nx/vite'];\n wasUpdated = true;\n }\n return packageJson;\n });\n\n return wasUpdated ? () => installPackagesTask(tree) : () => {};\n}\n\nexport function createVitestConfig(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n updateNxJson(tree, nxJson);\n}\n"],"names":["checkDependenciesInstalled","createVitestConfig","moveToDevDependencies","host","schema","vitest","getVitestDependenciesVersionsToInstall","addDependenciesToPackageJson","nxVersion","vite","useViteV5","viteV5Version","viteVersion","jiti","jitiVersion","undefined","keepExistingVersions","tree","wasUpdated","updateJson","packageJson","dependencies","devDependencies","installPackagesTask","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","updateNxJson"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAiBsBA,0BAA0B;eAA1BA;;IAuCNC,kBAAkB;eAAlBA;;IAlBAC,qBAAqB;eAArBA;;;wBA/BT;0BAMA;8BAEgD;AAEhD,eAAeF,2BACpBG,IAAU,EACVC,MAA2B;IAE3B,MAAM,EAAEC,MAAM,EAAE,GAAG,MAAMC,IAAAA,oDAAsC,EAACH;IAChE,OAAOI,IAAAA,oCAA4B,EACjCJ,MACA,CAAC,GACD;QACE,YAAYK,mBAAS;QACrB,WAAWA,mBAAS;QACpBC,MAAML,OAAOM,SAAS,GAAGC,uBAAa,GAAGC,qBAAW;QACpDP,QAAQA;QACR,cAAcA;QACdQ,MAAMC,qBAAW;IACnB,GACAC,WACAX,OAAOY,oBAAoB;AAE/B;AAEO,SAASd,sBAAsBe,IAAU;IAC9C,IAAIC,aAAa;IACjBC,IAAAA,kBAAU,EAACF,MAAM,gBAAgB,CAACG;QAChCA,YAAYC,YAAY,GAAGD,YAAYC,YAAY,IAAI,CAAC;QACxDD,YAAYE,eAAe,GAAGF,YAAYE,eAAe,IAAI,CAAC;QAE9D,IAAIF,YAAYC,YAAY,CAAC,WAAW,EAAE;YACxCD,YAAYE,eAAe,CAAC,WAAW,GACrCF,YAAYC,YAAY,CAAC,WAAW;YACtC,OAAOD,YAAYC,YAAY,CAAC,WAAW;YAC3CH,aAAa;QACf;QACA,OAAOE;IACT;IAEA,OAAOF,aAAa,IAAMK,IAAAA,2BAAmB,EAACN,QAAQ,KAAO;AAC/D;AAEO,SAAShB,mBAAmBgB,IAAU;QAGjBO;IAF1B,MAAMA,SAASC,IAAAA,kBAAU,EAACR;IAE1B,MAAMS,qBAAoBF,sBAAAA,OAAOG,WAAW,qBAAlBH,oBAAoBI,UAAU;IACxD,IAAIF,mBAAmB;QACrBA,kBAAkBG,IAAI,CACpB,yDACA;QAGFL,OAAOG,WAAW,CAACC,UAAU,GAAGE,MAAMC,IAAI,CAAC,IAAIC,IAAIN;IACrD;IAEAO,IAAAA,oBAAY,EAAChB,MAAMO;AACrB"}
1
+ {"version":3,"sources":["../../../../../../../packages/vite/src/generators/init/lib/utils.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n installPackagesTask,\n readNxJson,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\nimport { nxVersion, vitestVersion, viteVersion } from '../../../utils/versions';\nimport { InitGeneratorSchema } from '../schema';\n\nexport function checkDependenciesInstalled(\n host: Tree,\n schema: InitGeneratorSchema\n) {\n return addDependenciesToPackageJson(\n host,\n {},\n {\n '@nx/vite': nxVersion,\n '@nx/web': nxVersion,\n vite: viteVersion,\n vitest: vitestVersion,\n '@vitest/ui': vitestVersion,\n },\n undefined,\n schema.keepExistingVersions\n );\n}\n\nexport function moveToDevDependencies(tree: Tree) {\n let wasUpdated = false;\n updateJson(tree, 'package.json', (packageJson) => {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n if (packageJson.dependencies['@nx/vite']) {\n packageJson.devDependencies['@nx/vite'] =\n packageJson.dependencies['@nx/vite'];\n delete packageJson.dependencies['@nx/vite'];\n wasUpdated = true;\n }\n return packageJson;\n });\n\n return wasUpdated ? () => installPackagesTask(tree) : () => {};\n}\n\nexport function createVitestConfig(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n updateNxJson(tree, nxJson);\n}\n"],"names":["checkDependenciesInstalled","createVitestConfig","moveToDevDependencies","host","schema","addDependenciesToPackageJson","nxVersion","vite","viteVersion","vitest","vitestVersion","undefined","keepExistingVersions","tree","wasUpdated","updateJson","packageJson","dependencies","devDependencies","installPackagesTask","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","updateNxJson"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAWgBA,0BAA0B;eAA1BA;;IAqCAC,kBAAkB;eAAlBA;;IAlBAC,qBAAqB;eAArBA;;;wBAvBT;0BAC+C;AAG/C,SAASF,2BACdG,IAAU,EACVC,MAA2B;IAE3B,OAAOC,IAAAA,oCAA4B,EACjCF,MACA,CAAC,GACD;QACE,YAAYG,mBAAS;QACrB,WAAWA,mBAAS;QACpBC,MAAMC,qBAAW;QACjBC,QAAQC,uBAAa;QACrB,cAAcA,uBAAa;IAC7B,GACAC,WACAP,OAAOQ,oBAAoB;AAE/B;AAEO,SAASV,sBAAsBW,IAAU;IAC9C,IAAIC,aAAa;IACjBC,IAAAA,kBAAU,EAACF,MAAM,gBAAgB,CAACG;QAChCA,YAAYC,YAAY,GAAGD,YAAYC,YAAY,IAAI,CAAC;QACxDD,YAAYE,eAAe,GAAGF,YAAYE,eAAe,IAAI,CAAC;QAE9D,IAAIF,YAAYC,YAAY,CAAC,WAAW,EAAE;YACxCD,YAAYE,eAAe,CAAC,WAAW,GACrCF,YAAYC,YAAY,CAAC,WAAW;YACtC,OAAOD,YAAYC,YAAY,CAAC,WAAW;YAC3CH,aAAa;QACf;QACA,OAAOE;IACT;IAEA,OAAOF,aAAa,IAAMK,IAAAA,2BAAmB,EAACN,QAAQ,KAAO;AAC/D;AAEO,SAASZ,mBAAmBY,IAAU;QAGjBO;IAF1B,MAAMA,SAASC,IAAAA,kBAAU,EAACR;IAE1B,MAAMS,qBAAoBF,sBAAAA,OAAOG,WAAW,qBAAlBH,oBAAoBI,UAAU;IACxD,IAAIF,mBAAmB;QACrBA,kBAAkBG,IAAI,CACpB,yDACA;QAGFL,OAAOG,WAAW,CAACC,UAAU,GAAGE,MAAMC,IAAI,CAAC,IAAIC,IAAIN;IACrD;IAEAO,IAAAA,oBAAY,EAAChB,MAAMO;AACrB"}
@@ -6,6 +6,4 @@ export interface InitGeneratorSchema {
6
6
  updatePackageScripts?: boolean;
7
7
  addPlugin?: boolean;
8
8
  vitestOnly?: boolean;
9
- useViteV5?: boolean;
10
- projectRoot?: string;
11
9
  }
@@ -31,13 +31,6 @@
31
31
  "x-priority": "internal",
32
32
  "description": "Update `package.json` scripts with inferred targets",
33
33
  "default": false
34
- },
35
- "useViteV5": {
36
- "type": "boolean",
37
- "description": "Use Vite v5",
38
- "default": false,
39
- "x-priority": "internal",
40
- "hidden": true
41
34
  }
42
35
  }
43
36
  }
@@ -23,10 +23,9 @@ const _tssolutionsetup = require("@nx/js/src/utils/typescript/ts-solution-setup"
23
23
  const _path = require("path");
24
24
  const _ensuredependencies = require("../../utils/ensure-dependencies");
25
25
  const _generatorutils = require("../../utils/generator-utils");
26
+ const _versions = require("../../utils/versions");
26
27
  const _init = require("../init/init");
27
28
  const _detectuiframework = require("../../utils/detect-ui-framework");
28
- const _versionutils = require("../../utils/version-utils");
29
- const _semver = require("semver");
30
29
  function vitestGenerator(tree, schema, hasPlugin = false) {
31
30
  return vitestGeneratorInternal(tree, _extends._({
32
31
  addPlugin: false
@@ -48,14 +47,9 @@ async function vitestGeneratorInternal(tree, schema, hasPlugin = false) {
48
47
  tasks.push(await (0, _js.initGenerator)(tree, _extends._({}, schema, {
49
48
  skipFormat: true
50
49
  })));
51
- const pkgJson = (0, _devkit.readJson)(tree, 'package.json');
52
- var _coerce;
53
- const useVite5 = (0, _semver.major)((_coerce = (0, _semver.coerce)(pkgJson.devDependencies['vite'])) != null ? _coerce : '6.0.0') === 5;
54
50
  const initTask = await (0, _init.default)(tree, {
55
- projectRoot: root,
56
51
  skipFormat: true,
57
- addPlugin: schema.addPlugin,
58
- useViteV5: useVite5
52
+ addPlugin: schema.addPlugin
59
53
  });
60
54
  tasks.push(initTask);
61
55
  tasks.push((0, _ensuredependencies.ensureDependencies)(tree, _extends._({}, schema, {
@@ -140,12 +134,12 @@ getTestBed().initTestEnvironment(
140
134
  nxJson.targetDefaults[testTarget].dependsOn.push('^build');
141
135
  (0, _devkit.updateNxJson)(tree, nxJson);
142
136
  }
143
- const coverageProviderDependency = await getCoverageProviderDependency(tree, schema.coverageProvider);
137
+ const coverageProviderDependency = getCoverageProviderDependency(schema.coverageProvider);
144
138
  const installCoverageProviderTask = (0, _devkit.addDependenciesToPackageJson)(tree, {}, coverageProviderDependency);
145
139
  tasks.push(installCoverageProviderTask);
146
140
  // Setup workspace config file (https://vitest.dev/guide/workspace.html)
147
141
  if (!isRootProject && !tree.exists(`vitest.workspace.ts`) && !tree.exists(`vitest.workspace.js`) && !tree.exists(`vitest.workspace.json`) && !tree.exists(`vitest.projects.ts`) && !tree.exists(`vitest.projects.js`) && !tree.exists(`vitest.projects.json`)) {
148
- tree.write('vitest.workspace.ts', `export default ['**/vite.config.{mjs,js,ts,mts}', '**/vitest.config.{mjs,js,ts,mts}'];`);
142
+ tree.write('vitest.workspace.ts', `export default ['**/*/vite.config.{ts,mts}', '**/*/vitest.config.{ts,mts}'];`);
149
143
  }
150
144
  if (!schema.skipFormat) {
151
145
  await (0, _devkit.formatFiles)(tree);
@@ -262,20 +256,19 @@ function createFiles(tree, options, projectRoot, isTsSolutionSetup) {
262
256
  outDir: isTsSolutionSetup ? `./out-tsc/vitest` : `${rootOffset}dist/out-tsc`
263
257
  }));
264
258
  }
265
- async function getCoverageProviderDependency(tree, coverageProvider) {
266
- const { vitestCoverageV8, vitestCoverageIstanbul } = await (0, _versionutils.getVitestDependenciesVersionsToInstall)(tree);
259
+ function getCoverageProviderDependency(coverageProvider) {
267
260
  switch(coverageProvider){
268
261
  case 'v8':
269
262
  return {
270
- '@vitest/coverage-v8': vitestCoverageV8
263
+ '@vitest/coverage-v8': _versions.vitestCoverageV8Version
271
264
  };
272
265
  case 'istanbul':
273
266
  return {
274
- '@vitest/coverage-istanbul': vitestCoverageIstanbul
267
+ '@vitest/coverage-istanbul': _versions.vitestCoverageIstanbulVersion
275
268
  };
276
269
  default:
277
270
  return {
278
- '@vitest/coverage-v8': vitestCoverageV8
271
+ '@vitest/coverage-v8': _versions.vitestCoverageV8Version
279
272
  };
280
273
  }
281
274
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n formatFiles,\n generateFiles,\n GeneratorCallback,\n joinPathFragments,\n logger,\n offsetFromRoot,\n ProjectType,\n readJson,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\nimport { initGenerator as jsInitGenerator } from '@nx/js';\nimport {\n getProjectType,\n isUsingTsSolutionSetup,\n} from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { join } from 'path';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n} from '../../utils/generator-utils';\nimport initGenerator from '../init/init';\nimport { VitestGeneratorSchema } from './schema';\nimport { detectUiFramework } from '../../utils/detect-ui-framework';\nimport { getVitestDependenciesVersionsToInstall } from '../../utils/version-utils';\nimport { coerce, major } from 'semver';\n\n/**\n * @param hasPlugin some frameworks (e.g. Nuxt) provide their own plugin. Their generators handle the plugin detection.\n */\nexport function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n return vitestGeneratorInternal(\n tree,\n { addPlugin: false, ...schema },\n hasPlugin\n );\n}\n\nexport async function vitestGeneratorInternal(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n const tasks: GeneratorCallback[] = [];\n\n const { root, projectType: _projectType } = readProjectConfiguration(\n tree,\n schema.project\n );\n const projectType = schema.projectType ?? _projectType;\n const uiFramework =\n schema.uiFramework ?? (await detectUiFramework(schema.project));\n const isRootProject = root === '.';\n\n tasks.push(await jsInitGenerator(tree, { ...schema, skipFormat: true }));\n\n const pkgJson = readJson(tree, 'package.json');\n const useVite5 =\n major(coerce(pkgJson.devDependencies['vite']) ?? '6.0.0') === 5;\n const initTask = await initGenerator(tree, {\n projectRoot: root,\n skipFormat: true,\n addPlugin: schema.addPlugin,\n useViteV5: useVite5,\n });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, { ...schema, uiFramework }));\n\n addOrChangeTestTarget(tree, schema, hasPlugin);\n\n if (!schema.skipViteConfig) {\n if (uiFramework === 'angular') {\n const relativeTestSetupPath = joinPathFragments('src', 'test-setup.ts');\n\n const setupFile = joinPathFragments(root, relativeTestSetupPath);\n if (!tree.exists(setupFile)) {\n tree.write(\n setupFile,\n `import '@analogjs/vitest-angular/setup-zone';\n\nimport {\n BrowserDynamicTestingModule,\n platformBrowserDynamicTesting,\n} from '@angular/platform-browser-dynamic/testing';\nimport { getTestBed } from '@angular/core/testing';\n\ngetTestBed().initTestEnvironment(\n BrowserDynamicTestingModule,\n platformBrowserDynamicTesting()\n);\n`\n );\n }\n\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: false,\n includeVitest: true,\n inSourceTests: false,\n imports: [`import angular from '@analogjs/vite-plugin-angular'`],\n plugins: ['angular()'],\n setupFile: relativeTestSetupPath,\n useEsmExtension: true,\n },\n true\n );\n } else if (uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: getProjectType(tree, root, projectType) === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n coverageProvider: schema.coverageProvider,\n },\n true\n );\n } else {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: getProjectType(tree, root, projectType) === 'library',\n },\n true\n );\n }\n }\n\n const isTsSolutionSetup = isUsingTsSolutionSetup(tree);\n\n createFiles(tree, schema, root, isTsSolutionSetup);\n updateTsConfig(tree, schema, root, projectType);\n\n if (isTsSolutionSetup) {\n // in the TS solution setup, the test target depends on the build outputs\n // so we need to setup the task pipeline accordingly\n const nxJson = readNxJson(tree);\n const testTarget = schema.testTarget ?? 'test';\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults[testTarget] ??= {};\n nxJson.targetDefaults[testTarget].dependsOn ??= [];\n nxJson.targetDefaults[testTarget].dependsOn.push('^build');\n updateNxJson(tree, nxJson);\n }\n\n const coverageProviderDependency = await getCoverageProviderDependency(\n tree,\n schema.coverageProvider\n );\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n coverageProviderDependency\n );\n tasks.push(installCoverageProviderTask);\n\n // Setup workspace config file (https://vitest.dev/guide/workspace.html)\n if (\n !isRootProject &&\n !tree.exists(`vitest.workspace.ts`) &&\n !tree.exists(`vitest.workspace.js`) &&\n !tree.exists(`vitest.workspace.json`) &&\n !tree.exists(`vitest.projects.ts`) &&\n !tree.exists(`vitest.projects.js`) &&\n !tree.exists(`vitest.projects.json`)\n ) {\n tree.write(\n 'vitest.workspace.ts',\n `export default ['**/vite.config.{mjs,js,ts,mts}', '**/vitest.config.{mjs,js,ts,mts}'];`\n );\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nfunction updateTsConfig(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string,\n projectType: ProjectType\n) {\n const setupFile = tryFindSetupFile(tree, projectRoot);\n\n if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.spec.json'))) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.spec.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n\n if (setupFile) {\n json.files = [...(json.files ?? []), setupFile];\n }\n\n return json;\n }\n );\n\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (\n json.references &&\n !json.references.some((r) => r.path === './tsconfig.spec.json')\n ) {\n json.references.push({\n path: './tsconfig.spec.json',\n });\n }\n return json;\n }\n );\n } else {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n }\n\n let runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n getProjectType(tree, projectRoot, projectType) === 'application'\n ? 'tsconfig.app.json'\n : 'tsconfig.lib.json'\n );\n if (options.runtimeTsconfigFileName) {\n runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n options.runtimeTsconfigFileName\n );\n if (!tree.exists(runtimeTsconfigPath)) {\n throw new Error(\n `Cannot find the specified runtimeTsConfigFileName (\"${options.runtimeTsconfigFileName}\") at the project root \"${projectRoot}\".`\n );\n }\n }\n\n if (tree.exists(runtimeTsconfigPath)) {\n updateJson(tree, runtimeTsconfigPath, (json) => {\n if (options.inSourceTests) {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n } else {\n const uniqueExclude = new Set([\n ...(json.exclude || []),\n 'vite.config.ts',\n 'vite.config.mts',\n 'vitest.config.ts',\n 'vitest.config.mts',\n 'src/**/*.test.ts',\n 'src/**/*.spec.ts',\n 'src/**/*.test.tsx',\n 'src/**/*.spec.tsx',\n 'src/**/*.test.js',\n 'src/**/*.spec.js',\n 'src/**/*.test.jsx',\n 'src/**/*.spec.jsx',\n ]);\n json.exclude = [...uniqueExclude];\n }\n\n if (setupFile) {\n json.exclude = [...(json.exclude ?? []), setupFile];\n }\n\n return json;\n });\n } else {\n logger.warn(\n `Couldn't find a runtime tsconfig file at ${runtimeTsconfigPath} to exclude the test files from. ` +\n `If you're using a different filename for your runtime tsconfig, please provide it with the '--runtimeTsconfigFileName' flag.`\n );\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string,\n isTsSolutionSetup: boolean\n) {\n const rootOffset = offsetFromRoot(projectRoot);\n\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n extendedConfig: isTsSolutionSetup\n ? `${rootOffset}tsconfig.base.json`\n : './tsconfig.json',\n outDir: isTsSolutionSetup\n ? `./out-tsc/vitest`\n : `${rootOffset}dist/out-tsc`,\n });\n}\n\nasync function getCoverageProviderDependency(\n tree: Tree,\n coverageProvider: VitestGeneratorSchema['coverageProvider']\n) {\n const { vitestCoverageV8, vitestCoverageIstanbul } =\n await getVitestDependenciesVersionsToInstall(tree);\n switch (coverageProvider) {\n case 'v8':\n return {\n '@vitest/coverage-v8': vitestCoverageV8,\n };\n case 'istanbul':\n return {\n '@vitest/coverage-istanbul': vitestCoverageIstanbul,\n };\n default:\n return {\n '@vitest/coverage-v8': vitestCoverageV8,\n };\n }\n}\n\nfunction tryFindSetupFile(tree: Tree, projectRoot: string) {\n const setupFile = joinPathFragments('src', 'test-setup.ts');\n if (tree.exists(joinPathFragments(projectRoot, setupFile))) {\n return setupFile;\n }\n}\n\nexport default vitestGenerator;\n"],"names":["vitestGenerator","vitestGeneratorInternal","tree","schema","hasPlugin","addPlugin","testEnvironment","tasks","root","projectType","_projectType","readProjectConfiguration","project","uiFramework","detectUiFramework","isRootProject","push","jsInitGenerator","skipFormat","pkgJson","readJson","coerce","useVite5","major","devDependencies","initTask","initGenerator","projectRoot","useViteV5","ensureDependencies","addOrChangeTestTarget","skipViteConfig","relativeTestSetupPath","joinPathFragments","setupFile","exists","write","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","imports","plugins","useEsmExtension","getProjectType","rollupOptionsExternal","compiler","coverageProvider","isTsSolutionSetup","isUsingTsSolutionSetup","createFiles","updateTsConfig","nxJson","testTarget","readNxJson","targetDefaults","dependsOn","updateNxJson","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","formatFiles","runTasksInSerial","options","tryFindSetupFile","updateJson","json","compilerOptions","types","includes","files","references","some","r","path","runtimeTsconfigPath","runtimeTsconfigFileName","Error","uniqueExclude","Set","exclude","logger","warn","rootOffset","offsetFromRoot","generateFiles","join","__dirname","tmpl","extendedConfig","outDir","vitestCoverageV8","vitestCoverageIstanbul","getVitestDependenciesVersionsToInstall"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n formatFiles,\n generateFiles,\n GeneratorCallback,\n joinPathFragments,\n logger,\n offsetFromRoot,\n ProjectType,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\nimport { initGenerator as jsInitGenerator } from '@nx/js';\nimport {\n getProjectType,\n isUsingTsSolutionSetup,\n} from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { join } from 'path';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n} from '../../utils/generator-utils';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\nimport initGenerator from '../init/init';\nimport { VitestGeneratorSchema } from './schema';\nimport { detectUiFramework } from '../../utils/detect-ui-framework';\n\n/**\n * @param hasPlugin some frameworks (e.g. Nuxt) provide their own plugin. Their generators handle the plugin detection.\n */\nexport function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n return vitestGeneratorInternal(\n tree,\n { addPlugin: false, ...schema },\n hasPlugin\n );\n}\n\nexport async function vitestGeneratorInternal(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n const tasks: GeneratorCallback[] = [];\n\n const { root, projectType: _projectType } = readProjectConfiguration(\n tree,\n schema.project\n );\n const projectType = schema.projectType ?? _projectType;\n const uiFramework =\n schema.uiFramework ?? (await detectUiFramework(schema.project));\n const isRootProject = root === '.';\n\n tasks.push(await jsInitGenerator(tree, { ...schema, skipFormat: true }));\n const initTask = await initGenerator(tree, {\n skipFormat: true,\n addPlugin: schema.addPlugin,\n });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, { ...schema, uiFramework }));\n\n addOrChangeTestTarget(tree, schema, hasPlugin);\n\n if (!schema.skipViteConfig) {\n if (uiFramework === 'angular') {\n const relativeTestSetupPath = joinPathFragments('src', 'test-setup.ts');\n\n const setupFile = joinPathFragments(root, relativeTestSetupPath);\n if (!tree.exists(setupFile)) {\n tree.write(\n setupFile,\n `import '@analogjs/vitest-angular/setup-zone';\n\nimport {\n BrowserDynamicTestingModule,\n platformBrowserDynamicTesting,\n} from '@angular/platform-browser-dynamic/testing';\nimport { getTestBed } from '@angular/core/testing';\n\ngetTestBed().initTestEnvironment(\n BrowserDynamicTestingModule,\n platformBrowserDynamicTesting()\n);\n`\n );\n }\n\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: false,\n includeVitest: true,\n inSourceTests: false,\n imports: [`import angular from '@analogjs/vite-plugin-angular'`],\n plugins: ['angular()'],\n setupFile: relativeTestSetupPath,\n useEsmExtension: true,\n },\n true\n );\n } else if (uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: getProjectType(tree, root, projectType) === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n coverageProvider: schema.coverageProvider,\n },\n true\n );\n } else {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: getProjectType(tree, root, projectType) === 'library',\n },\n true\n );\n }\n }\n\n const isTsSolutionSetup = isUsingTsSolutionSetup(tree);\n\n createFiles(tree, schema, root, isTsSolutionSetup);\n updateTsConfig(tree, schema, root, projectType);\n\n if (isTsSolutionSetup) {\n // in the TS solution setup, the test target depends on the build outputs\n // so we need to setup the task pipeline accordingly\n const nxJson = readNxJson(tree);\n const testTarget = schema.testTarget ?? 'test';\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults[testTarget] ??= {};\n nxJson.targetDefaults[testTarget].dependsOn ??= [];\n nxJson.targetDefaults[testTarget].dependsOn.push('^build');\n updateNxJson(tree, nxJson);\n }\n\n const coverageProviderDependency = getCoverageProviderDependency(\n schema.coverageProvider\n );\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n coverageProviderDependency\n );\n tasks.push(installCoverageProviderTask);\n\n // Setup workspace config file (https://vitest.dev/guide/workspace.html)\n if (\n !isRootProject &&\n !tree.exists(`vitest.workspace.ts`) &&\n !tree.exists(`vitest.workspace.js`) &&\n !tree.exists(`vitest.workspace.json`) &&\n !tree.exists(`vitest.projects.ts`) &&\n !tree.exists(`vitest.projects.js`) &&\n !tree.exists(`vitest.projects.json`)\n ) {\n tree.write(\n 'vitest.workspace.ts',\n `export default ['**/*/vite.config.{ts,mts}', '**/*/vitest.config.{ts,mts}'];`\n );\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nfunction updateTsConfig(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string,\n projectType: ProjectType\n) {\n const setupFile = tryFindSetupFile(tree, projectRoot);\n\n if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.spec.json'))) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.spec.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n\n if (setupFile) {\n json.files = [...(json.files ?? []), setupFile];\n }\n\n return json;\n }\n );\n\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (\n json.references &&\n !json.references.some((r) => r.path === './tsconfig.spec.json')\n ) {\n json.references.push({\n path: './tsconfig.spec.json',\n });\n }\n return json;\n }\n );\n } else {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n }\n\n let runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n getProjectType(tree, projectRoot, projectType) === 'application'\n ? 'tsconfig.app.json'\n : 'tsconfig.lib.json'\n );\n if (options.runtimeTsconfigFileName) {\n runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n options.runtimeTsconfigFileName\n );\n if (!tree.exists(runtimeTsconfigPath)) {\n throw new Error(\n `Cannot find the specified runtimeTsConfigFileName (\"${options.runtimeTsconfigFileName}\") at the project root \"${projectRoot}\".`\n );\n }\n }\n\n if (tree.exists(runtimeTsconfigPath)) {\n updateJson(tree, runtimeTsconfigPath, (json) => {\n if (options.inSourceTests) {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n } else {\n const uniqueExclude = new Set([\n ...(json.exclude || []),\n 'vite.config.ts',\n 'vite.config.mts',\n 'vitest.config.ts',\n 'vitest.config.mts',\n 'src/**/*.test.ts',\n 'src/**/*.spec.ts',\n 'src/**/*.test.tsx',\n 'src/**/*.spec.tsx',\n 'src/**/*.test.js',\n 'src/**/*.spec.js',\n 'src/**/*.test.jsx',\n 'src/**/*.spec.jsx',\n ]);\n json.exclude = [...uniqueExclude];\n }\n\n if (setupFile) {\n json.exclude = [...(json.exclude ?? []), setupFile];\n }\n\n return json;\n });\n } else {\n logger.warn(\n `Couldn't find a runtime tsconfig file at ${runtimeTsconfigPath} to exclude the test files from. ` +\n `If you're using a different filename for your runtime tsconfig, please provide it with the '--runtimeTsconfigFileName' flag.`\n );\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string,\n isTsSolutionSetup: boolean\n) {\n const rootOffset = offsetFromRoot(projectRoot);\n\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n extendedConfig: isTsSolutionSetup\n ? `${rootOffset}tsconfig.base.json`\n : './tsconfig.json',\n outDir: isTsSolutionSetup\n ? `./out-tsc/vitest`\n : `${rootOffset}dist/out-tsc`,\n });\n}\n\nfunction getCoverageProviderDependency(\n coverageProvider: VitestGeneratorSchema['coverageProvider']\n) {\n switch (coverageProvider) {\n case 'v8':\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n case 'istanbul':\n return {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n };\n default:\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n }\n}\n\nfunction tryFindSetupFile(tree: Tree, projectRoot: string) {\n const setupFile = joinPathFragments('src', 'test-setup.ts');\n if (tree.exists(joinPathFragments(projectRoot, setupFile))) {\n return setupFile;\n }\n}\n\nexport default vitestGenerator;\n"],"names":["vitestGenerator","vitestGeneratorInternal","tree","schema","hasPlugin","addPlugin","testEnvironment","tasks","root","projectType","_projectType","readProjectConfiguration","project","uiFramework","detectUiFramework","isRootProject","push","jsInitGenerator","skipFormat","initTask","initGenerator","ensureDependencies","addOrChangeTestTarget","skipViteConfig","relativeTestSetupPath","joinPathFragments","setupFile","exists","write","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","imports","plugins","useEsmExtension","getProjectType","rollupOptionsExternal","compiler","coverageProvider","isTsSolutionSetup","isUsingTsSolutionSetup","createFiles","updateTsConfig","nxJson","testTarget","readNxJson","targetDefaults","dependsOn","updateNxJson","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","formatFiles","runTasksInSerial","options","projectRoot","tryFindSetupFile","updateJson","json","compilerOptions","types","includes","files","references","some","r","path","runtimeTsconfigPath","runtimeTsconfigFileName","Error","uniqueExclude","Set","exclude","logger","warn","rootOffset","offsetFromRoot","generateFiles","join","__dirname","tmpl","extendedConfig","outDir","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -59,7 +59,7 @@ function updateTestConfig(configContents, projectConfig, configPath) {
59
59
  changes.push({
60
60
  type: _devkit.ChangeType.Insert,
61
61
  index: testCoverage.getStart() + `coverage: {`.length + 1,
62
- text: `provider: 'v8' as const,`
62
+ text: `provider: 'v8',`
63
63
  });
64
64
  }
65
65
  } else if (testObject) {
@@ -68,7 +68,7 @@ function updateTestConfig(configContents, projectConfig, configPath) {
68
68
  index: testObject.getStart() + `test: {`.length + 1,
69
69
  text: `coverage: {
70
70
  reportsDirectory: '${coverageDir}',
71
- provider: 'v8' as const,
71
+ provider: 'v8',
72
72
  },`
73
73
  });
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts"],"sourcesContent":["import {\n ChangeType,\n ProjectConfiguration,\n applyChangesToString,\n joinPathFragments,\n offsetFromRoot,\n} from '@nx/devkit';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport ts = require('typescript');\nimport { getConfigNode, notFoundWarning } from '../update-vite-config';\n\nexport function updateTestConfig(\n configContents: string,\n projectConfig: ProjectConfiguration,\n configPath: string\n): string {\n const configNode = getConfigNode(configContents);\n if (!configNode) {\n notFoundWarning(configPath);\n return configContents;\n }\n\n const testObject = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"test\"])`\n )?.[0];\n let testCoverageDir: ts.Node;\n let testCoverage: ts.Node;\n let provider: ts.Node;\n let reporters: ts.Node;\n\n if (testObject) {\n testCoverage = tsquery.query(\n testObject,\n `PropertyAssignment:has(Identifier[name=\"coverage\"])`\n )?.[0];\n reporters = tsquery.query(\n testObject,\n `PropertyAssignment:has(Identifier[name=\"reporters\"])`\n )?.[0];\n if (testCoverage) {\n testCoverageDir = tsquery.query(\n testCoverage,\n `PropertyAssignment:has(Identifier[name=\"reportsDirectory\"])`\n )?.[0];\n provider = tsquery.query(\n testCoverage,\n `PropertyAssignment:has(Identifier[name=\"provider\"])`\n )?.[0];\n }\n }\n\n let coverageDir = '';\n\n if (projectConfig.targets?.test?.options?.reportsDirectory) {\n coverageDir = projectConfig.targets?.test?.options?.reportsDirectory;\n } else {\n coverageDir = joinPathFragments(\n offsetFromRoot(projectConfig.root),\n 'coverage',\n projectConfig.root\n );\n }\n\n let changes = [];\n\n if (!reporters && testObject) {\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `reporters: ['default'],`,\n });\n }\n\n if (testCoverageDir) {\n // Do nothing\n } else if (testCoverage) {\n // has test.coverage, has no reportsDirectory\n // so add reportsDirectory\n changes.push({\n type: ChangeType.Insert,\n index: testCoverage.getStart() + `coverage: {`.length + 1,\n text: `reportsDirectory: '${coverageDir}',`,\n });\n if (!provider) {\n changes.push({\n type: ChangeType.Insert,\n index: testCoverage.getStart() + `coverage: {`.length + 1,\n text: `provider: 'v8' as const,`,\n });\n }\n } else if (testObject) {\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `coverage: {\n reportsDirectory: '${coverageDir}',\n provider: 'v8' as const,\n },`,\n });\n }\n\n if (changes.length > 0) {\n return applyChangesToString(configContents, changes);\n } else {\n return configContents;\n }\n}\n"],"names":["updateTestConfig","configContents","projectConfig","configPath","tsquery","configNode","getConfigNode","notFoundWarning","testObject","query","testCoverageDir","testCoverage","provider","reporters","coverageDir","targets","test","options","reportsDirectory","joinPathFragments","offsetFromRoot","root","changes","push","type","ChangeType","Insert","index","getStart","length","text","applyChangesToString"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts"],"sourcesContent":["import {\n ChangeType,\n ProjectConfiguration,\n applyChangesToString,\n joinPathFragments,\n offsetFromRoot,\n} from '@nx/devkit';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport ts = require('typescript');\nimport { getConfigNode, notFoundWarning } from '../update-vite-config';\n\nexport function updateTestConfig(\n configContents: string,\n projectConfig: ProjectConfiguration,\n configPath: string\n): string {\n const configNode = getConfigNode(configContents);\n if (!configNode) {\n notFoundWarning(configPath);\n return configContents;\n }\n\n const testObject = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"test\"])`\n )?.[0];\n let testCoverageDir: ts.Node;\n let testCoverage: ts.Node;\n let provider: ts.Node;\n let reporters: ts.Node;\n\n if (testObject) {\n testCoverage = tsquery.query(\n testObject,\n `PropertyAssignment:has(Identifier[name=\"coverage\"])`\n )?.[0];\n reporters = tsquery.query(\n testObject,\n `PropertyAssignment:has(Identifier[name=\"reporters\"])`\n )?.[0];\n if (testCoverage) {\n testCoverageDir = tsquery.query(\n testCoverage,\n `PropertyAssignment:has(Identifier[name=\"reportsDirectory\"])`\n )?.[0];\n provider = tsquery.query(\n testCoverage,\n `PropertyAssignment:has(Identifier[name=\"provider\"])`\n )?.[0];\n }\n }\n\n let coverageDir = '';\n\n if (projectConfig.targets?.test?.options?.reportsDirectory) {\n coverageDir = projectConfig.targets?.test?.options?.reportsDirectory;\n } else {\n coverageDir = joinPathFragments(\n offsetFromRoot(projectConfig.root),\n 'coverage',\n projectConfig.root\n );\n }\n\n let changes = [];\n\n if (!reporters && testObject) {\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `reporters: ['default'],`,\n });\n }\n\n if (testCoverageDir) {\n // Do nothing\n } else if (testCoverage) {\n // has test.coverage, has no reportsDirectory\n // so add reportsDirectory\n changes.push({\n type: ChangeType.Insert,\n index: testCoverage.getStart() + `coverage: {`.length + 1,\n text: `reportsDirectory: '${coverageDir}',`,\n });\n if (!provider) {\n changes.push({\n type: ChangeType.Insert,\n index: testCoverage.getStart() + `coverage: {`.length + 1,\n text: `provider: 'v8',`,\n });\n }\n } else if (testObject) {\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `coverage: {\n reportsDirectory: '${coverageDir}',\n provider: 'v8',\n },`,\n });\n }\n\n if (changes.length > 0) {\n return applyChangesToString(configContents, changes);\n } else {\n return configContents;\n }\n}\n"],"names":["updateTestConfig","configContents","projectConfig","configPath","tsquery","configNode","getConfigNode","notFoundWarning","testObject","query","testCoverageDir","testCoverage","provider","reporters","coverageDir","targets","test","options","reportsDirectory","joinPathFragments","offsetFromRoot","root","changes","push","type","ChangeType","Insert","index","getStart","length","text","applyChangesToString"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}