@nx/vite 16.4.0-beta.5 → 16.4.0-beta.7
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/migrations.json +46 -4
- package/package.json +5 -5
- package/src/generators/configuration/configuration.js +7 -2
- package/src/generators/configuration/configuration.js.map +1 -1
- package/src/generators/configuration/schema.d.ts +1 -0
- package/src/generators/configuration/schema.json +7 -1
- package/src/generators/init/init.js +9 -2
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/init/schema.d.ts +1 -0
- package/src/generators/init/schema.json +6 -0
- package/src/generators/vitest/schema.d.ts +1 -0
- package/src/generators/vitest/schema.json +5 -0
- package/src/generators/vitest/vitest-generator.js +2 -1
- package/src/generators/vitest/vitest-generator.js.map +1 -1
- package/src/utils/generator-utils.js +2 -1
- package/src/utils/generator-utils.js.map +1 -1
- package/src/utils/versions.d.ts +12 -13
- package/src/utils/versions.js +18 -22
- package/src/utils/versions.js.map +1 -1
package/migrations.json
CHANGED
|
@@ -26,6 +26,52 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"packageJsonUpdates": {
|
|
29
|
+
"16.4.0-beta.7": {
|
|
30
|
+
"version": "16.4.0-beta.7",
|
|
31
|
+
"packages": {
|
|
32
|
+
"vite": {
|
|
33
|
+
"version": "^4.3.9",
|
|
34
|
+
"alwaysAddToPackageJson": false
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"16.4.0-beta.4": {
|
|
39
|
+
"version": "16.4.0-beta.4",
|
|
40
|
+
"packages": {
|
|
41
|
+
"@vitejs/plugin-react": {
|
|
42
|
+
"version": "^4.0.0",
|
|
43
|
+
"alwaysAddToPackageJson": false
|
|
44
|
+
},
|
|
45
|
+
"@vitejs/plugin-react-swc": {
|
|
46
|
+
"version": "^3.3.2",
|
|
47
|
+
"alwaysAddToPackageJson": false
|
|
48
|
+
},
|
|
49
|
+
"jsdom": {
|
|
50
|
+
"version": "~22.1.0",
|
|
51
|
+
"alwaysAddToPackageJson": false
|
|
52
|
+
},
|
|
53
|
+
"vite-plugin-dts": {
|
|
54
|
+
"version": "~2.3.0",
|
|
55
|
+
"alwaysAddToPackageJson": false
|
|
56
|
+
},
|
|
57
|
+
"vitest": {
|
|
58
|
+
"version": "^0.32.0",
|
|
59
|
+
"alwaysAddToPackageJson": false
|
|
60
|
+
},
|
|
61
|
+
"@vitest/coverage-c8": {
|
|
62
|
+
"version": "^0.32.0",
|
|
63
|
+
"alwaysAddToPackageJson": false
|
|
64
|
+
},
|
|
65
|
+
"@vitest/ui": {
|
|
66
|
+
"version": "^0.32.0",
|
|
67
|
+
"alwaysAddToPackageJson": false
|
|
68
|
+
},
|
|
69
|
+
"@vitest/coverage-istanbul": {
|
|
70
|
+
"version": "^0.32.0",
|
|
71
|
+
"alwaysAddToPackageJson": false
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
29
75
|
"16.1.0-beta.0": {
|
|
30
76
|
"version": "16.1.0-beta.0",
|
|
31
77
|
"packages": {
|
|
@@ -75,10 +121,6 @@
|
|
|
75
121
|
"version": "^4.0.2",
|
|
76
122
|
"alwaysAddToPackageJson": false
|
|
77
123
|
},
|
|
78
|
-
"vite-plugin-eslint": {
|
|
79
|
-
"version": "^1.8.1",
|
|
80
|
-
"alwaysAddToPackageJson": false
|
|
81
|
-
},
|
|
82
124
|
"vitest": {
|
|
83
125
|
"version": "^0.25.8",
|
|
84
126
|
"alwaysAddToPackageJson": false
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "16.4.0-beta.
|
|
3
|
+
"version": "16.4.0-beta.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"migrations": "./migrations.json"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@nrwl/vite": "16.4.0-beta.
|
|
33
|
-
"@nx/devkit": "16.4.0-beta.
|
|
34
|
-
"@nx/js": "16.4.0-beta.
|
|
32
|
+
"@nrwl/vite": "16.4.0-beta.7",
|
|
33
|
+
"@nx/devkit": "16.4.0-beta.7",
|
|
34
|
+
"@nx/js": "16.4.0-beta.7",
|
|
35
35
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
36
36
|
"@swc/helpers": "~0.5.0",
|
|
37
37
|
"dotenv": "~10.0.0",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"./src/executors/*.impl": "./src/executors/*.impl.js",
|
|
60
60
|
"./src/executors/*/compat": "./src/executors/*/compat.js"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "847d3a45b61cd2c267acb66c4165a5bb875aff4f"
|
|
63
63
|
}
|
|
@@ -21,7 +21,9 @@ const _generatorutils = require("../../utils/generator-utils");
|
|
|
21
21
|
const _init = require("../init/init");
|
|
22
22
|
const _vitestgenerator = require("../vitest/vitest-generator");
|
|
23
23
|
async function viteConfigurationGenerator(tree, schema) {
|
|
24
|
-
var _schema
|
|
24
|
+
var _schema, // Setting default to jsdom since it is the most common use case (React, Web).
|
|
25
|
+
// The @nx/js:lib generator specifically sets this to node to be more generic.
|
|
26
|
+
_schema1;
|
|
25
27
|
const tasks = [];
|
|
26
28
|
const { targets , projectType , root } = (0, _devkit.readProjectConfiguration)(tree, schema.project);
|
|
27
29
|
let buildTargetName = 'build';
|
|
@@ -29,6 +31,8 @@ async function viteConfigurationGenerator(tree, schema) {
|
|
|
29
31
|
let testTargetName = 'test';
|
|
30
32
|
var _includeLib;
|
|
31
33
|
(_includeLib = (_schema = schema).includeLib) != null ? _includeLib : _schema.includeLib = projectType === 'library';
|
|
34
|
+
var _testEnvironment;
|
|
35
|
+
(_testEnvironment = (_schema1 = schema).testEnvironment) != null ? _testEnvironment : _schema1.testEnvironment = 'jsdom';
|
|
32
36
|
/**
|
|
33
37
|
* This is for when we are converting an existing project
|
|
34
38
|
* to use the vite executors.
|
|
@@ -99,7 +103,8 @@ async function viteConfigurationGenerator(tree, schema) {
|
|
|
99
103
|
const initTask = await (0, _init.default)(tree, {
|
|
100
104
|
uiFramework: schema.uiFramework,
|
|
101
105
|
includeLib: schema.includeLib,
|
|
102
|
-
compiler: schema.compiler
|
|
106
|
+
compiler: schema.compiler,
|
|
107
|
+
testEnvironment: schema.testEnvironment
|
|
103
108
|
});
|
|
104
109
|
tasks.push(initTask);
|
|
105
110
|
if (!projectAlreadyHasViteTargets.build) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n convertNxGenerator,\n formatFiles,\n GeneratorCallback,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\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 { targets, projectType, root } = readProjectConfiguration(\n tree,\n schema.project\n );\n let buildTargetName = 'build';\n let serveTargetName = 'serve';\n let testTargetName = 'test';\n\n schema.includeLib ??= projectType === 'library';\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 root,\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 });\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 createOrEditViteConfig(tree, schema, false, projectAlreadyHasViteTargets);\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: 'c8',\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;\nexport const configurationSchematic = convertNxGenerator(\n viteConfigurationGenerator\n);\n"],"names":["viteConfigurationGenerator","configurationSchematic","tree","schema","tasks","targets","projectType","root","readProjectConfiguration","project","buildTargetName","serveTargetName","testTargetName","includeLib","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","push","addOrChangeBuildTarget","addOrChangeServeTarget","preview","addPreviewTarget","createOrEditViteConfig","includeVitest","vitestTask","vitestGenerator","inSourceTests","coverageProvider","skipViteConfig","skipFormat","formatFiles","runTasksInSerial","convertNxGenerator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/generators/configuration/configuration.ts"],"sourcesContent":["import {\n convertNxGenerator,\n formatFiles,\n GeneratorCallback,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\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 { targets, projectType, root } = readProjectConfiguration(\n tree,\n schema.project\n );\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 root,\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 });\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 createOrEditViteConfig(tree, schema, false, projectAlreadyHasViteTargets);\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: 'c8',\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;\nexport const configurationSchematic = convertNxGenerator(\n viteConfigurationGenerator\n);\n"],"names":["viteConfigurationGenerator","configurationSchematic","tree","schema","tasks","targets","projectType","root","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","push","addOrChangeBuildTarget","addOrChangeServeTarget","preview","addPreviewTarget","createOrEditViteConfig","includeVitest","vitestTask","vitestGenerator","inSourceTests","coverageProvider","skipViteConfig","skipFormat","formatFiles","runTasksInSerial","convertNxGenerator"],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"serveTarget": {
|
|
52
52
|
"type": "string",
|
|
53
|
-
"description": "The serve target of the project to be transformed to use the @nx/vite:dev-server and @
|
|
53
|
+
"description": "The serve target of the project to be transformed to use the @nx/vite:dev-server and @nx/vite:preview-server executors."
|
|
54
54
|
},
|
|
55
55
|
"testTarget": {
|
|
56
56
|
"type": "string",
|
|
@@ -61,6 +61,12 @@
|
|
|
61
61
|
"type": "boolean",
|
|
62
62
|
"default": false,
|
|
63
63
|
"x-priority": "internal"
|
|
64
|
+
},
|
|
65
|
+
"testEnvironment": {
|
|
66
|
+
"description": "The vitest environment to use. See https://vitest.dev/config/#environment.",
|
|
67
|
+
"type": "string",
|
|
68
|
+
"enum": ["node", "jsdom", "happy-dom", "edge-runtime"],
|
|
69
|
+
"default": "jsdom"
|
|
64
70
|
}
|
|
65
71
|
},
|
|
66
72
|
"examplesFile": "../../../docs/configuration-examples.md"
|
|
@@ -32,11 +32,18 @@ function checkDependenciesInstalled(host, schema) {
|
|
|
32
32
|
// base deps
|
|
33
33
|
devDependencies['@nx/vite'] = _versions.nxVersion;
|
|
34
34
|
devDependencies['vite'] = _versions.viteVersion;
|
|
35
|
-
devDependencies['vite-plugin-eslint'] = _versions.vitePluginEslintVersion;
|
|
36
35
|
devDependencies['vite-tsconfig-paths'] = _versions.viteTsConfigPathsVersion;
|
|
37
36
|
devDependencies['vitest'] = _versions.vitestVersion;
|
|
38
37
|
devDependencies['@vitest/ui'] = _versions.vitestUiVersion;
|
|
39
|
-
|
|
38
|
+
if (schema.testEnvironment === 'jsdom') {
|
|
39
|
+
devDependencies['jsdom'] = _versions.jsdomVersion;
|
|
40
|
+
} else if (schema.testEnvironment === 'happy-dom') {
|
|
41
|
+
devDependencies['happy-dom'] = _versions.happyDomVersion;
|
|
42
|
+
} else if (schema.testEnvironment === 'edge-runtime') {
|
|
43
|
+
devDependencies['@edge-runtime/vm'] = _versions.edgeRuntimeVmVersion;
|
|
44
|
+
} else if (schema.testEnvironment !== 'node') {
|
|
45
|
+
_devkit.logger.info(`A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`);
|
|
46
|
+
}
|
|
40
47
|
if (schema.uiFramework === 'react') {
|
|
41
48
|
if (schema.compiler === 'swc') {
|
|
42
49
|
devDependencies['@vitejs/plugin-react-swc'] = _versions.vitePluginReactSwcVersion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n convertNxGenerator,\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 jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n convertNxGenerator,\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 jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactVersion,\n vitePluginReactSwcVersion,\n vitestUiVersion,\n vitestVersion,\n viteTsConfigPathsVersion,\n viteVersion,\n happyDomVersion,\n edgeRuntimeVmVersion,\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['vite-tsconfig-paths'] = viteTsConfigPathsVersion;\n devDependencies['vitest'] = vitestVersion;\n devDependencies['@vitest/ui'] = vitestUiVersion;\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') {\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 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 nxJson.targetDefaults ??= {};\n nxJson.targetDefaults.test ??= {};\n nxJson.targetDefaults.test.inputs ??= [\n 'default',\n productionFileSet ? '^production' : '^default',\n ];\n\n updateNxJson(tree, nxJson);\n}\n\nexport async function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n moveToDevDependencies(tree);\n createVitestConfig(tree);\n const tasks = [];\n\n tasks.push(\n await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n })\n );\n\n tasks.push(checkDependenciesInstalled(tree, schema));\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\nexport const initSchematic = convertNxGenerator(initGenerator);\n"],"names":["createVitestConfig","initGenerator","initSchematic","checkDependenciesInstalled","host","schema","packageJson","readJson","devDependencies","dependencies","nxVersion","viteVersion","viteTsConfigPathsVersion","vitestVersion","vitestUiVersion","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","test","inputs","updateNxJson","tasks","jsInitGenerator","skipFormat","runTasksInSerial","convertNxGenerator"],"mappings":"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"}
|
|
@@ -22,6 +22,12 @@
|
|
|
22
22
|
"type": "boolean",
|
|
23
23
|
"description": "Add dependencies needed to build libraries.",
|
|
24
24
|
"default": false
|
|
25
|
+
},
|
|
26
|
+
"testEnvironment": {
|
|
27
|
+
"description": "The vitest environment to use. See https://vitest.dev/config/#environment.",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"enum": ["node", "jsdom", "happy-dom", "edge-runtime"],
|
|
30
|
+
"default": "jsdom"
|
|
25
31
|
}
|
|
26
32
|
},
|
|
27
33
|
"examplesFile": "../../../docs/init-examples.md"
|
|
@@ -43,6 +43,11 @@
|
|
|
43
43
|
"type": "boolean",
|
|
44
44
|
"default": false,
|
|
45
45
|
"x-priority": "internal"
|
|
46
|
+
},
|
|
47
|
+
"testEnvironment": {
|
|
48
|
+
"description": "The vitest environment to use. See https://vitest.dev/config/#environment.",
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["node", "jsdom", "happy-dom", "edge-runtime"]
|
|
46
51
|
}
|
|
47
52
|
},
|
|
48
53
|
"required": ["project"]
|
|
@@ -29,7 +29,8 @@ async function vitestGenerator(tree, schema) {
|
|
|
29
29
|
let testTarget = (_ref = (_schema_testTarget = schema.testTarget) != null ? _schema_testTarget : (0, _generatorutils.findExistingTargetsInProject)(targets).validFoundTargetName.test) != null ? _ref : 'test';
|
|
30
30
|
(0, _generatorutils.addOrChangeTestTarget)(tree, schema, testTarget);
|
|
31
31
|
const initTask = await (0, _init.default)(tree, {
|
|
32
|
-
uiFramework: schema.uiFramework
|
|
32
|
+
uiFramework: schema.uiFramework,
|
|
33
|
+
testEnvironment: schema.testEnvironment
|
|
33
34
|
});
|
|
34
35
|
tasks.push(initTask);
|
|
35
36
|
if (!schema.skipViteConfig) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n convertNxGenerator,\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 vitestCoverageC8Version,\n vitestCoverageIstanbulVersion,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies } from '@nx/js';\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 });\n tasks.push(initTask);\n\n if (!schema.skipViteConfig) {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: projectType === 'library',\n },\n true\n );\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root);\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n schema.coverageProvider === 'istanbul'\n ? {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n }\n : {\n '@vitest/coverage-c8': vitestCoverageC8Version,\n }\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 updateJson(tree, joinPathFragments(projectRoot, 'tsconfig.json'), (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\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 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, joinPathFragments(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\n });\n}\n\nexport default vitestGenerator;\nexport const vitestSchematic = convertNxGenerator(vitestGenerator);\n"],"names":["vitestGenerator","vitestSchematic","tree","schema","tasks","targets","root","projectType","readProjectConfiguration","project","testTarget","findExistingTargetsInProject","validFoundTargetName","test","addOrChangeTestTarget","initTask","initGenerator","uiFramework","push","skipViteConfig","createOrEditViteConfig","includeVitest","includeLib","createFiles","updateTsConfig","installCoverageProviderTask","addDependenciesToPackageJson","coverageProvider","vitestCoverageIstanbulVersion","vitestCoverageC8Version","skipFormat","formatFiles","runTasksInSerial","options","projectRoot","updateJson","joinPathFragments","json","references","some","r","path","compilerOptions","types","includes","inSourceTests","tsconfigLibPath","tsconfigAppPath","exists","addTsLibDependencies","generateFiles","__dirname","tmpl","offsetFromRoot","convertNxGenerator"],"mappings":";;;;;;;;IA4BsBA,eAAe;eAAfA;;
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n convertNxGenerator,\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 vitestCoverageC8Version,\n vitestCoverageIstanbulVersion,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies } from '@nx/js';\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 createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: projectType === 'library',\n },\n true\n );\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root);\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n schema.coverageProvider === 'istanbul'\n ? {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n }\n : {\n '@vitest/coverage-c8': vitestCoverageC8Version,\n }\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 updateJson(tree, joinPathFragments(projectRoot, 'tsconfig.json'), (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\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 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, joinPathFragments(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\n });\n}\n\nexport default vitestGenerator;\nexport const vitestSchematic = convertNxGenerator(vitestGenerator);\n"],"names":["vitestGenerator","vitestSchematic","tree","schema","tasks","targets","root","projectType","readProjectConfiguration","project","testTarget","findExistingTargetsInProject","validFoundTargetName","test","addOrChangeTestTarget","initTask","initGenerator","uiFramework","testEnvironment","push","skipViteConfig","createOrEditViteConfig","includeVitest","includeLib","createFiles","updateTsConfig","installCoverageProviderTask","addDependenciesToPackageJson","coverageProvider","vitestCoverageIstanbulVersion","vitestCoverageC8Version","skipFormat","formatFiles","runTasksInSerial","options","projectRoot","updateJson","joinPathFragments","json","references","some","r","path","compilerOptions","types","includes","inSourceTests","tsconfigLibPath","tsconfigAppPath","exists","addTsLibDependencies","generateFiles","__dirname","tmpl","offsetFromRoot","convertNxGenerator"],"mappings":"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"}
|
|
@@ -423,12 +423,13 @@ function createOrEditViteConfig(tree, options, onlyVitest, projectAlreadyHasVite
|
|
|
423
423
|
}),` : '';
|
|
424
424
|
const dtsImportLine = onlyVitest ? '' : options.includeLib ? `import dts from 'vite-plugin-dts';\nimport * as path from 'path';` : '';
|
|
425
425
|
let viteConfigContent = '';
|
|
426
|
+
var _options_testEnvironment;
|
|
426
427
|
const testOption = options.includeVitest ? `test: {
|
|
427
428
|
globals: true,
|
|
428
429
|
cache: {
|
|
429
430
|
dir: '${(0, _devkit.offsetFromRoot)(projectConfig.root)}node_modules/.vitest'
|
|
430
431
|
},
|
|
431
|
-
environment: '
|
|
432
|
+
environment: '${(_options_testEnvironment = options.testEnvironment) != null ? _options_testEnvironment : 'node'}',
|
|
432
433
|
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
|
|
433
434
|
${options.inSourceTests ? `includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}']` : ''}
|
|
434
435
|
},` : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/utils/generator-utils.ts"],"sourcesContent":["import {\n joinPathFragments,\n logger,\n offsetFromRoot,\n readJson,\n readProjectConfiguration,\n TargetConfiguration,\n Tree,\n updateProjectConfiguration,\n writeJson,\n} from '@nx/devkit';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport { VitestExecutorOptions } from '../executors/test/schema';\nimport { ViteConfigurationGeneratorSchema } from '../generators/configuration/schema';\nimport { ensureViteConfigIsCorrect } from './vite-config-edit-utils';\n\nexport type Target = 'build' | 'serve' | 'test' | 'preview';\nexport type TargetFlags = Partial<Record<Target, boolean>>;\nexport type UserProvidedTargetName = Partial<Record<Target, string>>;\nexport type ValidFoundTargetName = Partial<Record<Target, string>>;\n\nexport function findExistingTargetsInProject(\n targets: {\n [targetName: string]: TargetConfiguration;\n },\n userProvidedTargets?: UserProvidedTargetName\n): {\n validFoundTargetName: ValidFoundTargetName;\n projectContainsUnsupportedExecutor: boolean;\n userProvidedTargetIsUnsupported: TargetFlags;\n alreadyHasNxViteTargets: TargetFlags;\n} {\n const output: ReturnType<typeof findExistingTargetsInProject> = {\n validFoundTargetName: {},\n projectContainsUnsupportedExecutor: false,\n userProvidedTargetIsUnsupported: {},\n alreadyHasNxViteTargets: {},\n };\n\n const supportedExecutors = {\n build: [\n '@nxext/vite:build',\n '@nx/js:babel',\n '@nx/js:swc',\n '@nx/webpack:webpack',\n '@nx/rollup:rollup',\n '@nrwl/js:babel',\n '@nrwl/js:swc',\n '@nrwl/webpack:webpack',\n '@nrwl/rollup:rollup',\n '@nrwl/web:rollup',\n ],\n serve: [\n '@nxext/vite:dev',\n '@nx/webpack:dev-server',\n '@nrwl/webpack:dev-server',\n ],\n test: ['@nx/jest:jest', '@nrwl/jest:jest', '@nxext/vitest:vitest'],\n };\n\n const unsupportedExecutors = [\n '@nx/angular:ng-packagr-lite',\n '@nx/angular:package',\n '@nx/angular:webpack-browser',\n '@nx/esbuild:esbuild',\n '@nx/react-native:run-ios',\n '@nx/react-native:start',\n '@nx/react-native:run-android',\n '@nx/react-native:bundle',\n '@nx/react-native:build-android',\n '@nx/react-native:bundle',\n '@nx/next:build',\n '@nx/next:server',\n '@nx/js:tsc',\n '@nrwl/angular:ng-packagr-lite',\n '@nrwl/angular:package',\n '@nrwl/angular:webpack-browser',\n '@nrwl/esbuild:esbuild',\n '@nrwl/react-native:run-ios',\n '@nrwl/react-native:start',\n '@nrwl/react-native:run-android',\n '@nrwl/react-native:bundle',\n '@nrwl/react-native:build-android',\n '@nrwl/react-native:bundle',\n '@nrwl/next:build',\n '@nrwl/next:server',\n '@nrwl/js:tsc',\n '@angular-devkit/build-angular:browser',\n '@angular-devkit/build-angular:dev-server',\n ];\n\n // First, we check if the user has provided a target\n // If they have, we check if the executor the target is using is supported\n // If it's not supported, then we set the unsupported flag to true for that target\n\n function checkUserProvidedTarget(target: Target) {\n if (userProvidedTargets?.[target]) {\n if (\n supportedExecutors[target].includes(\n targets[userProvidedTargets[target]]?.executor\n )\n ) {\n output.validFoundTargetName[target] = userProvidedTargets[target];\n } else {\n output.userProvidedTargetIsUnsupported[target] = true;\n }\n }\n }\n\n checkUserProvidedTarget('build');\n checkUserProvidedTarget('serve');\n checkUserProvidedTarget('test');\n\n // Returns early when we have a build, serve, and test targets.\n if (\n output.validFoundTargetName.build &&\n output.validFoundTargetName.serve &&\n output.validFoundTargetName.test\n ) {\n return output;\n }\n\n // We try to find the targets that are using the supported executors\n // for build, serve and test, since these are the ones we will be converting\n for (const target in targets) {\n const executorName = targets[target].executor;\n\n const hasViteTargets = output.alreadyHasNxViteTargets;\n hasViteTargets.build ||=\n executorName === '@nx/vite:build' || executorName === '@nrwl/vite:build';\n hasViteTargets.serve ||=\n executorName === '@nx/vite:dev-server' ||\n executorName === '@nrwl/vite:dev-server';\n hasViteTargets.test ||=\n executorName === '@nx/vite:test' || executorName === '@nrwl/vite:test';\n hasViteTargets.preview ||=\n executorName === '@nx/vite:preview-server' ||\n executorName === '@nrwl/vite:preview-server';\n\n const foundTargets = output.validFoundTargetName;\n if (\n !foundTargets.build &&\n supportedExecutors.build.includes(executorName)\n ) {\n foundTargets.build = target;\n }\n if (\n !foundTargets.serve &&\n supportedExecutors.serve.includes(executorName)\n ) {\n foundTargets.serve = target;\n }\n if (!foundTargets.test && supportedExecutors.test.includes(executorName)) {\n foundTargets.test = target;\n }\n\n output.projectContainsUnsupportedExecutor ||=\n unsupportedExecutors.includes(executorName);\n }\n\n return output;\n}\n\nexport function addOrChangeTestTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const coveragePath = joinPathFragments(\n 'coverage',\n project.root === '.' ? options.project : project.root\n );\n const testOptions: VitestExecutorOptions = {\n passWithNoTests: true,\n // vitest runs in the project root so we have to offset to the workspaceRoot\n reportsDirectory: joinPathFragments(\n offsetFromRoot(project.root),\n coveragePath\n ),\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n project.targets[target].executor = '@nx/vite:test';\n delete project.targets[target].options?.jestConfig;\n } else {\n project.targets[target] = {\n executor: '@nx/vite:test',\n outputs: [coveragePath],\n options: testOptions,\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addOrChangeBuildTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n const buildOptions: ViteBuildExecutorOptions = {\n outputPath: joinPathFragments(\n 'dist',\n project.root != '.' ? project.root : options.project\n ),\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n buildOptions.fileReplacements =\n project.targets[target].options?.fileReplacements;\n\n if (project.targets[target].executor === '@nxext/vite:build') {\n buildOptions.base = project.targets[target].options?.baseHref;\n buildOptions.sourcemap = project.targets[target].options?.sourcemaps;\n }\n project.targets[target].options = { ...buildOptions };\n project.targets[target].executor = '@nx/vite:build';\n } else {\n project.targets[target] = {\n executor: '@nx/vite:build',\n outputs: ['{options.outputPath}'],\n defaultConfiguration: 'production',\n options: buildOptions,\n configurations: {\n development: {\n mode: 'development',\n },\n production: {\n mode: 'production',\n },\n },\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addOrChangeServeTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n const serveTarget = project.targets[target];\n const serveOptions: ViteDevServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n https: project.targets[target].options?.https,\n hmr: project.targets[target].options?.hmr,\n open: project.targets[target].options?.open,\n };\n if (serveTarget.executor === '@nxext/vite:dev') {\n serveOptions.proxyConfig = project.targets[target].options.proxyConfig;\n }\n serveTarget.executor = '@nx/vite:dev-server';\n serveTarget.options = serveOptions;\n } else {\n project.targets[target] = {\n executor: '@nx/vite:dev-server',\n defaultConfiguration: 'development',\n options: {\n buildTarget: `${options.project}:build`,\n },\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n hmr: true,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n hmr: false,\n },\n },\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\n/**\n * Adds a target for the preview server.\n *\n * @param tree\n * @param options\n * @param serveTarget An existing serve target.\n * @param previewTarget The preview target to create.\n */\nexport function addPreviewTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n serveTarget: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const previewOptions: VitePreviewServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n };\n\n project.targets ??= {};\n\n // Update the options from the passed serve target.\n if (project.targets[serveTarget]) {\n const target = project.targets[serveTarget];\n if (target.executor === '@nxext/vite:dev') {\n previewOptions.proxyConfig = target.options.proxyConfig;\n }\n previewOptions.https = target.options?.https;\n previewOptions.open = target.options?.open;\n }\n\n // Adds a preview target.\n project.targets.preview = {\n executor: '@nx/vite:preview-server',\n defaultConfiguration: 'development',\n options: previewOptions,\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function editTsConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n const config = readJson(tree, `${projectConfig.root}/tsconfig.json`);\n\n const commonCompilerOptions = {\n target: 'ESNext',\n useDefineForClassFields: true,\n module: 'ESNext',\n strict: true,\n moduleResolution: 'Node',\n resolveJsonModule: true,\n isolatedModules: true,\n types: ['vite/client'],\n noEmit: true,\n };\n\n switch (options.uiFramework) {\n case 'react':\n config.compilerOptions = {\n ...commonCompilerOptions,\n lib: ['DOM', 'DOM.Iterable', 'ESNext'],\n allowJs: false,\n esModuleInterop: false,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react-jsx',\n };\n config.include = [...config.include, 'src'];\n break;\n case 'none':\n config.compilerOptions = {\n ...commonCompilerOptions,\n lib: ['ESNext', 'DOM'],\n skipLibCheck: true,\n esModuleInterop: true,\n strict: true,\n noUnusedLocals: true,\n noUnusedParameters: true,\n noImplicitReturns: true,\n };\n config.include = [...config.include, 'src'];\n break;\n default:\n break;\n }\n\n writeJson(tree, `${projectConfig.root}/tsconfig.json`, config);\n}\n\nexport function deleteWebpackConfig(\n tree: Tree,\n projectRoot: string,\n webpackConfigFilePath?: string\n) {\n const webpackConfigPath =\n webpackConfigFilePath && tree.exists(webpackConfigFilePath)\n ? webpackConfigFilePath\n : tree.exists(`${projectRoot}/webpack.config.js`)\n ? `${projectRoot}/webpack.config.js`\n : tree.exists(`${projectRoot}/webpack.config.ts`)\n ? `${projectRoot}/webpack.config.ts`\n : null;\n if (webpackConfigPath) {\n tree.delete(webpackConfigPath);\n }\n}\n\nexport function moveAndEditIndexHtml(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n buildTarget: string\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let indexHtmlPath =\n projectConfig.targets?.[buildTarget]?.options?.index ??\n `${projectConfig.root}/src/index.html`;\n let mainPath =\n projectConfig.targets?.[buildTarget]?.options?.main ??\n `${projectConfig.root}/src/main.ts${\n options.uiFramework === 'react' ? 'x' : ''\n }`;\n\n if (projectConfig.root !== '.') {\n mainPath = mainPath.replace(projectConfig.root, '');\n }\n\n if (\n !tree.exists(indexHtmlPath) &&\n tree.exists(`${projectConfig.root}/index.html`)\n ) {\n indexHtmlPath = `${projectConfig.root}/index.html`;\n }\n\n if (tree.exists(indexHtmlPath)) {\n const indexHtmlContent = tree.read(indexHtmlPath, 'utf8');\n if (\n !indexHtmlContent.includes(\n `<script type=\"module\" src=\"${mainPath}\"></script>`\n )\n ) {\n tree.write(\n `${projectConfig.root}/index.html`,\n indexHtmlContent.replace(\n '</body>',\n `<script type=\"module\" src=\"${mainPath}\"></script>\n </body>`\n )\n );\n\n if (tree.exists(`${projectConfig.root}/src/index.html`)) {\n tree.delete(`${projectConfig.root}/src/index.html`);\n }\n }\n } else {\n tree.write(\n `${projectConfig.root}/index.html`,\n `<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <link rel=\"icon\" href=\"/favicon.ico\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Vite</title>\n </head>\n <body>\n <div id=\"root\"></div>\n <script type=\"module\" src=\"${mainPath}\"></script>\n </body>\n </html>`\n );\n }\n}\n\nexport function createOrEditViteConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n onlyVitest: boolean,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n const viteConfigPath = `${projectConfig.root}/vite.config.ts`;\n\n const buildOption = onlyVitest\n ? ''\n : options.includeLib\n ? `\n // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: '${options.project}',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es', 'cjs']\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: [${\n options.uiFramework === 'react'\n ? \"'react', 'react-dom', 'react/jsx-runtime'\"\n : ''\n }]\n }\n },`\n : ``;\n\n const dtsPlugin = onlyVitest\n ? ''\n : options.includeLib\n ? `dts({\n entryRoot: 'src',\n tsConfigFilePath: path.join(__dirname, 'tsconfig.lib.json'),\n skipDiagnostics: true,\n }),`\n : '';\n\n const dtsImportLine = onlyVitest\n ? ''\n : options.includeLib\n ? `import dts from 'vite-plugin-dts';\\nimport * as path from 'path';`\n : '';\n\n let viteConfigContent = '';\n\n const testOption = options.includeVitest\n ? `test: {\n globals: true,\n cache: {\n dir: '${offsetFromRoot(projectConfig.root)}node_modules/.vitest'\n },\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n ${\n options.inSourceTests\n ? `includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}']`\n : ''\n }\n },`\n : '';\n\n const defineOption = options.inSourceTests\n ? `define: {\n 'import.meta.vitest': undefined\n },`\n : '';\n\n const reactPluginImportLine =\n options.uiFramework === 'react'\n ? options.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc';`\n : `import react from '@vitejs/plugin-react';`\n : '';\n\n const reactPlugin = options.uiFramework === 'react' ? `react(),` : '';\n\n const devServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n server:{\n port: 4200,\n host: 'localhost',\n },`;\n\n const previewServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n preview:{\n port: 4300,\n host: 'localhost',\n },`;\n\n const pluginOption = `\n plugins: [\n ${dtsPlugin}\n ${reactPlugin}\n viteTsConfigPaths({\n root: '${offsetFromRoot(projectConfig.root)}',\n }),\n ],\n `;\n\n const workerOption = `\n // Uncomment this if you are using workers. \n // worker: {\n // plugins: [\n // viteTsConfigPaths({\n // root: '${offsetFromRoot(projectConfig.root)}',\n // }),\n // ],\n // },`;\n\n const cacheDir = `cacheDir: '${offsetFromRoot(\n projectConfig.root\n )}node_modules/.vite/${options.project}',`;\n\n if (tree.exists(viteConfigPath)) {\n handleViteConfigFileExists(\n tree,\n viteConfigPath,\n options,\n buildOption,\n dtsPlugin,\n dtsImportLine,\n pluginOption,\n testOption,\n cacheDir,\n offsetFromRoot(projectConfig.root),\n projectAlreadyHasViteTargets\n );\n return;\n }\n\n viteConfigContent = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n ${reactPluginImportLine}\n import viteTsConfigPaths from 'vite-tsconfig-paths';\n ${dtsImportLine}\n \n export default defineConfig({\n ${cacheDir}\n ${devServerOption}\n ${previewServerOption}\n ${pluginOption}\n ${workerOption}\n ${buildOption}\n ${defineOption}\n ${testOption}\n });`;\n\n tree.write(viteConfigPath, viteConfigContent);\n}\n\nexport function normalizeViteConfigFilePathWithTree(\n tree: Tree,\n projectRoot: string,\n configFile?: string\n): string {\n return configFile && tree.exists(configFile)\n ? configFile\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.ts`))\n ? joinPathFragments(`${projectRoot}/vite.config.ts`)\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.js`))\n ? joinPathFragments(`${projectRoot}/vite.config.js`)\n : undefined;\n}\n\nexport function getViteConfigPathForProject(\n tree: Tree,\n projectName: string,\n target?: string\n) {\n let viteConfigPath: string | undefined;\n const { targets, root } = readProjectConfiguration(tree, projectName);\n if (target) {\n viteConfigPath = targets?.[target]?.options?.configFile;\n } else {\n const config = Object.values(targets).find(\n (config) =>\n config.executor === '@nrwl/nx:build' ||\n config.executor === '@nrwl/vite:build'\n );\n viteConfigPath = config?.options?.configFile;\n }\n\n return normalizeViteConfigFilePathWithTree(tree, root, viteConfigPath);\n}\n\nexport async function handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported: TargetFlags,\n userProvidedTargetName: UserProvidedTargetName,\n validFoundTargetName: ValidFoundTargetName\n) {\n if (userProvidedTargetIsUnsupported.build && validFoundTargetName.build) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.build,\n validFoundTargetName.build,\n 'build',\n 'build'\n );\n }\n\n if (userProvidedTargetIsUnsupported.serve && validFoundTargetName.serve) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.serve,\n validFoundTargetName.serve,\n 'serve',\n 'dev-server'\n );\n }\n\n if (userProvidedTargetIsUnsupported.test && validFoundTargetName.test) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.test,\n validFoundTargetName.test,\n 'test',\n 'test'\n );\n }\n}\n\nasync function handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName: string,\n validFoundTargetName: string,\n target: Target,\n executor: 'build' | 'dev-server' | 'test'\n) {\n logger.warn(\n `The custom ${target} target you provided (${userProvidedTargetName}) cannot be converted to use the @nx/vite:${executor} executor.\n However, we found the following ${target} target in your project that can be converted: ${validFoundTargetName}\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should we convert the ${validFoundTargetName} target to use the @nx/vite:${executor} executor?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(\n `The ${target} target ${userProvidedTargetName} cannot be converted to use the @nx/vite:${executor} executor.\n Please try again, either by providing a different ${target} target or by not providing a target at all (Nx will\n convert the first one it finds, most probably this one: ${validFoundTargetName})\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n }\n}\n\nexport async function handleUnknownExecutors(projectName: string) {\n logger.warn(\n `\n We could not find any targets in project ${projectName} that use executors which \n can be converted to the @nx/vite executors.\n\n This either means that your project may not have a target \n for building, serving, or testing at all, or that your targets are \n using executors that are not known to Nx.\n \n If you still want to convert your project to use the @nx/vite executors,\n please make sure to commit your changes before running this generator.\n `\n );\n\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should Nx convert your project to use the @nx/vite executors?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(`\n Nx could not verify that the executors you are using can be converted to the @nx/vite executors.\n Please try again with a different project.\n `);\n }\n}\n\nfunction handleViteConfigFileExists(\n tree: Tree,\n viteConfigPath: string,\n options: ViteConfigurationGeneratorSchema,\n buildOption: string,\n dtsPlugin: string,\n dtsImportLine: string,\n pluginOption: string,\n testOption: string,\n cacheDir: string,\n offsetFromRoot: string,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n if (projectAlreadyHasViteTargets.build && projectAlreadyHasViteTargets.test) {\n return;\n }\n\n logger.info(`vite.config.ts already exists for project ${options.project}.`);\n const buildOptionObject = {\n lib: {\n entry: 'src/index.ts',\n name: options.project,\n fileName: 'index',\n formats: ['es', 'cjs'],\n },\n rollupOptions: {\n external:\n options.uiFramework === 'react'\n ? ['react', 'react-dom', 'react/jsx-runtime']\n : [],\n },\n };\n\n const testOptionObject = {\n globals: true,\n cache: {\n dir: `${offsetFromRoot}node_modules/.vitest`,\n },\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n };\n\n const changed = ensureViteConfigIsCorrect(\n tree,\n viteConfigPath,\n buildOption,\n buildOptionObject,\n dtsPlugin,\n dtsImportLine,\n pluginOption,\n testOption,\n testOptionObject,\n cacheDir,\n projectAlreadyHasViteTargets\n );\n\n if (!changed) {\n logger.warn(\n `Make sure the following setting exists in your Vite configuration file (${viteConfigPath}):\n \n ${buildOption}\n \n `\n );\n } else {\n logger.info(`\n Vite configuration file (${viteConfigPath}) has been updated with the required settings for the new target(s).\n `);\n }\n}\n"],"names":["findExistingTargetsInProject","addOrChangeTestTarget","addOrChangeBuildTarget","addOrChangeServeTarget","addPreviewTarget","editTsConfig","deleteWebpackConfig","moveAndEditIndexHtml","createOrEditViteConfig","normalizeViteConfigFilePathWithTree","getViteConfigPathForProject","handleUnsupportedUserProvidedTargets","handleUnknownExecutors","targets","userProvidedTargets","output","validFoundTargetName","projectContainsUnsupportedExecutor","userProvidedTargetIsUnsupported","alreadyHasNxViteTargets","supportedExecutors","build","serve","test","unsupportedExecutors","checkUserProvidedTarget","target","includes","executor","hasViteTargets","executorName","preview","foundTargets","tree","options","project","readProjectConfiguration","coveragePath","joinPathFragments","root","testOptions","passWithNoTests","reportsDirectory","offsetFromRoot","jestConfig","outputs","updateProjectConfiguration","buildOptions","outputPath","fileReplacements","base","baseHref","sourcemap","sourcemaps","defaultConfiguration","configurations","development","mode","production","serveTarget","serveOptions","buildTarget","https","hmr","open","proxyConfig","previewOptions","projectConfig","config","readJson","commonCompilerOptions","useDefineForClassFields","module","strict","moduleResolution","resolveJsonModule","isolatedModules","types","noEmit","uiFramework","compilerOptions","lib","allowJs","esModuleInterop","skipLibCheck","allowSyntheticDefaultImports","forceConsistentCasingInFileNames","jsx","include","noUnusedLocals","noUnusedParameters","noImplicitReturns","writeJson","projectRoot","webpackConfigFilePath","webpackConfigPath","exists","delete","indexHtmlPath","index","mainPath","main","replace","indexHtmlContent","read","write","onlyVitest","projectAlreadyHasViteTargets","viteConfigPath","buildOption","includeLib","dtsPlugin","dtsImportLine","viteConfigContent","testOption","includeVitest","inSourceTests","defineOption","reactPluginImportLine","compiler","reactPlugin","devServerOption","previewServerOption","pluginOption","workerOption","cacheDir","handleViteConfigFileExists","configFile","undefined","projectName","Object","values","find","userProvidedTargetName","handleUnsupportedUserProvidedTargetsErrors","logger","warn","Confirm","require","prompt","name","message","initial","shouldConvert","run","Error","info","buildOptionObject","entry","fileName","formats","rollupOptions","external","testOptionObject","globals","cache","dir","environment","changed","ensureViteConfigIsCorrect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/generator-utils.ts"],"sourcesContent":["import {\n joinPathFragments,\n logger,\n offsetFromRoot,\n readJson,\n readProjectConfiguration,\n TargetConfiguration,\n Tree,\n updateProjectConfiguration,\n writeJson,\n} from '@nx/devkit';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport { VitestExecutorOptions } from '../executors/test/schema';\nimport { ViteConfigurationGeneratorSchema } from '../generators/configuration/schema';\nimport { ensureViteConfigIsCorrect } from './vite-config-edit-utils';\n\nexport type Target = 'build' | 'serve' | 'test' | 'preview';\nexport type TargetFlags = Partial<Record<Target, boolean>>;\nexport type UserProvidedTargetName = Partial<Record<Target, string>>;\nexport type ValidFoundTargetName = Partial<Record<Target, string>>;\n\nexport function findExistingTargetsInProject(\n targets: {\n [targetName: string]: TargetConfiguration;\n },\n userProvidedTargets?: UserProvidedTargetName\n): {\n validFoundTargetName: ValidFoundTargetName;\n projectContainsUnsupportedExecutor: boolean;\n userProvidedTargetIsUnsupported: TargetFlags;\n alreadyHasNxViteTargets: TargetFlags;\n} {\n const output: ReturnType<typeof findExistingTargetsInProject> = {\n validFoundTargetName: {},\n projectContainsUnsupportedExecutor: false,\n userProvidedTargetIsUnsupported: {},\n alreadyHasNxViteTargets: {},\n };\n\n const supportedExecutors = {\n build: [\n '@nxext/vite:build',\n '@nx/js:babel',\n '@nx/js:swc',\n '@nx/webpack:webpack',\n '@nx/rollup:rollup',\n '@nrwl/js:babel',\n '@nrwl/js:swc',\n '@nrwl/webpack:webpack',\n '@nrwl/rollup:rollup',\n '@nrwl/web:rollup',\n ],\n serve: [\n '@nxext/vite:dev',\n '@nx/webpack:dev-server',\n '@nrwl/webpack:dev-server',\n ],\n test: ['@nx/jest:jest', '@nrwl/jest:jest', '@nxext/vitest:vitest'],\n };\n\n const unsupportedExecutors = [\n '@nx/angular:ng-packagr-lite',\n '@nx/angular:package',\n '@nx/angular:webpack-browser',\n '@nx/esbuild:esbuild',\n '@nx/react-native:run-ios',\n '@nx/react-native:start',\n '@nx/react-native:run-android',\n '@nx/react-native:bundle',\n '@nx/react-native:build-android',\n '@nx/react-native:bundle',\n '@nx/next:build',\n '@nx/next:server',\n '@nx/js:tsc',\n '@nrwl/angular:ng-packagr-lite',\n '@nrwl/angular:package',\n '@nrwl/angular:webpack-browser',\n '@nrwl/esbuild:esbuild',\n '@nrwl/react-native:run-ios',\n '@nrwl/react-native:start',\n '@nrwl/react-native:run-android',\n '@nrwl/react-native:bundle',\n '@nrwl/react-native:build-android',\n '@nrwl/react-native:bundle',\n '@nrwl/next:build',\n '@nrwl/next:server',\n '@nrwl/js:tsc',\n '@angular-devkit/build-angular:browser',\n '@angular-devkit/build-angular:dev-server',\n ];\n\n // First, we check if the user has provided a target\n // If they have, we check if the executor the target is using is supported\n // If it's not supported, then we set the unsupported flag to true for that target\n\n function checkUserProvidedTarget(target: Target) {\n if (userProvidedTargets?.[target]) {\n if (\n supportedExecutors[target].includes(\n targets[userProvidedTargets[target]]?.executor\n )\n ) {\n output.validFoundTargetName[target] = userProvidedTargets[target];\n } else {\n output.userProvidedTargetIsUnsupported[target] = true;\n }\n }\n }\n\n checkUserProvidedTarget('build');\n checkUserProvidedTarget('serve');\n checkUserProvidedTarget('test');\n\n // Returns early when we have a build, serve, and test targets.\n if (\n output.validFoundTargetName.build &&\n output.validFoundTargetName.serve &&\n output.validFoundTargetName.test\n ) {\n return output;\n }\n\n // We try to find the targets that are using the supported executors\n // for build, serve and test, since these are the ones we will be converting\n for (const target in targets) {\n const executorName = targets[target].executor;\n\n const hasViteTargets = output.alreadyHasNxViteTargets;\n hasViteTargets.build ||=\n executorName === '@nx/vite:build' || executorName === '@nrwl/vite:build';\n hasViteTargets.serve ||=\n executorName === '@nx/vite:dev-server' ||\n executorName === '@nrwl/vite:dev-server';\n hasViteTargets.test ||=\n executorName === '@nx/vite:test' || executorName === '@nrwl/vite:test';\n hasViteTargets.preview ||=\n executorName === '@nx/vite:preview-server' ||\n executorName === '@nrwl/vite:preview-server';\n\n const foundTargets = output.validFoundTargetName;\n if (\n !foundTargets.build &&\n supportedExecutors.build.includes(executorName)\n ) {\n foundTargets.build = target;\n }\n if (\n !foundTargets.serve &&\n supportedExecutors.serve.includes(executorName)\n ) {\n foundTargets.serve = target;\n }\n if (!foundTargets.test && supportedExecutors.test.includes(executorName)) {\n foundTargets.test = target;\n }\n\n output.projectContainsUnsupportedExecutor ||=\n unsupportedExecutors.includes(executorName);\n }\n\n return output;\n}\n\nexport function addOrChangeTestTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const coveragePath = joinPathFragments(\n 'coverage',\n project.root === '.' ? options.project : project.root\n );\n const testOptions: VitestExecutorOptions = {\n passWithNoTests: true,\n // vitest runs in the project root so we have to offset to the workspaceRoot\n reportsDirectory: joinPathFragments(\n offsetFromRoot(project.root),\n coveragePath\n ),\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n project.targets[target].executor = '@nx/vite:test';\n delete project.targets[target].options?.jestConfig;\n } else {\n project.targets[target] = {\n executor: '@nx/vite:test',\n outputs: [coveragePath],\n options: testOptions,\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addOrChangeBuildTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n const buildOptions: ViteBuildExecutorOptions = {\n outputPath: joinPathFragments(\n 'dist',\n project.root != '.' ? project.root : options.project\n ),\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n buildOptions.fileReplacements =\n project.targets[target].options?.fileReplacements;\n\n if (project.targets[target].executor === '@nxext/vite:build') {\n buildOptions.base = project.targets[target].options?.baseHref;\n buildOptions.sourcemap = project.targets[target].options?.sourcemaps;\n }\n project.targets[target].options = { ...buildOptions };\n project.targets[target].executor = '@nx/vite:build';\n } else {\n project.targets[target] = {\n executor: '@nx/vite:build',\n outputs: ['{options.outputPath}'],\n defaultConfiguration: 'production',\n options: buildOptions,\n configurations: {\n development: {\n mode: 'development',\n },\n production: {\n mode: 'production',\n },\n },\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addOrChangeServeTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n const serveTarget = project.targets[target];\n const serveOptions: ViteDevServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n https: project.targets[target].options?.https,\n hmr: project.targets[target].options?.hmr,\n open: project.targets[target].options?.open,\n };\n if (serveTarget.executor === '@nxext/vite:dev') {\n serveOptions.proxyConfig = project.targets[target].options.proxyConfig;\n }\n serveTarget.executor = '@nx/vite:dev-server';\n serveTarget.options = serveOptions;\n } else {\n project.targets[target] = {\n executor: '@nx/vite:dev-server',\n defaultConfiguration: 'development',\n options: {\n buildTarget: `${options.project}:build`,\n },\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n hmr: true,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n hmr: false,\n },\n },\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\n/**\n * Adds a target for the preview server.\n *\n * @param tree\n * @param options\n * @param serveTarget An existing serve target.\n * @param previewTarget The preview target to create.\n */\nexport function addPreviewTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n serveTarget: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const previewOptions: VitePreviewServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n };\n\n project.targets ??= {};\n\n // Update the options from the passed serve target.\n if (project.targets[serveTarget]) {\n const target = project.targets[serveTarget];\n if (target.executor === '@nxext/vite:dev') {\n previewOptions.proxyConfig = target.options.proxyConfig;\n }\n previewOptions.https = target.options?.https;\n previewOptions.open = target.options?.open;\n }\n\n // Adds a preview target.\n project.targets.preview = {\n executor: '@nx/vite:preview-server',\n defaultConfiguration: 'development',\n options: previewOptions,\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function editTsConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n const config = readJson(tree, `${projectConfig.root}/tsconfig.json`);\n\n const commonCompilerOptions = {\n target: 'ESNext',\n useDefineForClassFields: true,\n module: 'ESNext',\n strict: true,\n moduleResolution: 'Node',\n resolveJsonModule: true,\n isolatedModules: true,\n types: ['vite/client'],\n noEmit: true,\n };\n\n switch (options.uiFramework) {\n case 'react':\n config.compilerOptions = {\n ...commonCompilerOptions,\n lib: ['DOM', 'DOM.Iterable', 'ESNext'],\n allowJs: false,\n esModuleInterop: false,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n forceConsistentCasingInFileNames: true,\n jsx: 'react-jsx',\n };\n config.include = [...config.include, 'src'];\n break;\n case 'none':\n config.compilerOptions = {\n ...commonCompilerOptions,\n lib: ['ESNext', 'DOM'],\n skipLibCheck: true,\n esModuleInterop: true,\n strict: true,\n noUnusedLocals: true,\n noUnusedParameters: true,\n noImplicitReturns: true,\n };\n config.include = [...config.include, 'src'];\n break;\n default:\n break;\n }\n\n writeJson(tree, `${projectConfig.root}/tsconfig.json`, config);\n}\n\nexport function deleteWebpackConfig(\n tree: Tree,\n projectRoot: string,\n webpackConfigFilePath?: string\n) {\n const webpackConfigPath =\n webpackConfigFilePath && tree.exists(webpackConfigFilePath)\n ? webpackConfigFilePath\n : tree.exists(`${projectRoot}/webpack.config.js`)\n ? `${projectRoot}/webpack.config.js`\n : tree.exists(`${projectRoot}/webpack.config.ts`)\n ? `${projectRoot}/webpack.config.ts`\n : null;\n if (webpackConfigPath) {\n tree.delete(webpackConfigPath);\n }\n}\n\nexport function moveAndEditIndexHtml(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n buildTarget: string\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let indexHtmlPath =\n projectConfig.targets?.[buildTarget]?.options?.index ??\n `${projectConfig.root}/src/index.html`;\n let mainPath =\n projectConfig.targets?.[buildTarget]?.options?.main ??\n `${projectConfig.root}/src/main.ts${\n options.uiFramework === 'react' ? 'x' : ''\n }`;\n\n if (projectConfig.root !== '.') {\n mainPath = mainPath.replace(projectConfig.root, '');\n }\n\n if (\n !tree.exists(indexHtmlPath) &&\n tree.exists(`${projectConfig.root}/index.html`)\n ) {\n indexHtmlPath = `${projectConfig.root}/index.html`;\n }\n\n if (tree.exists(indexHtmlPath)) {\n const indexHtmlContent = tree.read(indexHtmlPath, 'utf8');\n if (\n !indexHtmlContent.includes(\n `<script type=\"module\" src=\"${mainPath}\"></script>`\n )\n ) {\n tree.write(\n `${projectConfig.root}/index.html`,\n indexHtmlContent.replace(\n '</body>',\n `<script type=\"module\" src=\"${mainPath}\"></script>\n </body>`\n )\n );\n\n if (tree.exists(`${projectConfig.root}/src/index.html`)) {\n tree.delete(`${projectConfig.root}/src/index.html`);\n }\n }\n } else {\n tree.write(\n `${projectConfig.root}/index.html`,\n `<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <link rel=\"icon\" href=\"/favicon.ico\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Vite</title>\n </head>\n <body>\n <div id=\"root\"></div>\n <script type=\"module\" src=\"${mainPath}\"></script>\n </body>\n </html>`\n );\n }\n}\n\nexport function createOrEditViteConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n onlyVitest: boolean,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n const viteConfigPath = `${projectConfig.root}/vite.config.ts`;\n\n const buildOption = onlyVitest\n ? ''\n : options.includeLib\n ? `\n // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: '${options.project}',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es', 'cjs']\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: [${\n options.uiFramework === 'react'\n ? \"'react', 'react-dom', 'react/jsx-runtime'\"\n : ''\n }]\n }\n },`\n : ``;\n\n const dtsPlugin = onlyVitest\n ? ''\n : options.includeLib\n ? `dts({\n entryRoot: 'src',\n tsConfigFilePath: path.join(__dirname, 'tsconfig.lib.json'),\n skipDiagnostics: true,\n }),`\n : '';\n\n const dtsImportLine = onlyVitest\n ? ''\n : options.includeLib\n ? `import dts from 'vite-plugin-dts';\\nimport * as path from 'path';`\n : '';\n\n let viteConfigContent = '';\n\n const testOption = options.includeVitest\n ? `test: {\n globals: true,\n cache: {\n dir: '${offsetFromRoot(projectConfig.root)}node_modules/.vitest'\n },\n environment: '${options.testEnvironment ?? 'node'}',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n ${\n options.inSourceTests\n ? `includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}']`\n : ''\n }\n },`\n : '';\n\n const defineOption = options.inSourceTests\n ? `define: {\n 'import.meta.vitest': undefined\n },`\n : '';\n\n const reactPluginImportLine =\n options.uiFramework === 'react'\n ? options.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc';`\n : `import react from '@vitejs/plugin-react';`\n : '';\n\n const reactPlugin = options.uiFramework === 'react' ? `react(),` : '';\n\n const devServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n server:{\n port: 4200,\n host: 'localhost',\n },`;\n\n const previewServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n preview:{\n port: 4300,\n host: 'localhost',\n },`;\n\n const pluginOption = `\n plugins: [\n ${dtsPlugin}\n ${reactPlugin}\n viteTsConfigPaths({\n root: '${offsetFromRoot(projectConfig.root)}',\n }),\n ],\n `;\n\n const workerOption = `\n // Uncomment this if you are using workers. \n // worker: {\n // plugins: [\n // viteTsConfigPaths({\n // root: '${offsetFromRoot(projectConfig.root)}',\n // }),\n // ],\n // },`;\n\n const cacheDir = `cacheDir: '${offsetFromRoot(\n projectConfig.root\n )}node_modules/.vite/${options.project}',`;\n\n if (tree.exists(viteConfigPath)) {\n handleViteConfigFileExists(\n tree,\n viteConfigPath,\n options,\n buildOption,\n dtsPlugin,\n dtsImportLine,\n pluginOption,\n testOption,\n cacheDir,\n offsetFromRoot(projectConfig.root),\n projectAlreadyHasViteTargets\n );\n return;\n }\n\n viteConfigContent = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n ${reactPluginImportLine}\n import viteTsConfigPaths from 'vite-tsconfig-paths';\n ${dtsImportLine}\n \n export default defineConfig({\n ${cacheDir}\n ${devServerOption}\n ${previewServerOption}\n ${pluginOption}\n ${workerOption}\n ${buildOption}\n ${defineOption}\n ${testOption}\n });`;\n\n tree.write(viteConfigPath, viteConfigContent);\n}\n\nexport function normalizeViteConfigFilePathWithTree(\n tree: Tree,\n projectRoot: string,\n configFile?: string\n): string {\n return configFile && tree.exists(configFile)\n ? configFile\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.ts`))\n ? joinPathFragments(`${projectRoot}/vite.config.ts`)\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.js`))\n ? joinPathFragments(`${projectRoot}/vite.config.js`)\n : undefined;\n}\n\nexport function getViteConfigPathForProject(\n tree: Tree,\n projectName: string,\n target?: string\n) {\n let viteConfigPath: string | undefined;\n const { targets, root } = readProjectConfiguration(tree, projectName);\n if (target) {\n viteConfigPath = targets?.[target]?.options?.configFile;\n } else {\n const config = Object.values(targets).find(\n (config) =>\n config.executor === '@nrwl/nx:build' ||\n config.executor === '@nrwl/vite:build'\n );\n viteConfigPath = config?.options?.configFile;\n }\n\n return normalizeViteConfigFilePathWithTree(tree, root, viteConfigPath);\n}\n\nexport async function handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported: TargetFlags,\n userProvidedTargetName: UserProvidedTargetName,\n validFoundTargetName: ValidFoundTargetName\n) {\n if (userProvidedTargetIsUnsupported.build && validFoundTargetName.build) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.build,\n validFoundTargetName.build,\n 'build',\n 'build'\n );\n }\n\n if (userProvidedTargetIsUnsupported.serve && validFoundTargetName.serve) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.serve,\n validFoundTargetName.serve,\n 'serve',\n 'dev-server'\n );\n }\n\n if (userProvidedTargetIsUnsupported.test && validFoundTargetName.test) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.test,\n validFoundTargetName.test,\n 'test',\n 'test'\n );\n }\n}\n\nasync function handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName: string,\n validFoundTargetName: string,\n target: Target,\n executor: 'build' | 'dev-server' | 'test'\n) {\n logger.warn(\n `The custom ${target} target you provided (${userProvidedTargetName}) cannot be converted to use the @nx/vite:${executor} executor.\n However, we found the following ${target} target in your project that can be converted: ${validFoundTargetName}\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should we convert the ${validFoundTargetName} target to use the @nx/vite:${executor} executor?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(\n `The ${target} target ${userProvidedTargetName} cannot be converted to use the @nx/vite:${executor} executor.\n Please try again, either by providing a different ${target} target or by not providing a target at all (Nx will\n convert the first one it finds, most probably this one: ${validFoundTargetName})\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n }\n}\n\nexport async function handleUnknownExecutors(projectName: string) {\n logger.warn(\n `\n We could not find any targets in project ${projectName} that use executors which \n can be converted to the @nx/vite executors.\n\n This either means that your project may not have a target \n for building, serving, or testing at all, or that your targets are \n using executors that are not known to Nx.\n \n If you still want to convert your project to use the @nx/vite executors,\n please make sure to commit your changes before running this generator.\n `\n );\n\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should Nx convert your project to use the @nx/vite executors?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(`\n Nx could not verify that the executors you are using can be converted to the @nx/vite executors.\n Please try again with a different project.\n `);\n }\n}\n\nfunction handleViteConfigFileExists(\n tree: Tree,\n viteConfigPath: string,\n options: ViteConfigurationGeneratorSchema,\n buildOption: string,\n dtsPlugin: string,\n dtsImportLine: string,\n pluginOption: string,\n testOption: string,\n cacheDir: string,\n offsetFromRoot: string,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n if (projectAlreadyHasViteTargets.build && projectAlreadyHasViteTargets.test) {\n return;\n }\n\n logger.info(`vite.config.ts already exists for project ${options.project}.`);\n const buildOptionObject = {\n lib: {\n entry: 'src/index.ts',\n name: options.project,\n fileName: 'index',\n formats: ['es', 'cjs'],\n },\n rollupOptions: {\n external:\n options.uiFramework === 'react'\n ? ['react', 'react-dom', 'react/jsx-runtime']\n : [],\n },\n };\n\n const testOptionObject = {\n globals: true,\n cache: {\n dir: `${offsetFromRoot}node_modules/.vitest`,\n },\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n };\n\n const changed = ensureViteConfigIsCorrect(\n tree,\n viteConfigPath,\n buildOption,\n buildOptionObject,\n dtsPlugin,\n dtsImportLine,\n pluginOption,\n testOption,\n testOptionObject,\n cacheDir,\n projectAlreadyHasViteTargets\n );\n\n if (!changed) {\n logger.warn(\n `Make sure the following setting exists in your Vite configuration file (${viteConfigPath}):\n \n ${buildOption}\n \n `\n );\n } else {\n logger.info(`\n Vite configuration file (${viteConfigPath}) has been updated with the required settings for the new target(s).\n `);\n }\n}\n"],"names":["findExistingTargetsInProject","addOrChangeTestTarget","addOrChangeBuildTarget","addOrChangeServeTarget","addPreviewTarget","editTsConfig","deleteWebpackConfig","moveAndEditIndexHtml","createOrEditViteConfig","normalizeViteConfigFilePathWithTree","getViteConfigPathForProject","handleUnsupportedUserProvidedTargets","handleUnknownExecutors","targets","userProvidedTargets","output","validFoundTargetName","projectContainsUnsupportedExecutor","userProvidedTargetIsUnsupported","alreadyHasNxViteTargets","supportedExecutors","build","serve","test","unsupportedExecutors","checkUserProvidedTarget","target","includes","executor","hasViteTargets","executorName","preview","foundTargets","tree","options","project","readProjectConfiguration","coveragePath","joinPathFragments","root","testOptions","passWithNoTests","reportsDirectory","offsetFromRoot","jestConfig","outputs","updateProjectConfiguration","buildOptions","outputPath","fileReplacements","base","baseHref","sourcemap","sourcemaps","defaultConfiguration","configurations","development","mode","production","serveTarget","serveOptions","buildTarget","https","hmr","open","proxyConfig","previewOptions","projectConfig","config","readJson","commonCompilerOptions","useDefineForClassFields","module","strict","moduleResolution","resolveJsonModule","isolatedModules","types","noEmit","uiFramework","compilerOptions","lib","allowJs","esModuleInterop","skipLibCheck","allowSyntheticDefaultImports","forceConsistentCasingInFileNames","jsx","include","noUnusedLocals","noUnusedParameters","noImplicitReturns","writeJson","projectRoot","webpackConfigFilePath","webpackConfigPath","exists","delete","indexHtmlPath","index","mainPath","main","replace","indexHtmlContent","read","write","onlyVitest","projectAlreadyHasViteTargets","viteConfigPath","buildOption","includeLib","dtsPlugin","dtsImportLine","viteConfigContent","testOption","includeVitest","testEnvironment","inSourceTests","defineOption","reactPluginImportLine","compiler","reactPlugin","devServerOption","previewServerOption","pluginOption","workerOption","cacheDir","handleViteConfigFileExists","configFile","undefined","projectName","Object","values","find","userProvidedTargetName","handleUnsupportedUserProvidedTargetsErrors","logger","warn","Confirm","require","prompt","name","message","initial","shouldConvert","run","Error","info","buildOptionObject","entry","fileName","formats","rollupOptions","external","testOptionObject","globals","cache","dir","environment","changed","ensureViteConfigIsCorrect"],"mappings":"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"}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
export declare const nxVersion: any;
|
|
2
|
-
export declare const viteVersion = "^4.3.
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const vitestCoverageIstanbulVersion = "^0.31.0";
|
|
2
|
+
export declare const viteVersion = "^4.3.9";
|
|
3
|
+
export declare const vitestVersion = "^0.32.0";
|
|
4
|
+
export declare const vitestUiVersion = "^0.32.0";
|
|
5
|
+
export declare const vitePluginReactVersion = "^4.0.0";
|
|
6
|
+
export declare const vitePluginReactSwcVersion = "^3.3.2";
|
|
7
|
+
export declare const viteTsConfigPathsVersion = "^4.2.0";
|
|
8
|
+
export declare const jsdomVersion = "~22.1.0";
|
|
9
|
+
export declare const vitePluginDtsVersion = "~2.3.0";
|
|
10
|
+
export declare const happyDomVersion = "~9.20.3";
|
|
11
|
+
export declare const edgeRuntimeVmVersion = "~3.0.2";
|
|
12
|
+
export declare const vitestCoverageC8Version = "^0.32.0";
|
|
13
|
+
export declare const vitestCoverageIstanbulVersion = "^0.32.0";
|
package/src/utils/versions.js
CHANGED
|
@@ -12,9 +12,6 @@ _export(exports, {
|
|
|
12
12
|
viteVersion: function() {
|
|
13
13
|
return viteVersion;
|
|
14
14
|
},
|
|
15
|
-
vitePluginEslintVersion: function() {
|
|
16
|
-
return vitePluginEslintVersion;
|
|
17
|
-
},
|
|
18
15
|
vitestVersion: function() {
|
|
19
16
|
return vitestVersion;
|
|
20
17
|
},
|
|
@@ -27,12 +24,6 @@ _export(exports, {
|
|
|
27
24
|
vitePluginReactSwcVersion: function() {
|
|
28
25
|
return vitePluginReactSwcVersion;
|
|
29
26
|
},
|
|
30
|
-
vitePluginVueVersion: function() {
|
|
31
|
-
return vitePluginVueVersion;
|
|
32
|
-
},
|
|
33
|
-
vitePluginVueJsxVersion: function() {
|
|
34
|
-
return vitePluginVueJsxVersion;
|
|
35
|
-
},
|
|
36
27
|
viteTsConfigPathsVersion: function() {
|
|
37
28
|
return viteTsConfigPathsVersion;
|
|
38
29
|
},
|
|
@@ -42,6 +33,12 @@ _export(exports, {
|
|
|
42
33
|
vitePluginDtsVersion: function() {
|
|
43
34
|
return vitePluginDtsVersion;
|
|
44
35
|
},
|
|
36
|
+
happyDomVersion: function() {
|
|
37
|
+
return happyDomVersion;
|
|
38
|
+
},
|
|
39
|
+
edgeRuntimeVmVersion: function() {
|
|
40
|
+
return edgeRuntimeVmVersion;
|
|
41
|
+
},
|
|
45
42
|
vitestCoverageC8Version: function() {
|
|
46
43
|
return vitestCoverageC8Version;
|
|
47
44
|
},
|
|
@@ -50,18 +47,17 @@ _export(exports, {
|
|
|
50
47
|
}
|
|
51
48
|
});
|
|
52
49
|
const nxVersion = require('../../package.json').version;
|
|
53
|
-
const viteVersion = '^4.3.
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
const vitestCoverageIstanbulVersion = '^0.31.0';
|
|
50
|
+
const viteVersion = '^4.3.9';
|
|
51
|
+
const vitestVersion = '^0.32.0';
|
|
52
|
+
const vitestUiVersion = '^0.32.0';
|
|
53
|
+
const vitePluginReactVersion = '^4.0.0';
|
|
54
|
+
const vitePluginReactSwcVersion = '^3.3.2';
|
|
55
|
+
const viteTsConfigPathsVersion = '^4.2.0';
|
|
56
|
+
const jsdomVersion = '~22.1.0';
|
|
57
|
+
const vitePluginDtsVersion = '~2.3.0';
|
|
58
|
+
const happyDomVersion = '~9.20.3';
|
|
59
|
+
const edgeRuntimeVmVersion = '~3.0.2';
|
|
60
|
+
const vitestCoverageC8Version = '^0.32.0';
|
|
61
|
+
const vitestCoverageIstanbulVersion = '^0.32.0';
|
|
66
62
|
|
|
67
63
|
//# sourceMappingURL=versions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/utils/versions.ts"],"sourcesContent":["export const nxVersion = require('../../package.json').version;\nexport const viteVersion = '^4.3.
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/versions.ts"],"sourcesContent":["export const nxVersion = require('../../package.json').version;\nexport const viteVersion = '^4.3.9';\nexport const vitestVersion = '^0.32.0';\nexport const vitestUiVersion = '^0.32.0';\nexport const vitePluginReactVersion = '^4.0.0';\nexport const vitePluginReactSwcVersion = '^3.3.2';\nexport const viteTsConfigPathsVersion = '^4.2.0';\nexport const jsdomVersion = '~22.1.0';\nexport const vitePluginDtsVersion = '~2.3.0';\nexport const happyDomVersion = '~9.20.3';\nexport const edgeRuntimeVmVersion = '~3.0.2';\n\n// Coverage providers\nexport const vitestCoverageC8Version = '^0.32.0';\nexport const vitestCoverageIstanbulVersion = '^0.32.0';\n"],"names":["nxVersion","viteVersion","vitestVersion","vitestUiVersion","vitePluginReactVersion","vitePluginReactSwcVersion","viteTsConfigPathsVersion","jsdomVersion","vitePluginDtsVersion","happyDomVersion","edgeRuntimeVmVersion","vitestCoverageC8Version","vitestCoverageIstanbulVersion","require","version"],"mappings":";;;;;;;;IAAaA,SAAS;eAATA;;IACAC,WAAW;eAAXA;;IACAC,aAAa;eAAbA;;IACAC,eAAe;eAAfA;;IACAC,sBAAsB;eAAtBA;;IACAC,yBAAyB;eAAzBA;;IACAC,wBAAwB;eAAxBA;;IACAC,YAAY;eAAZA;;IACAC,oBAAoB;eAApBA;;IACAC,eAAe;eAAfA;;IACAC,oBAAoB;eAApBA;;IAGAC,uBAAuB;eAAvBA;;IACAC,6BAA6B;eAA7BA;;;AAdN,MAAMZ,YAAYa,QAAQ,sBAAsBC,OAAO;AACvD,MAAMb,cAAc;AACpB,MAAMC,gBAAgB;AACtB,MAAMC,kBAAkB;AACxB,MAAMC,yBAAyB;AAC/B,MAAMC,4BAA4B;AAClC,MAAMC,2BAA2B;AACjC,MAAMC,eAAe;AACrB,MAAMC,uBAAuB;AAC7B,MAAMC,kBAAkB;AACxB,MAAMC,uBAAuB;AAG7B,MAAMC,0BAA0B;AAChC,MAAMC,gCAAgC"}
|