@nx/vite 17.2.0-beta.11 → 17.2.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/vite",
3
- "version": "17.2.0-beta.11",
3
+ "version": "17.2.0-beta.14",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for building and testing applications using Vite",
6
6
  "repository": {
@@ -29,13 +29,13 @@
29
29
  "migrations": "./migrations.json"
30
30
  },
31
31
  "dependencies": {
32
+ "@nx/devkit": "17.2.0-beta.14",
32
33
  "@phenomnomnominal/tsquery": "~5.0.1",
33
34
  "@swc/helpers": "~0.5.0",
34
35
  "enquirer": "~2.3.6",
35
- "@nx/devkit": "17.2.0-beta.11",
36
- "@nx/js": "17.2.0-beta.11",
36
+ "@nx/js": "17.2.0-beta.14",
37
37
  "tsconfig-paths": "^4.1.2",
38
- "@nrwl/vite": "17.2.0-beta.11"
38
+ "@nrwl/vite": "17.2.0-beta.14"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "vite": "^5.0.0",
@@ -46,6 +46,7 @@
46
46
  },
47
47
  "exports": {
48
48
  ".": "./index.js",
49
+ "./plugin": "./plugin.js",
49
50
  "./package.json": "./package.json",
50
51
  "./migrations.json": "./migrations.json",
51
52
  "./generators.json": "./generators.json",
package/plugin.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { createNodes, VitePluginOptions, createDependencies, } from './src/plugins/plugin';
package/plugin.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ createNodes: function() {
10
+ return _plugin.createNodes;
11
+ },
12
+ VitePluginOptions: function() {
13
+ return _plugin.VitePluginOptions;
14
+ },
15
+ createDependencies: function() {
16
+ return _plugin.createDependencies;
17
+ }
18
+ });
19
+ const _plugin = require("./src/plugins/plugin");
20
+
21
+ //# sourceMappingURL=plugin.js.map
package/plugin.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../packages/vite/plugin.ts"],"sourcesContent":["export {\n createNodes,\n VitePluginOptions,\n createDependencies,\n} from './src/plugins/plugin';\n"],"names":["createNodes","VitePluginOptions","createDependencies"],"mappings":";;;;;;;;IACEA,WAAW;eAAXA,mBAAW;;IACXC,iBAAiB;eAAjBA,yBAAiB;;IACjBC,kBAAkB;eAAlBA,0BAAkB;;;wBACb"}
@@ -19,6 +19,7 @@ const _generatorutils = require("../../utils/generator-utils");
19
19
  const _init = require("../init/init");
20
20
  const _vitestgenerator = require("../vitest/vitest-generator");
21
21
  async function viteConfigurationGenerator(tree, schema) {
22
+ var _nxJson_plugins;
22
23
  var _schema, // Setting default to jsdom since it is the most common use case (React, Web).
23
24
  // The @nx/js:lib generator specifically sets this to node to be more generic.
24
25
  _schema1;
@@ -106,15 +107,19 @@ async function viteConfigurationGenerator(tree, schema) {
106
107
  rootProject: projectRoot === '.'
107
108
  });
108
109
  tasks.push(initTask);
109
- if (!projectAlreadyHasViteTargets.build) {
110
- (0, _generatorutils.addOrChangeBuildTarget)(tree, schema, buildTargetName);
111
- }
112
- if (!schema.includeLib) {
113
- if (!projectAlreadyHasViteTargets.serve) {
114
- (0, _generatorutils.addOrChangeServeTarget)(tree, schema, serveTargetName);
110
+ const nxJson = (0, _devkit.readNxJson)(tree);
111
+ const hasPlugin = (_nxJson_plugins = nxJson.plugins) == null ? void 0 : _nxJson_plugins.some((p)=>typeof p === 'string' ? p === '@nx/vite/plugin' : p.plugin === '@nx/vite/plugin');
112
+ if (!hasPlugin) {
113
+ if (!projectAlreadyHasViteTargets.build) {
114
+ (0, _generatorutils.addOrChangeBuildTarget)(tree, schema, buildTargetName);
115
115
  }
116
- if (!projectAlreadyHasViteTargets.preview) {
117
- (0, _generatorutils.addPreviewTarget)(tree, schema, serveTargetName);
116
+ if (!schema.includeLib) {
117
+ if (!projectAlreadyHasViteTargets.serve) {
118
+ (0, _generatorutils.addOrChangeServeTarget)(tree, schema, serveTargetName);
119
+ }
120
+ if (!projectAlreadyHasViteTargets.preview) {
121
+ (0, _generatorutils.addPreviewTarget)(tree, schema, serveTargetName);
122
+ }
118
123
  }
119
124
  }
120
125
  if (projectType === 'library') {
@@ -158,7 +163,7 @@ async function viteConfigurationGenerator(tree, schema) {
158
163
  plugins: [
159
164
  'react()'
160
165
  ]
161
- }, false);
166
+ }, false, undefined);
162
167
  } else {
163
168
  (0, _generatorutils.createOrEditViteConfig)(tree, schema, false, projectAlreadyHasViteTargets);
164
169
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n formatFiles,\n GeneratorCallback,\n joinPathFragments,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\n\nimport {\n addOrChangeBuildTarget,\n addOrChangeServeTarget,\n addPreviewTarget,\n createOrEditViteConfig,\n deleteWebpackConfig,\n editTsConfig,\n findExistingTargetsInProject,\n handleUnknownExecutors,\n handleUnsupportedUserProvidedTargets,\n moveAndEditIndexHtml,\n TargetFlags,\n UserProvidedTargetName,\n} from '../../utils/generator-utils';\n\nimport initGenerator from '../init/init';\nimport vitestGenerator from '../vitest/vitest-generator';\nimport { ViteConfigurationGeneratorSchema } from './schema';\n\nexport async function viteConfigurationGenerator(\n tree: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const {\n targets,\n projectType,\n root: projectRoot,\n } = readProjectConfiguration(tree, schema.project);\n let buildTargetName = 'build';\n let serveTargetName = 'serve';\n let testTargetName = 'test';\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 const userProvidedTargetName: UserProvidedTargetName = {\n build: schema.buildTarget,\n serve: schema.serveTarget,\n test: schema.testTarget,\n };\n\n const {\n validFoundTargetName,\n projectContainsUnsupportedExecutor,\n userProvidedTargetIsUnsupported,\n alreadyHasNxViteTargets,\n } = findExistingTargetsInProject(targets, userProvidedTargetName);\n projectAlreadyHasViteTargets = alreadyHasNxViteTargets;\n /**\n * This means that we only found unsupported build targets in that project.\n * The only way that buildTarget is defined, means that it is supported.\n *\n * If the `unsupported` flag was false, it would mean that we did not find\n * a build target at all, so we can create a new one.\n *\n * So we only throw if we found a target, but it is unsupported.\n */\n if (!validFoundTargetName.build && projectContainsUnsupportedExecutor) {\n throw new Error(\n `The project ${schema.project} cannot be converted to use the @nx/vite executors.`\n );\n }\n\n if (\n alreadyHasNxViteTargets.build &&\n (alreadyHasNxViteTargets.serve || projectType === 'library') &&\n alreadyHasNxViteTargets.test\n ) {\n throw new Error(\n `The project ${schema.project} is already configured to use the @nx/vite executors.\n Please try a different project, or remove the existing targets \n and re-run this generator to reset the existing Vite Configuration.\n `\n );\n }\n\n /**\n * This means that we did not find any supported executors\n * so we don't have any valid target names.\n *\n * However, the executors that we may have found are not in the\n * list of the specifically unsupported executors either.\n *\n * So, we should warn the user about it.\n */\n\n if (\n !projectContainsUnsupportedExecutor &&\n !validFoundTargetName.build &&\n !validFoundTargetName.serve &&\n !validFoundTargetName.test\n ) {\n await handleUnknownExecutors(schema.project);\n }\n\n /**\n * There is a possibility at this stage that the user has provided\n * targets with unsupported executors.\n * We keep track here of which of the targets that the user provided\n * are unsupported.\n * We do this with the `userProvidedTargetIsUnsupported` object,\n * which contains flags for each target (whether it is supported or not).\n *\n * We also keep track of the targets that we found in the project,\n * through the findExistingTargetsInProject function, which returns\n * targets for build/serve/test that use supported executors, and\n * can be converted to use the vite executors. These are the\n * kept in the validFoundTargetName object.\n */\n await handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported,\n userProvidedTargetName,\n validFoundTargetName\n );\n\n /**\n * Once the user is at this stage, then they can go ahead and convert.\n */\n\n buildTargetName = validFoundTargetName.build ?? buildTargetName;\n serveTargetName = validFoundTargetName.serve ?? serveTargetName;\n\n if (projectType === 'application') {\n moveAndEditIndexHtml(tree, schema, buildTargetName);\n }\n\n deleteWebpackConfig(\n tree,\n projectRoot,\n targets?.[buildTargetName]?.options?.webpackConfig\n );\n\n editTsConfig(tree, schema);\n }\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n includeLib: schema.includeLib,\n compiler: schema.compiler,\n testEnvironment: schema.testEnvironment,\n rootProject: projectRoot === '.',\n });\n tasks.push(initTask);\n\n if (!projectAlreadyHasViteTargets.build) {\n addOrChangeBuildTarget(tree, schema, buildTargetName);\n }\n\n if (!schema.includeLib) {\n if (!projectAlreadyHasViteTargets.serve) {\n addOrChangeServeTarget(tree, schema, serveTargetName);\n }\n if (!projectAlreadyHasViteTargets.preview) {\n addPreviewTarget(tree, schema, serveTargetName);\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 if (!json.compilerOptions) {\n json.compilerOptions = {};\n }\n if (!json.compilerOptions.types) {\n json.compilerOptions.types = [];\n }\n if (!json.compilerOptions.types.includes('vite/client')) {\n return {\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n types: [...json.compilerOptions.types, 'vite/client'],\n },\n };\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 );\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: testTargetName,\n skipFormat: true,\n });\n tasks.push(vitestTask);\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default viteConfigurationGenerator;\n"],"names":["viteConfigurationGenerator","tree","schema","tasks","targets","projectType","root","projectRoot","readProjectConfiguration","project","buildTargetName","serveTargetName","testTargetName","includeLib","testEnvironment","projectAlreadyHasViteTargets","newProject","userProvidedTargetName","build","buildTarget","serve","serveTarget","test","testTarget","validFoundTargetName","projectContainsUnsupportedExecutor","userProvidedTargetIsUnsupported","alreadyHasNxViteTargets","findExistingTargetsInProject","Error","handleUnknownExecutors","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","deleteWebpackConfig","options","webpackConfig","editTsConfig","initTask","initGenerator","uiFramework","compiler","rootProject","push","addOrChangeBuildTarget","addOrChangeServeTarget","preview","addPreviewTarget","updateJson","joinPathFragments","json","compilerOptions","types","includes","createOrEditViteConfig","includeVitest","inSourceTests","rollupOptionsExternal","imports","plugins","vitestTask","vitestGenerator","coverageProvider","skipViteConfig","skipFormat","formatFiles","runTasksInSerial"],"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 readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\n\nimport {\n addOrChangeBuildTarget,\n addOrChangeServeTarget,\n addPreviewTarget,\n createOrEditViteConfig,\n deleteWebpackConfig,\n editTsConfig,\n findExistingTargetsInProject,\n handleUnknownExecutors,\n handleUnsupportedUserProvidedTargets,\n moveAndEditIndexHtml,\n TargetFlags,\n UserProvidedTargetName,\n} from '../../utils/generator-utils';\n\nimport initGenerator from '../init/init';\nimport vitestGenerator from '../vitest/vitest-generator';\nimport { ViteConfigurationGeneratorSchema } from './schema';\n\nexport async function viteConfigurationGenerator(\n tree: Tree,\n schema: ViteConfigurationGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const {\n targets,\n projectType,\n root: projectRoot,\n } = readProjectConfiguration(tree, schema.project);\n let buildTargetName = 'build';\n let serveTargetName = 'serve';\n let testTargetName = 'test';\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 const userProvidedTargetName: UserProvidedTargetName = {\n build: schema.buildTarget,\n serve: schema.serveTarget,\n test: schema.testTarget,\n };\n\n const {\n validFoundTargetName,\n projectContainsUnsupportedExecutor,\n userProvidedTargetIsUnsupported,\n alreadyHasNxViteTargets,\n } = findExistingTargetsInProject(targets, userProvidedTargetName);\n projectAlreadyHasViteTargets = alreadyHasNxViteTargets;\n /**\n * This means that we only found unsupported build targets in that project.\n * The only way that buildTarget is defined, means that it is supported.\n *\n * If the `unsupported` flag was false, it would mean that we did not find\n * a build target at all, so we can create a new one.\n *\n * So we only throw if we found a target, but it is unsupported.\n */\n if (!validFoundTargetName.build && projectContainsUnsupportedExecutor) {\n throw new Error(\n `The project ${schema.project} cannot be converted to use the @nx/vite executors.`\n );\n }\n\n if (\n alreadyHasNxViteTargets.build &&\n (alreadyHasNxViteTargets.serve || projectType === 'library') &&\n alreadyHasNxViteTargets.test\n ) {\n throw new Error(\n `The project ${schema.project} is already configured to use the @nx/vite executors.\n Please try a different project, or remove the existing targets \n and re-run this generator to reset the existing Vite Configuration.\n `\n );\n }\n\n /**\n * This means that we did not find any supported executors\n * so we don't have any valid target names.\n *\n * However, the executors that we may have found are not in the\n * list of the specifically unsupported executors either.\n *\n * So, we should warn the user about it.\n */\n\n if (\n !projectContainsUnsupportedExecutor &&\n !validFoundTargetName.build &&\n !validFoundTargetName.serve &&\n !validFoundTargetName.test\n ) {\n await handleUnknownExecutors(schema.project);\n }\n\n /**\n * There is a possibility at this stage that the user has provided\n * targets with unsupported executors.\n * We keep track here of which of the targets that the user provided\n * are unsupported.\n * We do this with the `userProvidedTargetIsUnsupported` object,\n * which contains flags for each target (whether it is supported or not).\n *\n * We also keep track of the targets that we found in the project,\n * through the findExistingTargetsInProject function, which returns\n * targets for build/serve/test that use supported executors, and\n * can be converted to use the vite executors. These are the\n * kept in the validFoundTargetName object.\n */\n await handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported,\n userProvidedTargetName,\n validFoundTargetName\n );\n\n /**\n * Once the user is at this stage, then they can go ahead and convert.\n */\n\n buildTargetName = validFoundTargetName.build ?? buildTargetName;\n serveTargetName = validFoundTargetName.serve ?? serveTargetName;\n\n if (projectType === 'application') {\n moveAndEditIndexHtml(tree, schema, buildTargetName);\n }\n\n deleteWebpackConfig(\n tree,\n projectRoot,\n targets?.[buildTargetName]?.options?.webpackConfig\n );\n\n editTsConfig(tree, schema);\n }\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n includeLib: schema.includeLib,\n compiler: schema.compiler,\n testEnvironment: schema.testEnvironment,\n rootProject: projectRoot === '.',\n });\n tasks.push(initTask);\n\n const nxJson = readNxJson(tree);\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 addOrChangeBuildTarget(tree, schema, buildTargetName);\n }\n\n if (!schema.includeLib) {\n if (!projectAlreadyHasViteTargets.serve) {\n addOrChangeServeTarget(tree, schema, serveTargetName);\n }\n if (!projectAlreadyHasViteTargets.preview) {\n addPreviewTarget(tree, schema, serveTargetName);\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 if (!json.compilerOptions) {\n json.compilerOptions = {};\n }\n if (!json.compilerOptions.types) {\n json.compilerOptions.types = [];\n }\n if (!json.compilerOptions.types.includes('vite/client')) {\n return {\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n types: [...json.compilerOptions.types, 'vite/client'],\n },\n };\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: testTargetName,\n skipFormat: true,\n });\n tasks.push(vitestTask);\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nexport default viteConfigurationGenerator;\n"],"names":["viteConfigurationGenerator","tree","schema","nxJson","tasks","targets","projectType","root","projectRoot","readProjectConfiguration","project","buildTargetName","serveTargetName","testTargetName","includeLib","testEnvironment","projectAlreadyHasViteTargets","newProject","userProvidedTargetName","build","buildTarget","serve","serveTarget","test","testTarget","validFoundTargetName","projectContainsUnsupportedExecutor","userProvidedTargetIsUnsupported","alreadyHasNxViteTargets","findExistingTargetsInProject","Error","handleUnknownExecutors","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","deleteWebpackConfig","options","webpackConfig","editTsConfig","initTask","initGenerator","uiFramework","compiler","rootProject","push","readNxJson","hasPlugin","plugins","some","p","plugin","addOrChangeBuildTarget","addOrChangeServeTarget","preview","addPreviewTarget","updateJson","joinPathFragments","json","compilerOptions","types","includes","createOrEditViteConfig","includeVitest","inSourceTests","rollupOptionsExternal","imports","undefined","vitestTask","vitestGenerator","coverageProvider","skipViteConfig","skipFormat","formatFiles","runTasksInSerial"],"mappings":"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"}
@@ -19,50 +19,7 @@ _export(exports, {
19
19
  const _extends = require("@swc/helpers/_/_extends");
20
20
  const _devkit = require("@nx/devkit");
21
21
  const _js = require("@nx/js");
22
- const _versions = require("../../utils/versions");
23
- function checkDependenciesInstalled(host, schema) {
24
- const packageJson = (0, _devkit.readJson)(host, 'package.json');
25
- const devDependencies = {};
26
- const dependencies = {};
27
- packageJson.dependencies = packageJson.dependencies || {};
28
- packageJson.devDependencies = packageJson.devDependencies || {};
29
- // base deps
30
- devDependencies['@nx/vite'] = _versions.nxVersion;
31
- devDependencies['vite'] = _versions.viteVersion;
32
- devDependencies['vitest'] = _versions.vitestVersion;
33
- devDependencies['@vitest/ui'] = _versions.vitestVersion;
34
- if (schema.testEnvironment === 'jsdom') {
35
- devDependencies['jsdom'] = _versions.jsdomVersion;
36
- } else if (schema.testEnvironment === 'happy-dom') {
37
- devDependencies['happy-dom'] = _versions.happyDomVersion;
38
- } else if (schema.testEnvironment === 'edge-runtime') {
39
- devDependencies['@edge-runtime/vm'] = _versions.edgeRuntimeVmVersion;
40
- } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {
41
- _devkit.logger.info(`A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`);
42
- }
43
- if (schema.uiFramework === 'react') {
44
- if (schema.compiler === 'swc') {
45
- devDependencies['@vitejs/plugin-react-swc'] = _versions.vitePluginReactSwcVersion;
46
- } else {
47
- devDependencies['@vitejs/plugin-react'] = _versions.vitePluginReactVersion;
48
- }
49
- }
50
- if (schema.includeLib) {
51
- devDependencies['vite-plugin-dts'] = _versions.vitePluginDtsVersion;
52
- }
53
- return (0, _devkit.addDependenciesToPackageJson)(host, dependencies, devDependencies);
54
- }
55
- function moveToDevDependencies(tree) {
56
- (0, _devkit.updateJson)(tree, 'package.json', (packageJson)=>{
57
- packageJson.dependencies = packageJson.dependencies || {};
58
- packageJson.devDependencies = packageJson.devDependencies || {};
59
- if (packageJson.dependencies['@nx/vite']) {
60
- packageJson.devDependencies['@nx/vite'] = packageJson.dependencies['@nx/vite'];
61
- delete packageJson.dependencies['@nx/vite'];
62
- }
63
- return packageJson;
64
- });
65
- }
22
+ const _utils = require("./lib/utils");
66
23
  function updateNxJsonSettings(tree) {
67
24
  var _nxJson_namedInputs;
68
25
  var _nxJson, _nxJson_targetDefaults, _nxvitetest, _nxJson_targetDefaults_nxvitetest, _nxJson_targetDefaults_nxvitetest1, _nxJson_targetDefaults_nxvitetest2, _nxJson_targetDefaults1, _nxvitebuild, _nxJson_targetDefaults_nxvitebuild;
@@ -102,14 +59,18 @@ function updateNxJsonSettings(tree) {
102
59
  (0, _devkit.updateNxJson)(tree, nxJson);
103
60
  }
104
61
  async function initGenerator(tree, schema) {
105
- moveToDevDependencies(tree);
62
+ (0, _utils.moveToDevDependencies)(tree);
106
63
  updateNxJsonSettings(tree);
107
64
  const tasks = [];
108
65
  tasks.push(await (0, _js.initGenerator)(tree, _extends._({}, schema, {
109
66
  skipFormat: true,
110
67
  tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json'
111
68
  })));
112
- tasks.push(checkDependenciesInstalled(tree, schema));
69
+ const addPlugins = process.env.NX_PCV3 === 'true';
70
+ if (addPlugins) {
71
+ (0, _utils.addPlugin)(tree);
72
+ }
73
+ tasks.push((0, _utils.checkDependenciesInstalled)(tree, schema));
113
74
  return (0, _devkit.runTasksInSerial)(...tasks);
114
75
  }
115
76
  const _default = initGenerator;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n logger,\n readJson,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\n\nimport { initGenerator as jsInitGenerator } from '@nx/js';\n\nimport {\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n vitestVersion,\n viteVersion,\n} from '../../utils/versions';\nimport { InitGeneratorSchema } from './schema';\n\nfunction checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema) {\n const packageJson = readJson(host, 'package.json');\n const devDependencies = {};\n const dependencies = {};\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n // base deps\n devDependencies['@nx/vite'] = nxVersion;\n devDependencies['vite'] = viteVersion;\n devDependencies['vitest'] = vitestVersion;\n devDependencies['@vitest/ui'] = vitestVersion;\n\n if (schema.testEnvironment === 'jsdom') {\n devDependencies['jsdom'] = jsdomVersion;\n } else if (schema.testEnvironment === 'happy-dom') {\n devDependencies['happy-dom'] = happyDomVersion;\n } else if (schema.testEnvironment === 'edge-runtime') {\n devDependencies['@edge-runtime/vm'] = edgeRuntimeVmVersion;\n } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {\n logger.info(\n `A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`\n );\n }\n\n if (schema.uiFramework === 'react') {\n if (schema.compiler === 'swc') {\n devDependencies['@vitejs/plugin-react-swc'] = vitePluginReactSwcVersion;\n } else {\n devDependencies['@vitejs/plugin-react'] = vitePluginReactVersion;\n }\n }\n\n if (schema.includeLib) {\n devDependencies['vite-plugin-dts'] = vitePluginDtsVersion;\n }\n\n return addDependenciesToPackageJson(host, dependencies, devDependencies);\n}\n\nfunction moveToDevDependencies(tree: Tree) {\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 }\n return packageJson;\n });\n}\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 );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\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 nxJson.targetDefaults['@nx/vite:test'].options ??= {\n passWithNoTests: true,\n reporters: ['default'],\n };\n\n nxJson.targetDefaults['@nx/vite:build'] ??= {};\n\n nxJson.targetDefaults['@nx/vite:build'].options ??= {\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n updateNxJson(tree, nxJson);\n}\n\nexport async function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n moveToDevDependencies(tree);\n updateNxJsonSettings(tree);\n const tasks = [];\n\n tasks.push(\n await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',\n })\n );\n\n tasks.push(checkDependenciesInstalled(tree, schema));\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["updateNxJsonSettings","initGenerator","checkDependenciesInstalled","host","schema","packageJson","readJson","devDependencies","dependencies","nxVersion","viteVersion","vitestVersion","testEnvironment","jsdomVersion","happyDomVersion","edgeRuntimeVmVersion","logger","info","uiFramework","compiler","vitePluginReactSwcVersion","vitePluginReactVersion","includeLib","vitePluginDtsVersion","addDependenciesToPackageJson","moveToDevDependencies","tree","updateJson","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","targetDefaults","cache","inputs","options","passWithNoTests","reporters","reportCompressedSize","commonjsOptions","transformMixedEsModules","updateNxJson","tasks","jsInitGenerator","skipFormat","tsConfigName","rootProject","runTasksInSerial"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import { readNxJson, runTasksInSerial, Tree, updateNxJson } from '@nx/devkit';\n\nimport { initGenerator as jsInitGenerator } from '@nx/js';\n\nimport { InitGeneratorSchema } from './schema';\nimport {\n addPlugin,\n checkDependenciesInstalled,\n moveToDevDependencies,\n} from './lib/utils';\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 );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\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 nxJson.targetDefaults['@nx/vite:test'].options ??= {\n passWithNoTests: true,\n reporters: ['default'],\n };\n\n nxJson.targetDefaults['@nx/vite:build'] ??= {};\n\n nxJson.targetDefaults['@nx/vite:build'].options ??= {\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n updateNxJson(tree, nxJson);\n}\n\nexport async function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n moveToDevDependencies(tree);\n updateNxJsonSettings(tree);\n const tasks = [];\n\n tasks.push(\n await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',\n })\n );\n const addPlugins = process.env.NX_PCV3 === 'true';\n if (addPlugins) {\n addPlugin(tree);\n }\n tasks.push(checkDependenciesInstalled(tree, schema));\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["updateNxJsonSettings","initGenerator","tree","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","targetDefaults","cache","inputs","options","passWithNoTests","reporters","reportCompressedSize","commonjsOptions","transformMixedEsModules","updateNxJson","schema","moveToDevDependencies","tasks","jsInitGenerator","skipFormat","tsConfigName","rootProject","addPlugins","process","env","NX_PCV3","addPlugin","checkDependenciesInstalled","runTasksInSerial"],"mappings":";;;;;;;;IAWgBA,oBAAoB;eAApBA;;IAqCMC,aAAa;eAAbA;;IAoBtB,OAA6B;eAA7B;;;;wBApEiE;oBAEhB;uBAO1C;AAEA,SAASD,qBAAqBE,IAAU;QAGnBC;QAU1BA,SACAA,wBAAsB,aACtBA,mCACAA,oCAIAA,oCAKAA,yBAAsB,cAEtBA;IA1BA,MAAMA,SAASC,IAAAA,kBAAU,EAACF;IAE1B,MAAMG,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;;IAEAF,oBAAAA,UAAAA,QAAOS,4CAAPT,QAAOS,iBAAmB,CAAC;;IAC3BT,MAAAA,yBAAAA,OAAOS,cAAc,CAAA,CAAC,cAAA,gBAAgB,gBAAtCT,sBAAqB,CAAC,YAAgB,GAAK,CAAC;;IAC5CA,WAAAA,oCAAAA,OAAOS,cAAc,CAAC,gBAAgB,EAACC,0BAAvCV,kCAAuCU,QAAU;;IACjDV,YAAAA,qCAAAA,OAAOS,cAAc,CAAC,gBAAgB,EAACE,4BAAvCX,mCAAuCW,SAAW;QAChD;QACAT,oBAAoB,gBAAgB;KACrC;;IACDF,aAAAA,qCAAAA,OAAOS,cAAc,CAAC,gBAAgB,EAACG,8BAAvCZ,mCAAuCY,UAAY;QACjDC,iBAAiB;QACjBC,WAAW;YAAC;SAAU;IACxB;;IAEAd,OAAAA,0BAAAA,OAAOS,cAAc,CAAA,CAAC,eAAA,iBAAiB,iBAAvCT,uBAAqB,CAAC,aAAiB,GAAK,CAAC;;IAE7CA,cAAAA,qCAAAA,OAAOS,cAAc,CAAC,iBAAiB,EAACG,+BAAxCZ,mCAAwCY,UAAY;QAClDG,sBAAsB;QACtBC,iBAAiB;YACfC,yBAAyB;QAC3B;IACF;IAEAC,IAAAA,oBAAY,EAACnB,MAAMC;AACrB;AAEO,eAAeF,cAAcC,IAAU,EAAEoB,MAA2B;IACzEC,IAAAA,4BAAqB,EAACrB;IACtBF,qBAAqBE;IACrB,MAAMsB,QAAQ,EAAE;IAEhBA,MAAMhB,IAAI,CACR,MAAMiB,IAAAA,iBAAe,EAACvB,MAAM,eACvBoB;QACHI,YAAY;QACZC,cAAcL,OAAOM,WAAW,GAAG,kBAAkB;;IAGzD,MAAMC,aAAaC,QAAQC,GAAG,CAACC,OAAO,KAAK;IAC3C,IAAIH,YAAY;QACdI,IAAAA,gBAAS,EAAC/B;IACZ;IACAsB,MAAMhB,IAAI,CAAC0B,IAAAA,iCAA0B,EAAChC,MAAMoB;IAC5C,OAAOa,IAAAA,wBAAgB,KAAIX;AAC7B;MAEA,WAAevB"}
@@ -0,0 +1,6 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { InitGeneratorSchema } from '../schema';
3
+ export declare function checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema): import("@nx/devkit").GeneratorCallback;
4
+ export declare function moveToDevDependencies(tree: Tree): void;
5
+ export declare function createVitestConfig(tree: Tree): void;
6
+ export declare function addPlugin(tree: Tree): void;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ checkDependenciesInstalled: function() {
10
+ return checkDependenciesInstalled;
11
+ },
12
+ moveToDevDependencies: function() {
13
+ return moveToDevDependencies;
14
+ },
15
+ createVitestConfig: function() {
16
+ return createVitestConfig;
17
+ },
18
+ addPlugin: function() {
19
+ return addPlugin;
20
+ }
21
+ });
22
+ const _devkit = require("@nx/devkit");
23
+ const _versions = require("../../../utils/versions");
24
+ function checkDependenciesInstalled(host, schema) {
25
+ const packageJson = (0, _devkit.readJson)(host, 'package.json');
26
+ const devDependencies = {};
27
+ const dependencies = {};
28
+ packageJson.dependencies = packageJson.dependencies || {};
29
+ packageJson.devDependencies = packageJson.devDependencies || {};
30
+ // base deps
31
+ devDependencies['@nx/vite'] = _versions.nxVersion;
32
+ devDependencies['vite'] = _versions.viteVersion;
33
+ devDependencies['vitest'] = _versions.vitestVersion;
34
+ devDependencies['@vitest/ui'] = _versions.vitestVersion;
35
+ if (schema.testEnvironment === 'jsdom') {
36
+ devDependencies['jsdom'] = _versions.jsdomVersion;
37
+ } else if (schema.testEnvironment === 'happy-dom') {
38
+ devDependencies['happy-dom'] = _versions.happyDomVersion;
39
+ } else if (schema.testEnvironment === 'edge-runtime') {
40
+ devDependencies['@edge-runtime/vm'] = _versions.edgeRuntimeVmVersion;
41
+ } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {
42
+ _devkit.logger.info(`A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`);
43
+ }
44
+ if (schema.uiFramework === 'react') {
45
+ if (schema.compiler === 'swc') {
46
+ devDependencies['@vitejs/plugin-react-swc'] = _versions.vitePluginReactSwcVersion;
47
+ } else {
48
+ devDependencies['@vitejs/plugin-react'] = _versions.vitePluginReactVersion;
49
+ }
50
+ }
51
+ if (schema.includeLib) {
52
+ devDependencies['vite-plugin-dts'] = _versions.vitePluginDtsVersion;
53
+ }
54
+ return (0, _devkit.addDependenciesToPackageJson)(host, dependencies, devDependencies);
55
+ }
56
+ function moveToDevDependencies(tree) {
57
+ (0, _devkit.updateJson)(tree, 'package.json', (packageJson)=>{
58
+ packageJson.dependencies = packageJson.dependencies || {};
59
+ packageJson.devDependencies = packageJson.devDependencies || {};
60
+ if (packageJson.dependencies['@nx/vite']) {
61
+ packageJson.devDependencies['@nx/vite'] = packageJson.dependencies['@nx/vite'];
62
+ delete packageJson.dependencies['@nx/vite'];
63
+ }
64
+ return packageJson;
65
+ });
66
+ }
67
+ function createVitestConfig(tree) {
68
+ var _nxJson_namedInputs;
69
+ const nxJson = (0, _devkit.readNxJson)(tree);
70
+ const productionFileSet = (_nxJson_namedInputs = nxJson.namedInputs) == null ? void 0 : _nxJson_namedInputs.production;
71
+ if (productionFileSet) {
72
+ productionFileSet.push('!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)', '!{projectRoot}/tsconfig.spec.json');
73
+ nxJson.namedInputs.production = Array.from(new Set(productionFileSet));
74
+ }
75
+ (0, _devkit.updateNxJson)(tree, nxJson);
76
+ }
77
+ function addPlugin(tree) {
78
+ var _nxJson;
79
+ const nxJson = (0, _devkit.readNxJson)(tree);
80
+ var _plugins;
81
+ (_plugins = (_nxJson = nxJson).plugins) != null ? _plugins : _nxJson.plugins = [];
82
+ for (const plugin of nxJson.plugins){
83
+ if (typeof plugin === 'string' ? plugin === '@nx/vite/plugin' : plugin.plugin === '@nx/vite/plugin') {
84
+ return;
85
+ }
86
+ }
87
+ nxJson.plugins.push({
88
+ plugin: '@nx/vite/plugin',
89
+ options: {
90
+ buildTargetName: 'build',
91
+ previewTargetName: 'preview',
92
+ testTargetName: 'test',
93
+ serveTargetName: 'serve',
94
+ serveStaticTargetName: 'serve-static'
95
+ }
96
+ });
97
+ (0, _devkit.updateNxJson)(tree, nxJson);
98
+ }
99
+
100
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/vite/src/generators/init/lib/utils.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n logger,\n readJson,\n readNxJson,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\n\nimport {\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n vitestVersion,\n viteVersion,\n} from '../../../utils/versions';\nimport { InitGeneratorSchema } from '../schema';\n\nexport function checkDependenciesInstalled(\n host: Tree,\n schema: InitGeneratorSchema\n) {\n const packageJson = readJson(host, 'package.json');\n const devDependencies = {};\n const dependencies = {};\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n // base deps\n devDependencies['@nx/vite'] = nxVersion;\n devDependencies['vite'] = viteVersion;\n devDependencies['vitest'] = vitestVersion;\n devDependencies['@vitest/ui'] = vitestVersion;\n\n if (schema.testEnvironment === 'jsdom') {\n devDependencies['jsdom'] = jsdomVersion;\n } else if (schema.testEnvironment === 'happy-dom') {\n devDependencies['happy-dom'] = happyDomVersion;\n } else if (schema.testEnvironment === 'edge-runtime') {\n devDependencies['@edge-runtime/vm'] = edgeRuntimeVmVersion;\n } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {\n logger.info(\n `A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`\n );\n }\n\n if (schema.uiFramework === 'react') {\n if (schema.compiler === 'swc') {\n devDependencies['@vitejs/plugin-react-swc'] = vitePluginReactSwcVersion;\n } else {\n devDependencies['@vitejs/plugin-react'] = vitePluginReactVersion;\n }\n }\n\n if (schema.includeLib) {\n devDependencies['vite-plugin-dts'] = vitePluginDtsVersion;\n }\n\n return addDependenciesToPackageJson(host, dependencies, devDependencies);\n}\n\nexport function moveToDevDependencies(tree: Tree) {\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 }\n return packageJson;\n });\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\nexport function addPlugin(tree: Tree) {\n const nxJson = readNxJson(tree);\n nxJson.plugins ??= [];\n\n for (const plugin of nxJson.plugins) {\n if (\n typeof plugin === 'string'\n ? plugin === '@nx/vite/plugin'\n : plugin.plugin === '@nx/vite/plugin'\n ) {\n return;\n }\n }\n\n nxJson.plugins.push({\n plugin: '@nx/vite/plugin',\n options: {\n buildTargetName: 'build',\n previewTargetName: 'preview',\n testTargetName: 'test',\n serveTargetName: 'serve',\n serveStaticTargetName: 'serve-static',\n },\n });\n updateNxJson(tree, nxJson);\n}\n"],"names":["checkDependenciesInstalled","moveToDevDependencies","createVitestConfig","addPlugin","host","schema","packageJson","readJson","devDependencies","dependencies","nxVersion","viteVersion","vitestVersion","testEnvironment","jsdomVersion","happyDomVersion","edgeRuntimeVmVersion","logger","info","uiFramework","compiler","vitePluginReactSwcVersion","vitePluginReactVersion","includeLib","vitePluginDtsVersion","addDependenciesToPackageJson","tree","updateJson","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","updateNxJson","plugins","plugin","options","buildTargetName","previewTargetName","testTargetName","serveTargetName","serveStaticTargetName"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { GeneratorCallback, Tree } from '@nx/devkit';
2
2
  import { VitestGeneratorSchema } from './schema';
3
- export declare function vitestGenerator(tree: Tree, schema: VitestGeneratorSchema): Promise<GeneratorCallback>;
3
+ export declare function vitestGenerator(tree: Tree, schema: VitestGeneratorSchema, hasPlugin?: boolean): Promise<GeneratorCallback>;
4
4
  export default vitestGenerator;
@@ -20,12 +20,19 @@ const _init = require("../init/init");
20
20
  const _versions = require("../../utils/versions");
21
21
  const _js = require("@nx/js");
22
22
  const _path = require("path");
23
- async function vitestGenerator(tree, schema) {
23
+ async function vitestGenerator(tree, schema, hasPlugin = false) {
24
+ var _nxJson_plugins;
24
25
  const tasks = [];
25
26
  const { targets, root, projectType } = (0, _devkit.readProjectConfiguration)(tree, schema.project);
26
27
  var _schema_testTarget, _ref;
27
28
  let testTarget = (_ref = (_schema_testTarget = schema.testTarget) != null ? _schema_testTarget : (0, _generatorutils.findExistingTargetsInProject)(targets).validFoundTargetName.test) != null ? _ref : 'test';
28
- (0, _generatorutils.addOrChangeTestTarget)(tree, schema, testTarget);
29
+ const nxJson = (0, _devkit.readNxJson)(tree);
30
+ const hasPluginCheck = (_nxJson_plugins = nxJson.plugins) == null ? void 0 : _nxJson_plugins.some((p)=>(typeof p === 'string' ? p === '@nx/vite/plugin' : p.plugin === '@nx/vite/plugin') || hasPlugin);
31
+ if (!hasPluginCheck) {
32
+ var _schema_testTarget1, _ref1;
33
+ const testTarget = (_ref1 = (_schema_testTarget1 = schema.testTarget) != null ? _schema_testTarget1 : (0, _generatorutils.findExistingTargetsInProject)(targets).validFoundTargetName.test) != null ? _ref1 : 'test';
34
+ (0, _generatorutils.addOrChangeTestTarget)(tree, schema, testTarget);
35
+ }
29
36
  const initTask = await (0, _init.default)(tree, {
30
37
  uiFramework: schema.uiFramework,
31
38
  testEnvironment: schema.testEnvironment
@@ -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 offsetFromRoot,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n findExistingTargetsInProject,\n} from '../../utils/generator-utils';\nimport { VitestGeneratorSchema } from './schema';\n\nimport initGenerator from '../init/init';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies } from '@nx/js';\nimport { join } from 'path';\n\nexport async function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema\n) {\n const tasks: GeneratorCallback[] = [];\n\n const { targets, root, projectType } = readProjectConfiguration(\n tree,\n schema.project\n );\n let testTarget =\n schema.testTarget ??\n findExistingTargetsInProject(targets).validFoundTargetName.test ??\n 'test';\n\n addOrChangeTestTarget(tree, schema, testTarget);\n\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n testEnvironment: schema.testEnvironment,\n });\n tasks.push(initTask);\n\n if (!schema.skipViteConfig) {\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: projectType === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [`import react from '@vitejs/plugin-react'`],\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: projectType === 'library',\n },\n true\n );\n }\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root);\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 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) {\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 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 if (options.inSourceTests) {\n const tsconfigLibPath = joinPathFragments(projectRoot, 'tsconfig.lib.json');\n const tsconfigAppPath = joinPathFragments(projectRoot, 'tsconfig.app.json');\n if (tree.exists(tsconfigLibPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n } else if (tree.exists(tsconfigAppPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.app.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n }\n\n addTsLibDependencies(tree);\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\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\nexport default vitestGenerator;\n"],"names":["vitestGenerator","tree","schema","tasks","targets","root","projectType","readProjectConfiguration","project","testTarget","findExistingTargetsInProject","validFoundTargetName","test","addOrChangeTestTarget","initTask","initGenerator","uiFramework","testEnvironment","push","skipViteConfig","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","plugins","coverageProvider","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","skipFormat","formatFiles","runTasksInSerial","options","projectRoot","exists","joinPathFragments","updateJson","json","compilerOptions","types","includes","references","some","r","path","tsconfigLibPath","tsconfigAppPath","addTsLibDependencies","generateFiles","join","__dirname","tmpl","offsetFromRoot","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"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 offsetFromRoot,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n findExistingTargetsInProject,\n} from '../../utils/generator-utils';\nimport { VitestGeneratorSchema } from './schema';\n\nimport initGenerator from '../init/init';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies } from '@nx/js';\nimport { join } from 'path';\n\nexport async function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n const tasks: GeneratorCallback[] = [];\n\n const { targets, root, projectType } = readProjectConfiguration(\n tree,\n schema.project\n );\n let testTarget =\n schema.testTarget ??\n findExistingTargetsInProject(targets).validFoundTargetName.test ??\n 'test';\n\n const nxJson = readNxJson(tree);\n const hasPluginCheck = nxJson.plugins?.some(\n (p) =>\n (typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin') || hasPlugin\n );\n if (!hasPluginCheck) {\n const testTarget =\n schema.testTarget ??\n findExistingTargetsInProject(targets).validFoundTargetName.test ??\n 'test';\n addOrChangeTestTarget(tree, schema, testTarget);\n }\n const initTask = await initGenerator(tree, {\n uiFramework: schema.uiFramework,\n testEnvironment: schema.testEnvironment,\n });\n tasks.push(initTask);\n\n if (!schema.skipViteConfig) {\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: projectType === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [`import react from '@vitejs/plugin-react'`],\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: projectType === 'library',\n },\n true\n );\n }\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root);\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 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) {\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 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 if (options.inSourceTests) {\n const tsconfigLibPath = joinPathFragments(projectRoot, 'tsconfig.lib.json');\n const tsconfigAppPath = joinPathFragments(projectRoot, 'tsconfig.app.json');\n if (tree.exists(tsconfigLibPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.lib.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n } else if (tree.exists(tsconfigAppPath)) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.app.json'),\n (json) => {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n return json;\n }\n );\n }\n\n addTsLibDependencies(tree);\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\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\nexport default vitestGenerator;\n"],"names":["vitestGenerator","tree","schema","hasPlugin","nxJson","tasks","targets","root","projectType","readProjectConfiguration","project","testTarget","findExistingTargetsInProject","validFoundTargetName","test","readNxJson","hasPluginCheck","plugins","some","p","plugin","addOrChangeTestTarget","initTask","initGenerator","uiFramework","testEnvironment","push","skipViteConfig","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","coverageProvider","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","skipFormat","formatFiles","runTasksInSerial","options","projectRoot","exists","joinPathFragments","updateJson","json","compilerOptions","types","includes","references","r","path","tsconfigLibPath","tsconfigAppPath","addTsLibDependencies","generateFiles","join","__dirname","tmpl","offsetFromRoot","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-15-3-1/update-vite-tsconfig-paths.ts"],"sourcesContent":["import {\n applyChangesToString,\n ChangeType,\n formatFiles,\n readProjectConfiguration,\n Tree,\n} from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { findNodes } from '@nx/js';\nimport { normalizeViteConfigFilePathWithTree } from '../../utils/generator-utils';\nimport ts = require('typescript');\n\nexport async function removeProjectsFromViteTsConfigPaths(tree: Tree) {\n findAllProjectsWithViteConfig(tree);\n await formatFiles(tree);\n}\n\nexport default removeProjectsFromViteTsConfigPaths;\n\nfunction findAllProjectsWithViteConfig(tree: Tree): void {\n forEachExecutorOptions(tree, '@nrwl/vite:build', (options, project) => {\n const projectConfiguration = readProjectConfiguration(tree, project);\n const viteConfig = normalizeViteConfigFilePathWithTree(\n tree,\n projectConfiguration.root,\n options?.['configFile']\n );\n if (viteConfig) {\n const appFileContent = tree.read(viteConfig, 'utf-8');\n const file = tsquery.ast(appFileContent);\n let newContents = appFileContent;\n const defineConfig = tsquery.query(\n file,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n let startOfProjects, endOfProjects;\n\n defineConfig?.[0]?.getChildren().forEach((defineConfigContentNode) => {\n // Make sure it's the one we are looking for\n // We cannot assume that it's called tsConfigPaths\n // So make sure it includes `projects` and `root`\n if (\n defineConfigContentNode.getText().includes('projects') &&\n defineConfigContentNode.getText().includes('root')\n ) {\n findNodes(defineConfigContentNode, [\n ts.SyntaxKind.PropertyAssignment,\n ]).forEach((nodePA) => {\n if (nodePA.getText().startsWith('projects')) {\n startOfProjects = nodePA.getStart();\n endOfProjects = nodePA.getEnd();\n }\n });\n }\n });\n\n if (startOfProjects && endOfProjects) {\n newContents = applyChangesToString(newContents, [\n {\n type: ChangeType.Delete,\n start: startOfProjects,\n length: endOfProjects - startOfProjects + 1,\n },\n ]);\n tree.write(viteConfig, newContents);\n }\n }\n });\n}\n"],"names":["removeProjectsFromViteTsConfigPaths","ts","tree","findAllProjectsWithViteConfig","formatFiles","forEachExecutorOptions","options","project","projectConfiguration","readProjectConfiguration","viteConfig","normalizeViteConfigFilePathWithTree","root","defineConfig","appFileContent","read","file","tsquery","ast","newContents","query","startOfProjects","endOfProjects","getChildren","forEach","defineConfigContentNode","getText","includes","findNodes","SyntaxKind","PropertyAssignment","nodePA","startsWith","getStart","getEnd","applyChangesToString","type","ChangeType","Delete","start","length","write"],"mappings":";;;;;;;;IAasBA,mCAAmC;eAAnCA;;IAKtB,OAAmD;eAAnD;;;wBAZO;sCACgC;yBACf;oBACE;gCAC0B;AACpD,MAAOC,aAAa;AAEb,eAAeD,oCAAoCE,IAAU;IAClEC,8BAA8BD;IAC9B,MAAME,IAAAA,mBAAW,EAACF;AACpB;MAEA,WAAeF;AAEf,SAASG,8BAA8BD,IAAU;IAC/CG,IAAAA,4CAAsB,EAACH,MAAM,oBAAoB,CAACI,SAASC;QACzD,MAAMC,uBAAuBC,IAAAA,gCAAwB,EAACP,MAAMK;QAC5D,MAAMG,aAAaC,IAAAA,mDAAmC,EACpDT,MACAM,qBAAqBI,IAAI,EACzBN,2BAAAA,OAAS,CAAC,aAAa;QAEzB,IAAII,YAAY;gBAUdG;YATA,MAAMC,iBAAiBZ,KAAKa,IAAI,CAACL,YAAY;YAC7C,MAAMM,OAAOC,gBAAO,CAACC,GAAG,CAACJ;YACzB,IAAIK,cAAcL;YAClB,MAAMD,eAAeI,gBAAO,CAACG,KAAK,CAChCJ,MACA;YAEF,IAAIK,iBAAiBC;YAErBT,iCAAAA,iBAAAA,YAAc,CAAC,EAAE,qBAAjBA,eAAmBU,WAAW,GAAGC,OAAO,CAAC,CAACC;gBACxC,4CAA4C;gBAC5C,kDAAkD;gBAClD,iDAAiD;gBACjD,IACEA,wBAAwBC,OAAO,GAAGC,QAAQ,CAAC,eAC3CF,wBAAwBC,OAAO,GAAGC,QAAQ,CAAC,SAC3C;oBACAC,IAAAA,aAAS,EAACH,yBAAyB;wBACjCxB,GAAG4B,UAAU,CAACC,kBAAkB;qBACjC,EAAEN,OAAO,CAAC,CAACO;wBACV,IAAIA,OAAOL,OAAO,GAAGM,UAAU,CAAC,aAAa;4BAC3CX,kBAAkBU,OAAOE,QAAQ;4BACjCX,gBAAgBS,OAAOG,MAAM;wBAC/B;oBACF;gBACF;YACF;YAEA,IAAIb,mBAAmBC,eAAe;gBACpCH,cAAcgB,IAAAA,4BAAoB,EAAChB,aAAa;oBAC9C;wBACEiB,MAAMC,kBAAU,CAACC,MAAM;wBACvBC,OAAOlB;wBACPmB,QAAQlB,gBAAgBD,kBAAkB;oBAC5C;iBACD;gBACDnB,KAAKuC,KAAK,CAAC/B,YAAYS;YACzB;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-15-3-1/update-vite-tsconfig-paths.ts"],"sourcesContent":["import {\n applyChangesToString,\n ChangeType,\n formatFiles,\n readProjectConfiguration,\n Tree,\n} from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { findNodes } from '@nx/js';\nimport { normalizeViteConfigFilePathWithTree } from '../../utils/generator-utils';\nimport ts = require('typescript');\n\nexport async function removeProjectsFromViteTsConfigPaths(tree: Tree) {\n findAllProjectsWithViteConfig(tree);\n await formatFiles(tree);\n}\n\nexport default removeProjectsFromViteTsConfigPaths;\n\nfunction findAllProjectsWithViteConfig(tree: Tree): void {\n forEachExecutorOptions(tree, '@nrwl/vite:build', (options, project) => {\n const projectConfiguration = readProjectConfiguration(tree, project);\n const viteConfig = normalizeViteConfigFilePathWithTree(\n tree,\n projectConfiguration.root,\n options?.['configFile']\n );\n if (viteConfig) {\n const appFileContent = tree.read(viteConfig, 'utf-8');\n const file = tsquery.ast(appFileContent);\n let newContents = appFileContent;\n const defineConfig = tsquery.query(\n file,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n let startOfProjects, endOfProjects;\n\n defineConfig?.[0]\n ?.getChildren()\n .forEach((defineConfigContentNode: any) => {\n // Make sure it's the one we are looking for\n // We cannot assume that it's called tsConfigPaths\n // So make sure it includes `projects` and `root`\n if (\n defineConfigContentNode.getText().includes('projects') &&\n defineConfigContentNode.getText().includes('root')\n ) {\n findNodes(defineConfigContentNode, [\n ts.SyntaxKind.PropertyAssignment,\n ]).forEach((nodePA) => {\n if (nodePA.getText().startsWith('projects')) {\n startOfProjects = nodePA.getStart();\n endOfProjects = nodePA.getEnd();\n }\n });\n }\n });\n\n if (startOfProjects && endOfProjects) {\n newContents = applyChangesToString(newContents, [\n {\n type: ChangeType.Delete,\n start: startOfProjects,\n length: endOfProjects - startOfProjects + 1,\n },\n ]);\n tree.write(viteConfig, newContents);\n }\n }\n });\n}\n"],"names":["removeProjectsFromViteTsConfigPaths","ts","tree","findAllProjectsWithViteConfig","formatFiles","forEachExecutorOptions","options","project","projectConfiguration","readProjectConfiguration","viteConfig","normalizeViteConfigFilePathWithTree","root","defineConfig","appFileContent","read","file","tsquery","ast","newContents","query","startOfProjects","endOfProjects","getChildren","forEach","defineConfigContentNode","getText","includes","findNodes","SyntaxKind","PropertyAssignment","nodePA","startsWith","getStart","getEnd","applyChangesToString","type","ChangeType","Delete","start","length","write"],"mappings":";;;;;;;;IAasBA,mCAAmC;eAAnCA;;IAKtB,OAAmD;eAAnD;;;wBAZO;sCACgC;yBACf;oBACE;gCAC0B;AACpD,MAAOC,aAAa;AAEb,eAAeD,oCAAoCE,IAAU;IAClEC,8BAA8BD;IAC9B,MAAME,IAAAA,mBAAW,EAACF;AACpB;MAEA,WAAeF;AAEf,SAASG,8BAA8BD,IAAU;IAC/CG,IAAAA,4CAAsB,EAACH,MAAM,oBAAoB,CAACI,SAASC;QACzD,MAAMC,uBAAuBC,IAAAA,gCAAwB,EAACP,MAAMK;QAC5D,MAAMG,aAAaC,IAAAA,mDAAmC,EACpDT,MACAM,qBAAqBI,IAAI,EACzBN,2BAAAA,OAAS,CAAC,aAAa;QAEzB,IAAII,YAAY;gBAUdG;YATA,MAAMC,iBAAiBZ,KAAKa,IAAI,CAACL,YAAY;YAC7C,MAAMM,OAAOC,gBAAO,CAACC,GAAG,CAACJ;YACzB,IAAIK,cAAcL;YAClB,MAAMD,eAAeI,gBAAO,CAACG,KAAK,CAChCJ,MACA;YAEF,IAAIK,iBAAiBC;YAErBT,iCAAAA,iBAAAA,YAAc,CAAC,EAAE,qBAAjBA,eACIU,WAAW,GACZC,OAAO,CAAC,CAACC;gBACR,4CAA4C;gBAC5C,kDAAkD;gBAClD,iDAAiD;gBACjD,IACEA,wBAAwBC,OAAO,GAAGC,QAAQ,CAAC,eAC3CF,wBAAwBC,OAAO,GAAGC,QAAQ,CAAC,SAC3C;oBACAC,IAAAA,aAAS,EAACH,yBAAyB;wBACjCxB,GAAG4B,UAAU,CAACC,kBAAkB;qBACjC,EAAEN,OAAO,CAAC,CAACO;wBACV,IAAIA,OAAOL,OAAO,GAAGM,UAAU,CAAC,aAAa;4BAC3CX,kBAAkBU,OAAOE,QAAQ;4BACjCX,gBAAgBS,OAAOG,MAAM;wBAC/B;oBACF;gBACF;YACF;YAEF,IAAIb,mBAAmBC,eAAe;gBACpCH,cAAcgB,IAAAA,4BAAoB,EAAChB,aAAa;oBAC9C;wBACEiB,MAAMC,kBAAU,CAACC,MAAM;wBACvBC,OAAOlB;wBACPmB,QAAQlB,gBAAgBD,kBAAkB;oBAC5C;iBACD;gBACDnB,KAAKuC,KAAK,CAAC/B,YAAYS;YACzB;QACF;IACF;AACF"}
@@ -24,7 +24,7 @@ function update(tree) {
24
24
  return;
25
25
  }
26
26
  var _oldTsConfigPathPlugin__importClause_name_text;
27
- const importName = (_oldTsConfigPathPlugin__importClause_name_text = (_oldTsConfigPathPlugin_ = oldTsConfigPathPlugin[0]) == null ? void 0 : (_oldTsConfigPathPlugin__importClause = _oldTsConfigPathPlugin_.importClause) == null ? void 0 : (_oldTsConfigPathPlugin__importClause_name = _oldTsConfigPathPlugin__importClause.name) == null ? void 0 : _oldTsConfigPathPlugin__importClause_name.text) != null ? _oldTsConfigPathPlugin__importClause_name_text : 'viteTsConfigPaths';
27
+ const importName = (_oldTsConfigPathPlugin__importClause_name_text = (_oldTsConfigPathPlugin_ = oldTsConfigPathPlugin[0]) == null ? void 0 : (_oldTsConfigPathPlugin__importClause = _oldTsConfigPathPlugin_['importClause']) == null ? void 0 : (_oldTsConfigPathPlugin__importClause_name = _oldTsConfigPathPlugin__importClause.name) == null ? void 0 : _oldTsConfigPathPlugin__importClause_name.text) != null ? _oldTsConfigPathPlugin__importClause_name_text : 'viteTsConfigPaths';
28
28
  const updatedContent = _tsquery.tsquery.replace(configContents, `PropertyAssignment:has(Identifier[name="plugins"]) CallExpression:has(Identifier[name="${importName}"])`, ()=>{
29
29
  return `nxViteTsPaths()`;
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.ts"],"sourcesContent":["import { Tree, getProjects, joinPathFragments } from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { ViteBuildExecutorOptions } from '../../executors/build/schema';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { ImportDeclaration } from 'typescript';\n\nexport default function update(tree: Tree) {\n const projects = getProjects(tree);\n forEachExecutorOptions<ViteBuildExecutorOptions>(\n tree,\n '@nx/vite:build',\n (options, projectName) => {\n const projectConfig = projects.get(projectName);\n const config =\n options.configFile || findViteConfig(tree, projectConfig.root);\n if (!config || !tree.exists(config)) {\n return;\n }\n\n const configContents = tree.read(config, 'utf-8');\n\n const oldTsConfigPathPlugin =\n tsquery.query<ImportDeclaration>(\n configContents,\n 'ImportDeclaration:has(StringLiteral[value=\"vite-tsconfig-paths\"])'\n ) ?? [];\n\n if (oldTsConfigPathPlugin.length === 0) {\n return;\n }\n\n const importName =\n oldTsConfigPathPlugin[0]?.importClause?.name?.text ??\n 'viteTsConfigPaths';\n const updatedContent = tsquery.replace(\n configContents,\n `PropertyAssignment:has(Identifier[name=\"plugins\"]) CallExpression:has(Identifier[name=\"${importName}\"])`,\n () => {\n return `nxViteTsPaths()`;\n }\n );\n\n const withImportChange = tsquery.replace(\n updatedContent,\n 'ImportDeclaration:has(StringLiteral[value=\"vite-tsconfig-paths\"])',\n () => {\n return \"import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\";\n }\n );\n\n tree.write(config, withImportChange);\n }\n );\n}\n\nfunction findViteConfig(tree: Tree, searchRoot: string) {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (tree.exists(joinPathFragments(searchRoot, `vite.config.${ext}`))) {\n return joinPathFragments(searchRoot, `vite.config.${ext}`);\n }\n }\n}\n"],"names":["update","tree","projects","getProjects","forEachExecutorOptions","options","projectName","oldTsConfigPathPlugin","projectConfig","get","config","configFile","findViteConfig","root","exists","configContents","read","tsquery","query","length","importName","importClause","name","text","updatedContent","replace","withImportChange","write","searchRoot","allowsExt","ext","joinPathFragments"],"mappings":";+BAMA;;;eAAwBA;;;wBAN6B;sCACd;yBAEf;AAGT,SAASA,OAAOC,IAAU;IACvC,MAAMC,WAAWC,IAAAA,mBAAW,EAACF;IAC7BG,IAAAA,4CAAsB,EACpBH,MACA,kBACA,CAACI,SAASC;YAqBNC,2CAAAA,sCAAAA;QApBF,MAAMC,gBAAgBN,SAASO,GAAG,CAACH;QACnC,MAAMI,SACJL,QAAQM,UAAU,IAAIC,eAAeX,MAAMO,cAAcK,IAAI;QAC/D,IAAI,CAACH,UAAU,CAACT,KAAKa,MAAM,CAACJ,SAAS;YACnC;QACF;QAEA,MAAMK,iBAAiBd,KAAKe,IAAI,CAACN,QAAQ;YAGvCO;QADF,MAAMV,wBACJU,CAAAA,iBAAAA,gBAAO,CAACC,KAAK,CACXH,gBACA,gFAFFE,iBAGK,EAAE;QAET,IAAIV,sBAAsBY,MAAM,KAAK,GAAG;YACtC;QACF;YAGEZ;QADF,MAAMa,aACJb,CAAAA,kDAAAA,0BAAAA,qBAAqB,CAAC,EAAE,sBAAxBA,uCAAAA,wBAA0Bc,YAAY,sBAAtCd,4CAAAA,qCAAwCe,IAAI,qBAA5Cf,0CAA8CgB,IAAI,YAAlDhB,iDACA;QACF,MAAMiB,iBAAiBP,gBAAO,CAACQ,OAAO,CACpCV,gBACA,CAAC,uFAAuF,EAAEK,WAAW,GAAG,CAAC,EACzG;YACE,OAAO,CAAC,eAAe,CAAC;QAC1B;QAGF,MAAMM,mBAAmBT,gBAAO,CAACQ,OAAO,CACtCD,gBACA,qEACA;YACE,OAAO;QACT;QAGFvB,KAAK0B,KAAK,CAACjB,QAAQgB;IACrB;AAEJ;AAEA,SAASd,eAAeX,IAAU,EAAE2B,UAAkB;IACpD,MAAMC,YAAY;QAAC;QAAM;QAAO;QAAM;QAAO;QAAO;KAAM;IAE1D,KAAK,MAAMC,OAAOD,UAAW;QAC3B,IAAI5B,KAAKa,MAAM,CAACiB,IAAAA,yBAAiB,EAACH,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC,IAAI;YACpE,OAAOC,IAAAA,yBAAiB,EAACH,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC;QAC3D;IACF;AACF"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.ts"],"sourcesContent":["import { Tree, getProjects, joinPathFragments } from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { ViteBuildExecutorOptions } from '../../executors/build/schema';\nimport { tsquery } from '@phenomnomnominal/tsquery';\n\nexport default function update(tree: Tree) {\n const projects = getProjects(tree);\n forEachExecutorOptions<ViteBuildExecutorOptions>(\n tree,\n '@nx/vite:build',\n (options, projectName) => {\n const projectConfig = projects.get(projectName);\n const config =\n options.configFile || findViteConfig(tree, projectConfig.root);\n if (!config || !tree.exists(config)) {\n return;\n }\n\n const configContents = tree.read(config, 'utf-8');\n\n const oldTsConfigPathPlugin =\n tsquery.query(\n configContents,\n 'ImportDeclaration:has(StringLiteral[value=\"vite-tsconfig-paths\"])'\n ) ?? [];\n\n if (oldTsConfigPathPlugin.length === 0) {\n return;\n }\n\n const importName =\n oldTsConfigPathPlugin[0]?.['importClause']?.name?.text ??\n 'viteTsConfigPaths';\n const updatedContent = tsquery.replace(\n configContents,\n `PropertyAssignment:has(Identifier[name=\"plugins\"]) CallExpression:has(Identifier[name=\"${importName}\"])`,\n () => {\n return `nxViteTsPaths()`;\n }\n );\n\n const withImportChange = tsquery.replace(\n updatedContent,\n 'ImportDeclaration:has(StringLiteral[value=\"vite-tsconfig-paths\"])',\n () => {\n return \"import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\";\n }\n );\n\n tree.write(config, withImportChange);\n }\n );\n}\n\nfunction findViteConfig(tree: Tree, searchRoot: string) {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (tree.exists(joinPathFragments(searchRoot, `vite.config.${ext}`))) {\n return joinPathFragments(searchRoot, `vite.config.${ext}`);\n }\n }\n}\n"],"names":["update","tree","projects","getProjects","forEachExecutorOptions","options","projectName","oldTsConfigPathPlugin","projectConfig","get","config","configFile","findViteConfig","root","exists","configContents","read","tsquery","query","length","importName","name","text","updatedContent","replace","withImportChange","write","searchRoot","allowsExt","ext","joinPathFragments"],"mappings":";+BAKA;;;eAAwBA;;;wBAL6B;sCACd;yBAEf;AAET,SAASA,OAAOC,IAAU;IACvC,MAAMC,WAAWC,IAAAA,mBAAW,EAACF;IAC7BG,IAAAA,4CAAsB,EACpBH,MACA,kBACA,CAACI,SAASC;YAqBNC,2CAAAA,sCAAAA;QApBF,MAAMC,gBAAgBN,SAASO,GAAG,CAACH;QACnC,MAAMI,SACJL,QAAQM,UAAU,IAAIC,eAAeX,MAAMO,cAAcK,IAAI;QAC/D,IAAI,CAACH,UAAU,CAACT,KAAKa,MAAM,CAACJ,SAAS;YACnC;QACF;QAEA,MAAMK,iBAAiBd,KAAKe,IAAI,CAACN,QAAQ;YAGvCO;QADF,MAAMV,wBACJU,CAAAA,iBAAAA,gBAAO,CAACC,KAAK,CACXH,gBACA,gFAFFE,iBAGK,EAAE;QAET,IAAIV,sBAAsBY,MAAM,KAAK,GAAG;YACtC;QACF;YAGEZ;QADF,MAAMa,aACJb,CAAAA,kDAAAA,0BAAAA,qBAAqB,CAAC,EAAE,sBAAxBA,uCAAAA,uBAA0B,CAAC,eAAe,sBAA1CA,4CAAAA,qCAA4Cc,IAAI,qBAAhDd,0CAAkDe,IAAI,YAAtDf,iDACA;QACF,MAAMgB,iBAAiBN,gBAAO,CAACO,OAAO,CACpCT,gBACA,CAAC,uFAAuF,EAAEK,WAAW,GAAG,CAAC,EACzG;YACE,OAAO,CAAC,eAAe,CAAC;QAC1B;QAGF,MAAMK,mBAAmBR,gBAAO,CAACO,OAAO,CACtCD,gBACA,qEACA;YACE,OAAO;QACT;QAGFtB,KAAKyB,KAAK,CAAChB,QAAQe;IACrB;AAEJ;AAEA,SAASb,eAAeX,IAAU,EAAE0B,UAAkB;IACpD,MAAMC,YAAY;QAAC;QAAM;QAAO;QAAM;QAAO;QAAO;KAAM;IAE1D,KAAK,MAAMC,OAAOD,UAAW;QAC3B,IAAI3B,KAAKa,MAAM,CAACgB,IAAAA,yBAAiB,EAACH,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC,IAAI;YACpE,OAAOC,IAAAA,yBAAiB,EAACH,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC;QAC3D;IACF;AACF"}
@@ -0,0 +1,10 @@
1
+ import { CreateDependencies, CreateNodes } from '@nx/devkit';
2
+ export interface VitePluginOptions {
3
+ buildTargetName?: string;
4
+ testTargetName?: string;
5
+ serveTargetName?: string;
6
+ previewTargetName?: string;
7
+ serveStaticTargetName?: string;
8
+ }
9
+ export declare const createDependencies: CreateDependencies;
10
+ export declare const createNodes: CreateNodes<VitePluginOptions>;
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ createDependencies: function() {
10
+ return createDependencies;
11
+ },
12
+ createNodes: function() {
13
+ return createNodes;
14
+ }
15
+ });
16
+ const _devkit = require("@nx/devkit");
17
+ const _path = require("path");
18
+ const _projectconfigurationutils = require("nx/src/project-graph/utils/project-configuration-utils");
19
+ const _getnamedinputs = require("@nx/devkit/src/utils/get-named-inputs");
20
+ const _vite = require("vite");
21
+ const _fs = require("fs");
22
+ const _calculatehashforcreatenodes = require("@nx/devkit/src/utils/calculate-hash-for-create-nodes");
23
+ const _cachedirectory = require("nx/src/utils/cache-directory");
24
+ const _js = require("@nx/js");
25
+ const cachePath = (0, _path.join)(_cachedirectory.projectGraphCacheDirectory, 'vite.hash');
26
+ const targetsCache = (0, _fs.existsSync)(cachePath) ? readTargetsCache() : {};
27
+ const calculatedTargets = {};
28
+ function readTargetsCache() {
29
+ return (0, _devkit.readJsonFile)(cachePath);
30
+ }
31
+ function writeTargetsToCache(targets) {
32
+ (0, _devkit.writeJsonFile)(cachePath, targets);
33
+ }
34
+ const createDependencies = ()=>{
35
+ writeTargetsToCache(calculatedTargets);
36
+ return [];
37
+ };
38
+ const createNodes = [
39
+ '**/vite.config.{js,ts}',
40
+ async (configFilePath, options, context)=>{
41
+ const projectRoot = (0, _path.dirname)(configFilePath);
42
+ // Do not create a project if package.json and project.json isn't there.
43
+ const siblingFiles = (0, _fs.readdirSync)((0, _path.join)(context.workspaceRoot, projectRoot));
44
+ if (!siblingFiles.includes('package.json') && !siblingFiles.includes('project.json')) {
45
+ return {};
46
+ }
47
+ options = normalizeOptions(options);
48
+ const hash = (0, _calculatehashforcreatenodes.calculateHashForCreateNodes)(projectRoot, options, context, [
49
+ (0, _js.getLockFileName)((0, _devkit.detectPackageManager)(context.workspaceRoot))
50
+ ]);
51
+ const targets = targetsCache[hash] ? targetsCache[hash] : await buildViteTargets(configFilePath, projectRoot, options, context);
52
+ calculatedTargets[hash] = targets;
53
+ return {
54
+ projects: {
55
+ [projectRoot]: {
56
+ root: projectRoot,
57
+ targets
58
+ }
59
+ }
60
+ };
61
+ }
62
+ ];
63
+ async function buildViteTargets(configFilePath, projectRoot, options, context) {
64
+ const viteConfig = await (0, _vite.loadConfigFromFile)({
65
+ command: 'build',
66
+ mode: 'production'
67
+ }, configFilePath);
68
+ const { buildOutputs, testOutputs } = getOutputs(projectRoot, viteConfig == null ? void 0 : viteConfig.config);
69
+ const namedInputs = (0, _getnamedinputs.getNamedInputs)(projectRoot, context);
70
+ const targets = {};
71
+ targets[options.buildTargetName] = await buildTarget(context, namedInputs, buildOutputs, options, projectRoot);
72
+ targets[options.serveTargetName] = serveTarget(projectRoot);
73
+ targets[options.previewTargetName] = previewTarget(projectRoot);
74
+ targets[options.testTargetName] = await testTarget(context, namedInputs, testOutputs, options, projectRoot);
75
+ targets[options.serveStaticTargetName] = serveStaticTarget(options);
76
+ return targets;
77
+ }
78
+ async function buildTarget(context, namedInputs, outputs, options, projectRoot) {
79
+ const targetDefaults = (0, _projectconfigurationutils.readTargetDefaultsForTarget)(options.buildTargetName, context.nxJsonConfiguration.targetDefaults);
80
+ const targetConfig = {
81
+ command: `vite build`,
82
+ options: {
83
+ cwd: (0, _devkit.joinPathFragments)(projectRoot)
84
+ }
85
+ };
86
+ if ((targetDefaults == null ? void 0 : targetDefaults.outputs) === undefined) {
87
+ targetConfig.outputs = outputs;
88
+ }
89
+ if ((targetDefaults == null ? void 0 : targetDefaults.cache) === undefined) {
90
+ targetConfig.cache = true;
91
+ }
92
+ if ((targetDefaults == null ? void 0 : targetDefaults.inputs) === undefined) {
93
+ targetConfig.inputs = [
94
+ ...'production' in namedInputs ? [
95
+ 'production',
96
+ '^production'
97
+ ] : [
98
+ 'default',
99
+ '^default'
100
+ ],
101
+ {
102
+ externalDependencies: [
103
+ 'vite'
104
+ ]
105
+ }
106
+ ];
107
+ }
108
+ return targetConfig;
109
+ }
110
+ function serveTarget(projectRoot) {
111
+ const targetConfig = {
112
+ command: `vite serve`,
113
+ options: {
114
+ cwd: (0, _devkit.joinPathFragments)(projectRoot)
115
+ }
116
+ };
117
+ return targetConfig;
118
+ }
119
+ function previewTarget(projectRoot) {
120
+ const targetConfig = {
121
+ command: `vite preview`,
122
+ options: {
123
+ cwd: (0, _devkit.joinPathFragments)(projectRoot)
124
+ }
125
+ };
126
+ return targetConfig;
127
+ }
128
+ async function testTarget(context, namedInputs, outputs, options, projectRoot) {
129
+ const targetDefaults = (0, _projectconfigurationutils.readTargetDefaultsForTarget)(options.testTargetName, context.nxJsonConfiguration.targetDefaults);
130
+ const targetConfig = {
131
+ command: `vitest run`,
132
+ options: {
133
+ cwd: (0, _devkit.joinPathFragments)(projectRoot)
134
+ }
135
+ };
136
+ if ((targetDefaults == null ? void 0 : targetDefaults.outputs) === undefined) {
137
+ targetConfig.outputs = outputs;
138
+ }
139
+ if ((targetDefaults == null ? void 0 : targetDefaults.cache) === undefined) {
140
+ targetConfig.cache = true;
141
+ }
142
+ if ((targetDefaults == null ? void 0 : targetDefaults.inputs) === undefined) {
143
+ targetConfig.inputs = [
144
+ ...'production' in namedInputs ? [
145
+ 'production',
146
+ '^production'
147
+ ] : [
148
+ 'default',
149
+ '^default'
150
+ ],
151
+ {
152
+ externalDependencies: [
153
+ 'vitest'
154
+ ]
155
+ }
156
+ ];
157
+ }
158
+ return targetConfig;
159
+ }
160
+ function serveStaticTarget(options) {
161
+ const targetConfig = {
162
+ executor: '@nx/web:file-server',
163
+ options: {
164
+ buildTarget: `${options.buildTargetName}`
165
+ }
166
+ };
167
+ return targetConfig;
168
+ }
169
+ function getOutputs(projectRoot, viteConfig) {
170
+ var _test_coverage;
171
+ const { build, test } = viteConfig;
172
+ const buildOutputs = [
173
+ '{options.outputPath}'
174
+ ];
175
+ const testOutputs = [
176
+ '{options.reportsDirectory}'
177
+ ];
178
+ function getOutput(path, projectRoot) {
179
+ if (path.startsWith('..')) {
180
+ return (0, _path.join)('{workspaceRoot}', (0, _path.join)(projectRoot, path));
181
+ } else if ((0, _path.isAbsolute)((0, _path.resolve)(path))) {
182
+ return `{workspaceRoot}/${(0, _path.relative)(_devkit.workspaceRoot, path)}`;
183
+ } else {
184
+ return (0, _path.join)('{projectRoot}', path);
185
+ }
186
+ }
187
+ if (build == null ? void 0 : build.outDir) {
188
+ buildOutputs.push(getOutput(build.outDir, projectRoot));
189
+ }
190
+ if (test == null ? void 0 : (_test_coverage = test.coverage) == null ? void 0 : _test_coverage.reportsDirectory) {
191
+ testOutputs.push(getOutput(test.coverage.reportsDirectory, projectRoot));
192
+ }
193
+ return {
194
+ buildOutputs,
195
+ testOutputs
196
+ };
197
+ }
198
+ function normalizeOptions(options) {
199
+ var _options, _options1, _options2, _options3, _options4;
200
+ options != null ? options : options = {};
201
+ var _buildTargetName;
202
+ (_buildTargetName = (_options = options).buildTargetName) != null ? _buildTargetName : _options.buildTargetName = 'build';
203
+ var _serveTargetName;
204
+ (_serveTargetName = (_options1 = options).serveTargetName) != null ? _serveTargetName : _options1.serveTargetName = 'serve';
205
+ var _previewTargetName;
206
+ (_previewTargetName = (_options2 = options).previewTargetName) != null ? _previewTargetName : _options2.previewTargetName = 'preview';
207
+ var _testTargetName;
208
+ (_testTargetName = (_options3 = options).testTargetName) != null ? _testTargetName : _options3.testTargetName = 'test';
209
+ var _serveStaticTargetName;
210
+ (_serveStaticTargetName = (_options4 = options).serveStaticTargetName) != null ? _serveStaticTargetName : _options4.serveStaticTargetName = 'serve-static';
211
+ return options;
212
+ }
213
+
214
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n TargetConfiguration,\n detectPackageManager,\n joinPathFragments,\n readJsonFile,\n workspaceRoot,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative, resolve } from 'path';\n\nimport { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { UserConfig, loadConfigFromFile } from 'vite';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { projectGraphCacheDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n}\n\nconst cachePath = join(projectGraphCacheDirectory, 'vite.hash');\nconst targetsCache = existsSync(cachePath) ? readTargetsCache() : {};\n\nconst calculatedTargets: Record<\n string,\n Record<string, TargetConfiguration>\n> = {};\n\nfunction readTargetsCache(): Record<\n string,\n Record<string, TargetConfiguration>\n> {\n return readJsonFile(cachePath);\n}\n\nfunction writeTargetsToCache(\n targets: Record<string, Record<string, TargetConfiguration>>\n) {\n writeJsonFile(cachePath, targets);\n}\n\nexport const createDependencies: CreateDependencies = () => {\n writeTargetsToCache(calculatedTargets);\n return [];\n};\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n '**/vite.config.{js,ts}',\n async (configFilePath, options, context) => {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n options = normalizeOptions(options);\n\n const hash = calculateHashForCreateNodes(projectRoot, options, context, [\n getLockFileName(detectPackageManager(context.workspaceRoot)),\n ]);\n const targets = targetsCache[hash]\n ? targetsCache[hash]\n : await buildViteTargets(configFilePath, projectRoot, options, context);\n\n calculatedTargets[hash] = targets;\n\n return {\n projects: {\n [projectRoot]: {\n root: projectRoot,\n targets,\n },\n },\n };\n },\n];\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n context: CreateNodesContext\n) {\n const viteConfig = await loadConfigFromFile(\n {\n command: 'build',\n mode: 'production',\n },\n configFilePath\n );\n\n const { buildOutputs, testOutputs } = getOutputs(\n projectRoot,\n viteConfig?.config\n );\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n targets[options.buildTargetName] = await buildTarget(\n context,\n namedInputs,\n buildOutputs,\n options,\n projectRoot\n );\n\n targets[options.serveTargetName] = serveTarget(projectRoot);\n\n targets[options.previewTargetName] = previewTarget(projectRoot);\n\n targets[options.testTargetName] = await testTarget(\n context,\n namedInputs,\n testOutputs,\n options,\n projectRoot\n );\n\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n\n return targets;\n}\n\nasync function buildTarget(\n context: CreateNodesContext,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n options: VitePluginOptions,\n projectRoot: string\n) {\n const targetDefaults = readTargetDefaultsForTarget(\n options.buildTargetName,\n context.nxJsonConfiguration.targetDefaults\n );\n\n const targetConfig: TargetConfiguration = {\n command: `vite build`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n if (targetDefaults?.outputs === undefined) {\n targetConfig.outputs = outputs;\n }\n\n if (targetDefaults?.cache === undefined) {\n targetConfig.cache = true;\n }\n\n if (targetDefaults?.inputs === undefined) {\n targetConfig.inputs = [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ];\n }\n\n return targetConfig;\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n context: CreateNodesContext,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n options: VitePluginOptions,\n projectRoot: string\n) {\n const targetDefaults = readTargetDefaultsForTarget(\n options.testTargetName,\n context.nxJsonConfiguration.targetDefaults\n );\n\n const targetConfig: TargetConfiguration = {\n command: `vitest run`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n if (targetDefaults?.outputs === undefined) {\n targetConfig.outputs = outputs;\n }\n\n if (targetDefaults?.cache === undefined) {\n targetConfig.cache = true;\n }\n\n if (targetDefaults?.inputs === undefined) {\n targetConfig.inputs = [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n ];\n }\n return targetConfig;\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n projectRoot: string,\n viteConfig: UserConfig\n): {\n buildOutputs: string[];\n testOutputs: string[];\n} {\n const { build, test } = viteConfig;\n const buildOutputs = ['{options.outputPath}'];\n const testOutputs = ['{options.reportsDirectory}'];\n\n function getOutput(path: string, projectRoot: string): string {\n if (path.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, path));\n } else if (isAbsolute(resolve(path))) {\n return `{workspaceRoot}/${relative(workspaceRoot, path)}`;\n } else {\n return join('{projectRoot}', path);\n }\n }\n\n if (build?.outDir) {\n buildOutputs.push(getOutput(build.outDir, projectRoot));\n }\n\n if (test?.coverage?.reportsDirectory) {\n testOutputs.push(getOutput(test.coverage.reportsDirectory, projectRoot));\n }\n\n return { buildOutputs, testOutputs };\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n return options;\n}\n"],"names":["createDependencies","createNodes","cachePath","join","projectGraphCacheDirectory","targetsCache","existsSync","readTargetsCache","calculatedTargets","readJsonFile","writeTargetsToCache","targets","writeJsonFile","configFilePath","options","context","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","normalizeOptions","hash","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","projects","root","viteConfig","loadConfigFromFile","command","mode","buildOutputs","testOutputs","getOutputs","config","namedInputs","getNamedInputs","buildTargetName","buildTarget","serveTargetName","serveTarget","previewTargetName","previewTarget","testTargetName","testTarget","serveStaticTargetName","serveStaticTarget","outputs","targetDefaults","readTargetDefaultsForTarget","nxJsonConfiguration","targetConfig","cwd","joinPathFragments","undefined","cache","inputs","externalDependencies","executor","test","build","getOutput","path","startsWith","isAbsolute","resolve","relative","outDir","push","coverage","reportsDirectory"],"mappings":"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"}
@@ -16,6 +16,7 @@ _export(exports, {
16
16
  const _js = require("@nx/js");
17
17
  const _path = require("path");
18
18
  const _buildablelibsutils = require("@nx/js/src/utils/buildable-libs-utils");
19
+ const _optionsutils = require("./options-utils");
19
20
  async function validateTypes(opts) {
20
21
  const result = await (0, _js.runTypeCheck)({
21
22
  workspaceRoot: opts.workspaceRoot,
@@ -29,15 +30,17 @@ async function validateTypes(opts) {
29
30
  }
30
31
  function createBuildableTsConfig(projectRoot, options, context) {
31
32
  var _options, _buildLibsFromSource;
32
- const tsConfig = (0, _path.resolve)(projectRoot, 'tsconfig.json');
33
+ const tsConfig = (0, _optionsutils.getProjectTsConfigPath)(projectRoot);
33
34
  var _;
34
35
  (_ = (_options = options)[_buildLibsFromSource = 'buildLibsFromSource']) != null ? _ : _options[_buildLibsFromSource] = true;
35
36
  if (!options['buildLibsFromSource']) {
36
37
  const { dependencies } = (0, _buildablelibsutils.calculateProjectBuildableDependencies)(context.taskGraph, context.projectGraph, context.root, context.projectName, // When using incremental building and the serve target is called
37
38
  // we need to get the deps for the 'build' target instead.
38
39
  context.targetName === 'serve' ? 'build' : context.targetName, context.configurationName);
39
- // this tsconfig is used via the vite ts paths plugin
40
- (0, _buildablelibsutils.createTmpTsConfig)(tsConfig, context.root, projectRoot, dependencies);
40
+ // This tsconfig is used via the Vite ts paths plugin.
41
+ // It can be also used by other user-defined Vite plugins (e.g. for creating type declaration files).
42
+ const tmpTsConfigPath = (0, _buildablelibsutils.createTmpTsConfig)(tsConfig, context.root, projectRoot, dependencies);
43
+ process.env.NX_TSCONFIG_PATH = tmpTsConfigPath;
41
44
  }
42
45
  }
43
46
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/executor-utils.ts"],"sourcesContent":["import { printDiagnostics, runTypeCheck } from '@nx/js';\nimport { join, resolve } from 'path';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ExecutorContext } from '@nx/devkit';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\n\nexport async function validateTypes(opts: {\n workspaceRoot: string;\n projectRoot: string;\n tsconfig: string;\n}): Promise<void> {\n const result = await runTypeCheck({\n workspaceRoot: opts.workspaceRoot,\n tsConfigPath: join(opts.workspaceRoot, opts.tsconfig),\n mode: 'noEmit',\n });\n\n await printDiagnostics(result.errors, result.warnings);\n\n if (result.errors.length > 0) {\n throw new Error('Found type errors. See above.');\n }\n}\n\nexport function createBuildableTsConfig(\n projectRoot: string,\n options: ViteBuildExecutorOptions | ViteDevServerExecutorOptions,\n context: ExecutorContext\n) {\n const tsConfig = resolve(projectRoot, 'tsconfig.json');\n options['buildLibsFromSource'] ??= true;\n\n if (!options['buildLibsFromSource']) {\n const { dependencies } = calculateProjectBuildableDependencies(\n context.taskGraph,\n context.projectGraph,\n context.root,\n context.projectName,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n context.targetName === 'serve' ? 'build' : context.targetName,\n context.configurationName\n );\n // this tsconfig is used via the vite ts paths plugin\n createTmpTsConfig(tsConfig, context.root, projectRoot, dependencies);\n }\n}\n"],"names":["validateTypes","createBuildableTsConfig","opts","result","runTypeCheck","workspaceRoot","tsConfigPath","join","tsconfig","mode","printDiagnostics","errors","warnings","length","Error","projectRoot","options","context","tsConfig","resolve","dependencies","calculateProjectBuildableDependencies","taskGraph","projectGraph","root","projectName","targetName","configurationName","createTmpTsConfig"],"mappings":";;;;;;;;IAUsBA,aAAa;eAAbA;;IAkBNC,uBAAuB;eAAvBA;;;oBA5B+B;sBACjB;oCAOvB;AAEA,eAAeD,cAAcE,IAInC;IACC,MAAMC,SAAS,MAAMC,IAAAA,gBAAY,EAAC;QAChCC,eAAeH,KAAKG,aAAa;QACjCC,cAAcC,IAAAA,UAAI,EAACL,KAAKG,aAAa,EAAEH,KAAKM,QAAQ;QACpDC,MAAM;IACR;IAEA,MAAMC,IAAAA,oBAAgB,EAACP,OAAOQ,MAAM,EAAER,OAAOS,QAAQ;IAErD,IAAIT,OAAOQ,MAAM,CAACE,MAAM,GAAG,GAAG;QAC5B,MAAM,IAAIC,MAAM;IAClB;AACF;AAEO,SAASb,wBACdc,WAAmB,EACnBC,OAAgE,EAChEC,OAAwB;QAGxBD,UAAQ;IADR,MAAME,WAAWC,IAAAA,aAAO,EAACJ,aAAa;;IACtCC,MAAAA,WAAAA,QAAO,CAAC,uBAAA,sBAAsB,gBAA9BA,QAAO,CAAC,qBAAsB,GAAK;IAEnC,IAAI,CAACA,OAAO,CAAC,sBAAsB,EAAE;QACnC,MAAM,EAAEI,YAAY,EAAE,GAAGC,IAAAA,yDAAqC,EAC5DJ,QAAQK,SAAS,EACjBL,QAAQM,YAAY,EACpBN,QAAQO,IAAI,EACZP,QAAQQ,WAAW,EACnB,iEAAiE;QACjE,0DAA0D;QAC1DR,QAAQS,UAAU,KAAK,UAAU,UAAUT,QAAQS,UAAU,EAC7DT,QAAQU,iBAAiB;QAE3B,qDAAqD;QACrDC,IAAAA,qCAAiB,EAACV,UAAUD,QAAQO,IAAI,EAAET,aAAaK;IACzD;AACF"}
1
+ {"version":3,"sources":["../../../../../packages/vite/src/utils/executor-utils.ts"],"sourcesContent":["import { printDiagnostics, runTypeCheck } from '@nx/js';\nimport { join } from 'path';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ExecutorContext } from '@nx/devkit';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\nimport { getProjectTsConfigPath } from './options-utils';\n\nexport async function validateTypes(opts: {\n workspaceRoot: string;\n projectRoot: string;\n tsconfig: string;\n}): Promise<void> {\n const result = await runTypeCheck({\n workspaceRoot: opts.workspaceRoot,\n tsConfigPath: join(opts.workspaceRoot, opts.tsconfig),\n mode: 'noEmit',\n });\n\n await printDiagnostics(result.errors, result.warnings);\n\n if (result.errors.length > 0) {\n throw new Error('Found type errors. See above.');\n }\n}\n\nexport function createBuildableTsConfig(\n projectRoot: string,\n options: ViteBuildExecutorOptions | ViteDevServerExecutorOptions,\n context: ExecutorContext\n) {\n const tsConfig = getProjectTsConfigPath(projectRoot);\n options['buildLibsFromSource'] ??= true;\n\n if (!options['buildLibsFromSource']) {\n const { dependencies } = calculateProjectBuildableDependencies(\n context.taskGraph,\n context.projectGraph,\n context.root,\n context.projectName,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n context.targetName === 'serve' ? 'build' : context.targetName,\n context.configurationName\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 const tmpTsConfigPath = createTmpTsConfig(\n tsConfig,\n context.root,\n projectRoot,\n dependencies\n );\n process.env.NX_TSCONFIG_PATH = tmpTsConfigPath;\n }\n}\n"],"names":["validateTypes","createBuildableTsConfig","opts","result","runTypeCheck","workspaceRoot","tsConfigPath","join","tsconfig","mode","printDiagnostics","errors","warnings","length","Error","projectRoot","options","context","tsConfig","getProjectTsConfigPath","dependencies","calculateProjectBuildableDependencies","taskGraph","projectGraph","root","projectName","targetName","configurationName","tmpTsConfigPath","createTmpTsConfig","process","env","NX_TSCONFIG_PATH"],"mappings":";;;;;;;;IAWsBA,aAAa;eAAbA;;IAkBNC,uBAAuB;eAAvBA;;;oBA7B+B;sBAC1B;oCAOd;8BACgC;AAEhC,eAAeD,cAAcE,IAInC;IACC,MAAMC,SAAS,MAAMC,IAAAA,gBAAY,EAAC;QAChCC,eAAeH,KAAKG,aAAa;QACjCC,cAAcC,IAAAA,UAAI,EAACL,KAAKG,aAAa,EAAEH,KAAKM,QAAQ;QACpDC,MAAM;IACR;IAEA,MAAMC,IAAAA,oBAAgB,EAACP,OAAOQ,MAAM,EAAER,OAAOS,QAAQ;IAErD,IAAIT,OAAOQ,MAAM,CAACE,MAAM,GAAG,GAAG;QAC5B,MAAM,IAAIC,MAAM;IAClB;AACF;AAEO,SAASb,wBACdc,WAAmB,EACnBC,OAAgE,EAChEC,OAAwB;QAGxBD,UAAQ;IADR,MAAME,WAAWC,IAAAA,oCAAsB,EAACJ;;IACxCC,MAAAA,WAAAA,QAAO,CAAC,uBAAA,sBAAsB,gBAA9BA,QAAO,CAAC,qBAAsB,GAAK;IAEnC,IAAI,CAACA,OAAO,CAAC,sBAAsB,EAAE;QACnC,MAAM,EAAEI,YAAY,EAAE,GAAGC,IAAAA,yDAAqC,EAC5DJ,QAAQK,SAAS,EACjBL,QAAQM,YAAY,EACpBN,QAAQO,IAAI,EACZP,QAAQQ,WAAW,EACnB,iEAAiE;QACjE,0DAA0D;QAC1DR,QAAQS,UAAU,KAAK,UAAU,UAAUT,QAAQS,UAAU,EAC7DT,QAAQU,iBAAiB;QAE3B,sDAAsD;QACtD,qGAAqG;QACrG,MAAMC,kBAAkBC,IAAAA,qCAAiB,EACvCX,UACAD,QAAQO,IAAI,EACZT,aACAK;QAEFU,QAAQC,GAAG,CAACC,gBAAgB,GAAGJ;IACjC;AACF"}