@nx/vite 17.0.2 → 17.0.4
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/LICENSE +1 -1
- package/README.md +9 -4
- package/generators.json +3 -3
- package/migrations.json +90 -0
- package/package.json +9 -7
- package/plugin.d.ts +1 -0
- package/plugin.js +21 -0
- package/plugin.js.map +1 -0
- package/plugins/nx-tsconfig-paths.plugin.js +9 -5
- package/plugins/nx-tsconfig-paths.plugin.js.map +1 -1
- package/plugins/rollup-replace-files.plugin.d.ts +3 -3
- package/plugins/rollup-replace-files.plugin.js +2 -2
- package/plugins/rollup-replace-files.plugin.js.map +1 -1
- package/src/executors/build/build.impl.d.ts +5 -1
- package/src/executors/build/build.impl.js +90 -21
- package/src/executors/build/build.impl.js.map +1 -1
- package/src/executors/build/schema.d.ts +5 -18
- package/src/executors/build/schema.json +4 -106
- package/src/executors/dev-server/dev-server.impl.js +74 -9
- package/src/executors/dev-server/dev-server.impl.js.map +1 -1
- package/src/executors/dev-server/schema.d.ts +0 -10
- package/src/executors/dev-server/schema.json +0 -63
- package/src/executors/preview-server/preview-server.impl.d.ts +1 -1
- package/src/executors/preview-server/preview-server.impl.js +79 -15
- package/src/executors/preview-server/preview-server.impl.js.map +1 -1
- package/src/executors/preview-server/schema.d.ts +0 -7
- package/src/executors/preview-server/schema.json +1 -51
- package/src/executors/test/lib/nx-reporter.d.ts +14 -0
- package/src/executors/test/lib/nx-reporter.js +40 -0
- package/src/executors/test/lib/nx-reporter.js.map +1 -0
- package/src/executors/test/lib/utils.d.ts +4 -0
- package/src/executors/test/lib/utils.js +77 -0
- package/src/executors/test/lib/utils.js.map +1 -0
- package/src/executors/test/schema.d.ts +3 -8
- package/src/executors/test/schema.json +11 -43
- package/src/executors/test/vitest.impl.js +20 -112
- package/src/executors/test/vitest.impl.js.map +1 -1
- package/src/generators/configuration/configuration.d.ts +2 -1
- package/src/generators/configuration/configuration.js +49 -87
- package/src/generators/configuration/configuration.js.map +1 -1
- package/src/generators/configuration/lib/convert-non-vite.d.ts +5 -0
- package/src/generators/configuration/lib/convert-non-vite.js +62 -0
- package/src/generators/configuration/lib/convert-non-vite.js.map +1 -0
- package/src/generators/configuration/schema.d.ts +1 -3
- package/src/generators/configuration/schema.json +0 -12
- package/src/generators/init/init.d.ts +4 -3
- package/src/generators/init/init.js +50 -67
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/init/lib/utils.d.ts +6 -0
- package/src/generators/init/lib/utils.js +80 -0
- package/src/generators/init/lib/utils.js.map +1 -0
- package/src/generators/init/schema.d.ts +5 -5
- package/src/generators/init/schema.json +17 -20
- package/src/generators/vitest/files/tsconfig.spec.json__tmpl__ +2 -1
- package/src/generators/vitest/schema.d.ts +2 -1
- package/src/generators/vitest/schema.json +2 -2
- package/src/generators/vitest/vitest-generator.d.ts +2 -1
- package/src/generators/vitest/vitest-generator.js +34 -10
- package/src/generators/vitest/vitest-generator.js.map +1 -1
- package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js.map +1 -1
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js +3 -17
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js.map +1 -1
- package/src/migrations/update-17-1-0/move-target-defaults.d.ts +2 -0
- package/src/migrations/update-17-1-0/move-target-defaults.js +77 -0
- package/src/migrations/update-17-1-0/move-target-defaults.js.map +1 -0
- package/src/migrations/update-17-2-0/lib/add-file-replacements.d.ts +2 -0
- package/src/migrations/update-17-2-0/lib/add-file-replacements.js +67 -0
- package/src/migrations/update-17-2-0/lib/add-file-replacements.js.map +1 -0
- package/src/migrations/update-17-2-0/lib/edit-build-config.d.ts +2 -0
- package/src/migrations/update-17-2-0/lib/edit-build-config.js +121 -0
- package/src/migrations/update-17-2-0/lib/edit-build-config.js.map +1 -0
- package/src/migrations/update-17-2-0/lib/edit-test-config.d.ts +2 -0
- package/src/migrations/update-17-2-0/lib/edit-test-config.js +83 -0
- package/src/migrations/update-17-2-0/lib/edit-test-config.js.map +1 -0
- package/src/migrations/update-17-2-0/update-vite-config.d.ts +5 -0
- package/src/migrations/update-17-2-0/update-vite-config.js +68 -0
- package/src/migrations/update-17-2-0/update-vite-config.js.map +1 -0
- package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.d.ts +3 -0
- package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js +117 -0
- package/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.js.map +1 -0
- package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.d.ts +2 -0
- package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js +45 -0
- package/src/migrations/update-17-3-0/vitest-coverage-and-reporters.js.map +1 -0
- package/src/plugins/plugin.d.ts +10 -0
- package/src/plugins/plugin.js +226 -0
- package/src/plugins/plugin.js.map +1 -0
- package/src/utils/ensure-dependencies.d.ts +8 -0
- package/src/utils/ensure-dependencies.js +34 -0
- package/src/utils/ensure-dependencies.js.map +1 -0
- package/src/utils/executor-utils.d.ts +2 -0
- package/src/utils/executor-utils.js +22 -7
- package/src/utils/executor-utils.js.map +1 -1
- package/src/utils/find-vite-config.d.ts +3 -0
- package/src/utils/find-vite-config.js +46 -0
- package/src/utils/find-vite-config.js.map +1 -0
- package/src/utils/generator-utils.d.ts +10 -12
- package/src/utils/generator-utils.js +135 -213
- package/src/utils/generator-utils.js.map +1 -1
- package/src/utils/options-utils.d.ts +3 -19
- package/src/utils/options-utils.js +25 -68
- package/src/utils/options-utils.js.map +1 -1
- package/src/utils/test-files/react-lib-non-buildable-jest.json +1 -4
- package/src/utils/test-files/react-lib-non-buildable-vitest.json +1 -4
- package/src/utils/test-files/react-mixed-project.config.json +1 -6
- package/src/utils/test-files/react-vite-project.config.json +1 -4
- package/src/utils/test-files/unknown-project.config.json +1 -4
- package/src/utils/test-utils.d.ts +1 -1
- package/src/utils/test-utils.js +10 -18
- package/src/utils/test-utils.js.map +1 -1
- package/src/utils/versions.d.ts +7 -9
- package/src/utils/versions.js +7 -15
- package/src/utils/versions.js.map +1 -1
- package/src/utils/vite-config-edit-utils.js +1 -1
- package/src/utils/vite-config-edit-utils.js.map +1 -1
- package/src/utils/test-files/react-project.config.json +0 -85
- package/src/utils/test-files/web-project.config.json +0 -72
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-2-0/lib/add-file-replacements.ts"],"sourcesContent":["import { ChangeType, applyChangesToString } from '@nx/devkit';\nimport { FileReplacement } from '../../../../plugins/rollup-replace-files.plugin';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport { getConfigNode, notFoundWarning } from '../update-vite-config';\n\nexport function addFileReplacements(\n configContents: string,\n fileReplacements: FileReplacement[],\n configPath: string\n): string {\n const configNode = getConfigNode(configContents);\n if (!configNode) {\n notFoundWarning(configPath);\n return configContents;\n }\n const pluginsObject = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"plugins\"])`\n )?.[0];\n const replaceFilesPlugin = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"plugins\"]) CallExpression:has(Identifier[name=\"replaceFiles\"])`\n )?.[0];\n\n const firstImportDeclaration = tsquery.query(\n configContents,\n 'ImportDeclaration'\n )?.[0];\n\n if (pluginsObject) {\n if (replaceFilesPlugin) {\n return configContents;\n } else {\n return applyChangesToString(configContents, [\n {\n type: ChangeType.Insert,\n index: pluginsObject.getStart() + `plugins: [`.length + 1,\n text: `replaceFiles(${JSON.stringify(fileReplacements)}),`,\n },\n firstImportDeclaration\n ? {\n type: ChangeType.Insert,\n index: firstImportDeclaration.getStart(),\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\\n`,\n }\n : {\n type: ChangeType.Insert,\n index: 0,\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\\n`,\n },\n ]);\n }\n } else {\n const foundDefineConfig = tsquery.query(\n configContents,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n )?.[0];\n\n if (!foundDefineConfig) {\n return;\n }\n return applyChangesToString(configContents, [\n {\n type: ChangeType.Insert,\n index: configNode.getStart() + 1,\n text: `plugins: [replaceFiles(${JSON.stringify(fileReplacements)})],`,\n },\n firstImportDeclaration\n ? {\n type: ChangeType.Insert,\n index: firstImportDeclaration.getStart(),\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`,\n }\n : {\n type: ChangeType.Insert,\n index: 0,\n text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`,\n },\n ]);\n }\n}\n"],"names":["addFileReplacements","configContents","fileReplacements","configPath","tsquery","configNode","getConfigNode","notFoundWarning","pluginsObject","query","replaceFilesPlugin","firstImportDeclaration","applyChangesToString","type","ChangeType","Insert","index","getStart","length","text","JSON","stringify","foundDefineConfig"],"mappings":";+BAKgBA;;;eAAAA;;;wBALiC;yBAEzB;kCACuB;AAExC,SAASA,oBACdC,cAAsB,EACtBC,gBAAmC,EACnCC,UAAkB;QAOIC,gBAIKA,iBAKIA;IAd/B,MAAMC,aAAaC,IAAAA,+BAAa,EAACL;IACjC,IAAI,CAACI,YAAY;QACfE,IAAAA,iCAAe,EAACJ;QAChB,OAAOF;IACT;IACA,MAAMO,iBAAgBJ,iBAAAA,gBAAO,CAACK,KAAK,CACjCJ,YACA,CAAC,kDAAkD,CAAC,sBAFhCD,cAGnB,CAAC,EAAE;IACN,MAAMM,sBAAqBN,kBAAAA,gBAAO,CAACK,KAAK,CACtCJ,YACA,CAAC,sGAAsG,CAAC,sBAF/ED,eAGxB,CAAC,EAAE;IAEN,MAAMO,0BAAyBP,kBAAAA,gBAAO,CAACK,KAAK,CAC1CR,gBACA,yCAF6BG,eAG5B,CAAC,EAAE;IAEN,IAAII,eAAe;QACjB,IAAIE,oBAAoB;YACtB,OAAOT;QACT,OAAO;YACL,OAAOW,IAAAA,4BAAoB,EAACX,gBAAgB;gBAC1C;oBACEY,MAAMC,kBAAU,CAACC,MAAM;oBACvBC,OAAOR,cAAcS,QAAQ,KAAK,CAAC,UAAU,CAAC,CAACC,MAAM,GAAG;oBACxDC,MAAM,CAAC,aAAa,EAAEC,KAAKC,SAAS,CAACnB,kBAAkB,EAAE,CAAC;gBAC5D;gBACAS,yBACI;oBACEE,MAAMC,kBAAU,CAACC,MAAM;oBACvBC,OAAOL,uBAAuBM,QAAQ;oBACtCE,MAAM,CAAC,0EAA0E,CAAC;gBACpF,IACA;oBACEN,MAAMC,kBAAU,CAACC,MAAM;oBACvBC,OAAO;oBACPG,MAAM,CAAC,0EAA0E,CAAC;gBACpF;aACL;QACH;IACF,OAAO;YACqBf;QAA1B,MAAMkB,qBAAoBlB,kBAAAA,gBAAO,CAACK,KAAK,CACrCR,gBACA,2EAFwBG,eAGvB,CAAC,EAAE;QAEN,IAAI,CAACkB,mBAAmB;YACtB;QACF;QACA,OAAOV,IAAAA,4BAAoB,EAACX,gBAAgB;YAC1C;gBACEY,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAOX,WAAWY,QAAQ,KAAK;gBAC/BE,MAAM,CAAC,uBAAuB,EAAEC,KAAKC,SAAS,CAACnB,kBAAkB,GAAG,CAAC;YACvE;YACAS,yBACI;gBACEE,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAOL,uBAAuBM,QAAQ;gBACtCE,MAAM,CAAC,wEAAwE,CAAC;YAClF,IACA;gBACEN,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAO;gBACPG,MAAM,CAAC,wEAAwE,CAAC;YAClF;SACL;IACH;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { ProjectConfiguration, Tree } from '@nx/devkit';
|
|
2
|
+
export declare function updateBuildOutDirAndRoot(options: Record<string, any>, configContents: string, projectConfig: ProjectConfiguration, targetName: string, tree: Tree, projectName: string, configPath: string): string;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "updateBuildOutDirAndRoot", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return updateBuildOutDirAndRoot;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _devkit = require("@nx/devkit");
|
|
9
|
+
const _tsquery = require("@phenomnomnominal/tsquery");
|
|
10
|
+
const _updateviteconfig = require("../update-vite-config");
|
|
11
|
+
const ts = require("typescript");
|
|
12
|
+
function updateBuildOutDirAndRoot(options, configContents, projectConfig, targetName, tree, projectName, configPath) {
|
|
13
|
+
var _tsquery_query;
|
|
14
|
+
const foundDefineConfig = (_tsquery_query = _tsquery.tsquery.query(configContents, 'CallExpression:has(Identifier[name="defineConfig"])')) == null ? void 0 : _tsquery_query[0];
|
|
15
|
+
if (!foundDefineConfig) {
|
|
16
|
+
(0, _updateviteconfig.notFoundWarning)(configPath);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
configContents = fixBuild(options, configContents, projectConfig, targetName, tree, projectName, configPath);
|
|
20
|
+
configContents = addRoot(configContents, configPath);
|
|
21
|
+
return configContents;
|
|
22
|
+
}
|
|
23
|
+
function fixBuild(options, configContents, projectConfig, targetName, tree, projectName, configPath) {
|
|
24
|
+
var _tsquery_query;
|
|
25
|
+
const configNode = (0, _updateviteconfig.getConfigNode)(configContents);
|
|
26
|
+
if (!configNode) {
|
|
27
|
+
(0, _updateviteconfig.notFoundWarning)(configPath);
|
|
28
|
+
return configContents;
|
|
29
|
+
}
|
|
30
|
+
let outputPath = '';
|
|
31
|
+
// In vite.config.ts, we want to keep the path relative to workspace root
|
|
32
|
+
if (options.outputPath) {
|
|
33
|
+
outputPath = (0, _devkit.joinPathFragments)((0, _devkit.offsetFromRoot)(projectConfig.root), options.outputPath);
|
|
34
|
+
} else {
|
|
35
|
+
outputPath = (0, _devkit.joinPathFragments)((0, _devkit.offsetFromRoot)(projectConfig.root), 'dist', projectConfig.root);
|
|
36
|
+
}
|
|
37
|
+
// In project.json, we want to keep the path starting from workspace root
|
|
38
|
+
projectConfig.targets[targetName].options.outputPath = options.outputPath ? options.outputPath : (0, _devkit.joinPathFragments)('dist', projectConfig.root);
|
|
39
|
+
(0, _devkit.updateProjectConfiguration)(tree, projectName, projectConfig);
|
|
40
|
+
const buildObject = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="build"])`)) == null ? void 0 : _tsquery_query[0];
|
|
41
|
+
if (buildObject) {
|
|
42
|
+
var _tsquery_query1, _tsquery_query2, _tsquery_query3;
|
|
43
|
+
const reportCompressedSizeExists = ((_tsquery_query1 = _tsquery.tsquery.query(buildObject, `PropertyAssignment:has(Identifier[name="reportCompressedSize"])`)) == null ? void 0 : _tsquery_query1.length) > 0;
|
|
44
|
+
const commonjsOptionsExists = ((_tsquery_query2 = _tsquery.tsquery.query(buildObject, `PropertyAssignment:has(Identifier[name="commonjsOptions"])`)) == null ? void 0 : _tsquery_query2.length) > 0;
|
|
45
|
+
const buildOutDir = (_tsquery_query3 = _tsquery.tsquery.query(buildObject, `PropertyAssignment:has(Identifier[name="outDir"])`)) == null ? void 0 : _tsquery_query3.length;
|
|
46
|
+
// Array to store changes
|
|
47
|
+
let changes = [];
|
|
48
|
+
// Add outDir if not present
|
|
49
|
+
if (!buildOutDir) {
|
|
50
|
+
changes.push({
|
|
51
|
+
type: _devkit.ChangeType.Insert,
|
|
52
|
+
index: buildObject.getStart() + `build: {`.length + 1,
|
|
53
|
+
text: `outDir: '${outputPath}',`
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Add reportCompressedSize if not present
|
|
57
|
+
if (!reportCompressedSizeExists) {
|
|
58
|
+
changes.push({
|
|
59
|
+
type: _devkit.ChangeType.Insert,
|
|
60
|
+
index: buildObject.getStart() + `build: {`.length + 1,
|
|
61
|
+
text: `reportCompressedSize: true,`
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Add commonjsOptions if not present
|
|
65
|
+
if (!commonjsOptionsExists) {
|
|
66
|
+
changes.push({
|
|
67
|
+
type: _devkit.ChangeType.Insert,
|
|
68
|
+
index: buildObject.getStart() + `build: {`.length + 1,
|
|
69
|
+
text: `commonjsOptions: { transformMixedEsModules: true },`
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (changes.length > 0) {
|
|
73
|
+
return (0, _devkit.applyChangesToString)(configContents, changes);
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
return addBuildProperty(configContents, outputPath, configPath);
|
|
77
|
+
}
|
|
78
|
+
return configContents;
|
|
79
|
+
}
|
|
80
|
+
function addRoot(configFileContents, configPath) {
|
|
81
|
+
var _tsquery_query;
|
|
82
|
+
const configNode = (0, _updateviteconfig.getConfigNode)(configFileContents);
|
|
83
|
+
if (!configNode) {
|
|
84
|
+
(0, _updateviteconfig.notFoundWarning)(configPath);
|
|
85
|
+
return configFileContents;
|
|
86
|
+
}
|
|
87
|
+
const rootOption = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="root"]) Identifier[name="__dirname"]`)) == null ? void 0 : _tsquery_query[0];
|
|
88
|
+
if (rootOption) {
|
|
89
|
+
return configFileContents;
|
|
90
|
+
} else {
|
|
91
|
+
return (0, _devkit.applyChangesToString)(configFileContents, [
|
|
92
|
+
{
|
|
93
|
+
type: _devkit.ChangeType.Insert,
|
|
94
|
+
index: configNode.getStart() + 1,
|
|
95
|
+
text: `root: __dirname,`
|
|
96
|
+
}
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function addBuildProperty(configFileContents, outputPath, configPath) {
|
|
101
|
+
const configNode = (0, _updateviteconfig.getConfigNode)(configFileContents);
|
|
102
|
+
if (!configNode) {
|
|
103
|
+
(0, _updateviteconfig.notFoundWarning)(configPath);
|
|
104
|
+
return configFileContents;
|
|
105
|
+
}
|
|
106
|
+
return (0, _devkit.applyChangesToString)(configFileContents, [
|
|
107
|
+
{
|
|
108
|
+
type: _devkit.ChangeType.Insert,
|
|
109
|
+
index: configNode.getStart() + 1,
|
|
110
|
+
text: `build: {
|
|
111
|
+
outDir: '${outputPath}',
|
|
112
|
+
reportCompressedSize: true,
|
|
113
|
+
commonjsOptions: {
|
|
114
|
+
transformMixedEsModules: true,
|
|
115
|
+
},
|
|
116
|
+
},`
|
|
117
|
+
}
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=edit-build-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-2-0/lib/edit-build-config.ts"],"sourcesContent":["import {\n ChangeType,\n ProjectConfiguration,\n Tree,\n applyChangesToString,\n joinPathFragments,\n offsetFromRoot,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport ts = require('typescript');\nimport { getConfigNode, notFoundWarning } from '../update-vite-config';\n\nexport function updateBuildOutDirAndRoot(\n options: Record<string, any>,\n configContents: string,\n projectConfig: ProjectConfiguration,\n targetName: string,\n tree: Tree,\n projectName: string,\n configPath: string\n): string {\n const foundDefineConfig = tsquery.query(\n configContents,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n )?.[0];\n\n if (!foundDefineConfig) {\n notFoundWarning(configPath);\n return;\n }\n\n configContents = fixBuild(\n options,\n configContents,\n projectConfig,\n targetName,\n tree,\n projectName,\n configPath\n );\n\n configContents = addRoot(configContents, configPath);\n\n return configContents;\n}\n\nfunction fixBuild(\n options: Record<string, any>,\n configContents: string,\n projectConfig: ProjectConfiguration,\n targetName: string,\n tree: Tree,\n projectName: string,\n configPath: string\n) {\n const configNode = getConfigNode(configContents);\n if (!configNode) {\n notFoundWarning(configPath);\n return configContents;\n }\n\n let outputPath = '';\n\n // In vite.config.ts, we want to keep the path relative to workspace root\n if (options.outputPath) {\n outputPath = joinPathFragments(\n offsetFromRoot(projectConfig.root),\n options.outputPath\n );\n } else {\n outputPath = joinPathFragments(\n offsetFromRoot(projectConfig.root),\n 'dist',\n projectConfig.root\n );\n }\n\n // In project.json, we want to keep the path starting from workspace root\n projectConfig.targets[targetName].options.outputPath = options.outputPath\n ? options.outputPath\n : joinPathFragments('dist', projectConfig.root);\n updateProjectConfiguration(tree, projectName, projectConfig);\n\n const buildObject = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"build\"])`\n )?.[0];\n\n if (buildObject) {\n const reportCompressedSizeExists =\n tsquery.query(\n buildObject,\n `PropertyAssignment:has(Identifier[name=\"reportCompressedSize\"])`\n )?.length > 0;\n\n const commonjsOptionsExists =\n tsquery.query(\n buildObject,\n `PropertyAssignment:has(Identifier[name=\"commonjsOptions\"])`\n )?.length > 0;\n\n const buildOutDir = tsquery.query(\n buildObject,\n `PropertyAssignment:has(Identifier[name=\"outDir\"])`\n )?.length;\n\n // Array to store changes\n let changes = [];\n\n // Add outDir if not present\n if (!buildOutDir) {\n changes.push({\n type: ChangeType.Insert,\n index: buildObject.getStart() + `build: {`.length + 1,\n text: `outDir: '${outputPath}',`,\n });\n }\n\n // Add reportCompressedSize if not present\n if (!reportCompressedSizeExists) {\n changes.push({\n type: ChangeType.Insert,\n index: buildObject.getStart() + `build: {`.length + 1,\n text: `reportCompressedSize: true,`,\n });\n }\n\n // Add commonjsOptions if not present\n if (!commonjsOptionsExists) {\n changes.push({\n type: ChangeType.Insert,\n index: buildObject.getStart() + `build: {`.length + 1,\n text: `commonjsOptions: { transformMixedEsModules: true },`,\n });\n }\n\n if (changes.length > 0) {\n return applyChangesToString(configContents, changes);\n }\n } else {\n return addBuildProperty(configContents, outputPath, configPath);\n }\n\n return configContents;\n}\n\nfunction addRoot(configFileContents: string, configPath: string): string {\n const configNode = getConfigNode(configFileContents);\n\n if (!configNode) {\n notFoundWarning(configPath);\n return configFileContents;\n }\n\n const rootOption = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"root\"]) Identifier[name=\"__dirname\"]`\n )?.[0];\n\n if (rootOption) {\n return configFileContents;\n } else {\n return applyChangesToString(configFileContents, [\n {\n type: ChangeType.Insert,\n index: configNode.getStart() + 1,\n text: `root: __dirname,`,\n },\n ]);\n }\n}\n\nfunction addBuildProperty(\n configFileContents: string,\n outputPath: string,\n configPath: string\n): string {\n const configNode = getConfigNode(configFileContents);\n if (!configNode) {\n notFoundWarning(configPath);\n return configFileContents;\n }\n\n return applyChangesToString(configFileContents, [\n {\n type: ChangeType.Insert,\n index: configNode.getStart() + 1,\n text: `build: {\n outDir: '${outputPath}',\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n },`,\n },\n ]);\n}\n"],"names":["updateBuildOutDirAndRoot","ts","options","configContents","projectConfig","targetName","tree","projectName","configPath","tsquery","foundDefineConfig","query","notFoundWarning","fixBuild","addRoot","configNode","getConfigNode","outputPath","joinPathFragments","offsetFromRoot","root","targets","updateProjectConfiguration","buildObject","reportCompressedSizeExists","length","commonjsOptionsExists","buildOutDir","changes","push","type","ChangeType","Insert","index","getStart","text","applyChangesToString","addBuildProperty","configFileContents","rootOption"],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "updateTestConfig", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return updateTestConfig;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _devkit = require("@nx/devkit");
|
|
9
|
+
const _tsquery = require("@phenomnomnominal/tsquery");
|
|
10
|
+
const _updateviteconfig = require("../update-vite-config");
|
|
11
|
+
const ts = require("typescript");
|
|
12
|
+
function updateTestConfig(configContents, projectConfig, configPath) {
|
|
13
|
+
var _tsquery_query, _projectConfig_targets_test_options, _projectConfig_targets_test, _projectConfig_targets;
|
|
14
|
+
const configNode = (0, _updateviteconfig.getConfigNode)(configContents);
|
|
15
|
+
if (!configNode) {
|
|
16
|
+
(0, _updateviteconfig.notFoundWarning)(configPath);
|
|
17
|
+
return configContents;
|
|
18
|
+
}
|
|
19
|
+
const testObject = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"])`)) == null ? void 0 : _tsquery_query[0];
|
|
20
|
+
let testCoverageDir;
|
|
21
|
+
let testCoverage;
|
|
22
|
+
let provider;
|
|
23
|
+
let reporters;
|
|
24
|
+
if (testObject) {
|
|
25
|
+
var _tsquery_query1, _tsquery_query2;
|
|
26
|
+
testCoverage = (_tsquery_query1 = _tsquery.tsquery.query(testObject, `PropertyAssignment:has(Identifier[name="coverage"])`)) == null ? void 0 : _tsquery_query1[0];
|
|
27
|
+
reporters = (_tsquery_query2 = _tsquery.tsquery.query(testObject, `PropertyAssignment:has(Identifier[name="reporters"])`)) == null ? void 0 : _tsquery_query2[0];
|
|
28
|
+
if (testCoverage) {
|
|
29
|
+
var _tsquery_query3, _tsquery_query4;
|
|
30
|
+
testCoverageDir = (_tsquery_query3 = _tsquery.tsquery.query(testCoverage, `PropertyAssignment:has(Identifier[name="reportsDirectory"])`)) == null ? void 0 : _tsquery_query3[0];
|
|
31
|
+
provider = (_tsquery_query4 = _tsquery.tsquery.query(testCoverage, `PropertyAssignment:has(Identifier[name="provider"])`)) == null ? void 0 : _tsquery_query4[0];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
let coverageDir = '';
|
|
35
|
+
if ((_projectConfig_targets = projectConfig.targets) == null ? void 0 : (_projectConfig_targets_test = _projectConfig_targets.test) == null ? void 0 : (_projectConfig_targets_test_options = _projectConfig_targets_test.options) == null ? void 0 : _projectConfig_targets_test_options.reportsDirectory) {
|
|
36
|
+
var _projectConfig_targets_test_options1, _projectConfig_targets_test1, _projectConfig_targets1;
|
|
37
|
+
coverageDir = (_projectConfig_targets1 = projectConfig.targets) == null ? void 0 : (_projectConfig_targets_test1 = _projectConfig_targets1.test) == null ? void 0 : (_projectConfig_targets_test_options1 = _projectConfig_targets_test1.options) == null ? void 0 : _projectConfig_targets_test_options1.reportsDirectory;
|
|
38
|
+
} else {
|
|
39
|
+
coverageDir = (0, _devkit.joinPathFragments)((0, _devkit.offsetFromRoot)(projectConfig.root), 'coverage', projectConfig.root);
|
|
40
|
+
}
|
|
41
|
+
let changes = [];
|
|
42
|
+
if (!reporters && testObject) {
|
|
43
|
+
changes.push({
|
|
44
|
+
type: _devkit.ChangeType.Insert,
|
|
45
|
+
index: testObject.getStart() + `test: {`.length + 1,
|
|
46
|
+
text: `reporters: ['default'],`
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (testCoverageDir) {
|
|
50
|
+
// Do nothing
|
|
51
|
+
} else if (testCoverage) {
|
|
52
|
+
// has test.coverage, has no reportsDirectory
|
|
53
|
+
// so add reportsDirectory
|
|
54
|
+
changes.push({
|
|
55
|
+
type: _devkit.ChangeType.Insert,
|
|
56
|
+
index: testCoverage.getStart() + `coverage: {`.length + 1,
|
|
57
|
+
text: `reportsDirectory: '${coverageDir}',`
|
|
58
|
+
});
|
|
59
|
+
if (!provider) {
|
|
60
|
+
changes.push({
|
|
61
|
+
type: _devkit.ChangeType.Insert,
|
|
62
|
+
index: testCoverage.getStart() + `coverage: {`.length + 1,
|
|
63
|
+
text: `provider: 'v8',`
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
} else if (testObject) {
|
|
67
|
+
changes.push({
|
|
68
|
+
type: _devkit.ChangeType.Insert,
|
|
69
|
+
index: testObject.getStart() + `test: {`.length + 1,
|
|
70
|
+
text: `coverage: {
|
|
71
|
+
reportsDirectory: '${coverageDir}',
|
|
72
|
+
provider: 'v8',
|
|
73
|
+
},`
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (changes.length > 0) {
|
|
77
|
+
return (0, _devkit.applyChangesToString)(configContents, changes);
|
|
78
|
+
} else {
|
|
79
|
+
return configContents;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=edit-test-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts"],"sourcesContent":["import {\n ChangeType,\n ProjectConfiguration,\n applyChangesToString,\n joinPathFragments,\n offsetFromRoot,\n} from '@nx/devkit';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport ts = require('typescript');\nimport { getConfigNode, notFoundWarning } from '../update-vite-config';\n\nexport function updateTestConfig(\n configContents: string,\n projectConfig: ProjectConfiguration,\n configPath: string\n): string {\n const configNode = getConfigNode(configContents);\n if (!configNode) {\n notFoundWarning(configPath);\n return configContents;\n }\n\n const testObject = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"test\"])`\n )?.[0];\n let testCoverageDir: ts.Node;\n let testCoverage: ts.Node;\n let provider: ts.Node;\n let reporters: ts.Node;\n\n if (testObject) {\n testCoverage = tsquery.query(\n testObject,\n `PropertyAssignment:has(Identifier[name=\"coverage\"])`\n )?.[0];\n reporters = tsquery.query(\n testObject,\n `PropertyAssignment:has(Identifier[name=\"reporters\"])`\n )?.[0];\n if (testCoverage) {\n testCoverageDir = tsquery.query(\n testCoverage,\n `PropertyAssignment:has(Identifier[name=\"reportsDirectory\"])`\n )?.[0];\n provider = tsquery.query(\n testCoverage,\n `PropertyAssignment:has(Identifier[name=\"provider\"])`\n )?.[0];\n }\n }\n\n let coverageDir = '';\n\n if (projectConfig.targets?.test?.options?.reportsDirectory) {\n coverageDir = projectConfig.targets?.test?.options?.reportsDirectory;\n } else {\n coverageDir = joinPathFragments(\n offsetFromRoot(projectConfig.root),\n 'coverage',\n projectConfig.root\n );\n }\n\n let changes = [];\n\n if (!reporters && testObject) {\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `reporters: ['default'],`,\n });\n }\n\n if (testCoverageDir) {\n // Do nothing\n } else if (testCoverage) {\n // has test.coverage, has no reportsDirectory\n // so add reportsDirectory\n changes.push({\n type: ChangeType.Insert,\n index: testCoverage.getStart() + `coverage: {`.length + 1,\n text: `reportsDirectory: '${coverageDir}',`,\n });\n if (!provider) {\n changes.push({\n type: ChangeType.Insert,\n index: testCoverage.getStart() + `coverage: {`.length + 1,\n text: `provider: 'v8',`,\n });\n }\n } else if (testObject) {\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `coverage: {\n reportsDirectory: '${coverageDir}',\n provider: 'v8',\n },`,\n });\n }\n\n if (changes.length > 0) {\n return applyChangesToString(configContents, changes);\n } else {\n return configContents;\n }\n}\n"],"names":["updateTestConfig","ts","configContents","projectConfig","configPath","tsquery","configNode","getConfigNode","notFoundWarning","testObject","query","testCoverageDir","testCoverage","provider","reporters","coverageDir","targets","test","options","reportsDirectory","joinPathFragments","offsetFromRoot","root","changes","push","type","ChangeType","Insert","index","getStart","length","text","applyChangesToString"],"mappings":";+BAWgBA;;;eAAAA;;;wBALT;yBACiB;kCAEuB;AAD/C,MAAOC,aAAa;AAGb,SAASD,iBACdE,cAAsB,EACtBC,aAAmC,EACnCC,UAAkB;QAQCC,gBAgCfF,qCAAAA,6BAAAA;IAtCJ,MAAMG,aAAaC,IAAAA,+BAAa,EAACL;IACjC,IAAI,CAACI,YAAY;QACfE,IAAAA,iCAAe,EAACJ;QAChB,OAAOF;IACT;IAEA,MAAMO,cAAaJ,iBAAAA,gBAAO,CAACK,KAAK,CAC9BJ,YACA,CAAC,+CAA+C,CAAC,sBAFhCD,cAGhB,CAAC,EAAE;IACN,IAAIM;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,IAAIL,YAAY;YACCJ,iBAIHA;QAJZO,gBAAeP,kBAAAA,gBAAO,CAACK,KAAK,CAC1BD,YACA,CAAC,mDAAmD,CAAC,sBAFxCJ,eAGZ,CAAC,EAAE;QACNS,aAAYT,kBAAAA,gBAAO,CAACK,KAAK,CACvBD,YACA,CAAC,oDAAoD,CAAC,sBAF5CJ,eAGT,CAAC,EAAE;QACN,IAAIO,cAAc;gBACEP,iBAIPA;YAJXM,mBAAkBN,kBAAAA,gBAAO,CAACK,KAAK,CAC7BE,cACA,CAAC,2DAA2D,CAAC,sBAF7CP,eAGf,CAAC,EAAE;YACNQ,YAAWR,kBAAAA,gBAAO,CAACK,KAAK,CACtBE,cACA,CAAC,mDAAmD,CAAC,sBAF5CP,eAGR,CAAC,EAAE;QACR;IACF;IAEA,IAAIU,cAAc;IAElB,KAAIZ,yBAAAA,cAAca,OAAO,sBAArBb,8BAAAA,uBAAuBc,IAAI,sBAA3Bd,sCAAAA,4BAA6Be,OAAO,qBAApCf,oCAAsCgB,gBAAgB,EAAE;YAC5ChB,sCAAAA,8BAAAA;QAAdY,eAAcZ,0BAAAA,cAAca,OAAO,sBAArBb,+BAAAA,wBAAuBc,IAAI,sBAA3Bd,uCAAAA,6BAA6Be,OAAO,qBAApCf,qCAAsCgB,gBAAgB;IACtE,OAAO;QACLJ,cAAcK,IAAAA,yBAAiB,EAC7BC,IAAAA,sBAAc,EAAClB,cAAcmB,IAAI,GACjC,YACAnB,cAAcmB,IAAI;IAEtB;IAEA,IAAIC,UAAU,EAAE;IAEhB,IAAI,CAACT,aAAaL,YAAY;QAC5Bc,QAAQC,IAAI,CAAC;YACXC,MAAMC,kBAAU,CAACC,MAAM;YACvBC,OAAOnB,WAAWoB,QAAQ,KAAK,CAAC,OAAO,CAAC,CAACC,MAAM,GAAG;YAClDC,MAAM,CAAC,uBAAuB,CAAC;QACjC;IACF;IAEA,IAAIpB,iBAAiB;IACnB,aAAa;IACf,OAAO,IAAIC,cAAc;QACvB,6CAA6C;QAC7C,0BAA0B;QAC1BW,QAAQC,IAAI,CAAC;YACXC,MAAMC,kBAAU,CAACC,MAAM;YACvBC,OAAOhB,aAAaiB,QAAQ,KAAK,CAAC,WAAW,CAAC,CAACC,MAAM,GAAG;YACxDC,MAAM,CAAC,mBAAmB,EAAEhB,YAAY,EAAE,CAAC;QAC7C;QACA,IAAI,CAACF,UAAU;YACbU,QAAQC,IAAI,CAAC;gBACXC,MAAMC,kBAAU,CAACC,MAAM;gBACvBC,OAAOhB,aAAaiB,QAAQ,KAAK,CAAC,WAAW,CAAC,CAACC,MAAM,GAAG;gBACxDC,MAAM,CAAC,eAAe,CAAC;YACzB;QACF;IACF,OAAO,IAAItB,YAAY;QACrBc,QAAQC,IAAI,CAAC;YACXC,MAAMC,kBAAU,CAACC,MAAM;YACvBC,OAAOnB,WAAWoB,QAAQ,KAAK,CAAC,OAAO,CAAC,CAACC,MAAM,GAAG;YAClDC,MAAM,CAAC;6BACgB,EAAEhB,YAAY;;UAEjC,CAAC;QACP;IACF;IAEA,IAAIQ,QAAQO,MAAM,GAAG,GAAG;QACtB,OAAOE,IAAAA,4BAAoB,EAAC9B,gBAAgBqB;IAC9C,OAAO;QACL,OAAOrB;IACT;AACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import ts = require('typescript');
|
|
3
|
+
export default function updateBuildDir(tree: Tree): Promise<void>;
|
|
4
|
+
export declare function getConfigNode(configFileContents: string): ts.Node | undefined;
|
|
5
|
+
export declare function notFoundWarning(configPath: string): void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function _export(target, all) {
|
|
3
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: all[name]
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
_export(exports, {
|
|
9
|
+
default: function() {
|
|
10
|
+
return updateBuildDir;
|
|
11
|
+
},
|
|
12
|
+
getConfigNode: function() {
|
|
13
|
+
return getConfigNode;
|
|
14
|
+
},
|
|
15
|
+
notFoundWarning: function() {
|
|
16
|
+
return notFoundWarning;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _devkit = require("@nx/devkit");
|
|
20
|
+
const _executoroptionsutils = require("@nx/devkit/src/generators/executor-options-utils");
|
|
21
|
+
const _editbuildconfig = require("./lib/edit-build-config");
|
|
22
|
+
const _edittestconfig = require("./lib/edit-test-config");
|
|
23
|
+
const _addfilereplacements = require("./lib/add-file-replacements");
|
|
24
|
+
const _tsquery = require("@phenomnomnominal/tsquery");
|
|
25
|
+
const _findviteconfig = require("../../utils/find-vite-config");
|
|
26
|
+
const ts = require("typescript");
|
|
27
|
+
async function updateBuildDir(tree) {
|
|
28
|
+
const projects = (0, _devkit.getProjects)(tree);
|
|
29
|
+
(0, _executoroptionsutils.forEachExecutorOptions)(tree, '@nx/vite:build', (options, projectName, targetName)=>{
|
|
30
|
+
var _options_fileReplacements;
|
|
31
|
+
const projectConfig = projects.get(projectName);
|
|
32
|
+
const config = options.configFile || (0, _findviteconfig.findViteConfig)(tree, projectConfig.root);
|
|
33
|
+
if (!config || !tree.exists(config)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
let configContents = tree.read(config, 'utf-8');
|
|
37
|
+
configContents = (0, _editbuildconfig.updateBuildOutDirAndRoot)(options, configContents, projectConfig, targetName, tree, projectName, config);
|
|
38
|
+
configContents = (0, _edittestconfig.updateTestConfig)(configContents, projectConfig, config);
|
|
39
|
+
if (((_options_fileReplacements = options['fileReplacements']) == null ? void 0 : _options_fileReplacements.length) > 0) {
|
|
40
|
+
configContents = (0, _addfilereplacements.addFileReplacements)(configContents, options['fileReplacements'], config);
|
|
41
|
+
}
|
|
42
|
+
tree.write(config, configContents);
|
|
43
|
+
});
|
|
44
|
+
await (0, _devkit.formatFiles)(tree);
|
|
45
|
+
}
|
|
46
|
+
function getConfigNode(configFileContents) {
|
|
47
|
+
var _tsquery_query, _tsquery_query1;
|
|
48
|
+
if (!configFileContents) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
let configNode = (_tsquery_query = _tsquery.tsquery.query(configFileContents, `ObjectLiteralExpression`)) == null ? void 0 : _tsquery_query[0];
|
|
52
|
+
const arrowFunctionReturnStatement = (_tsquery_query1 = _tsquery.tsquery.query(configFileContents, `ArrowFunction Block ReturnStatement ObjectLiteralExpression`)) == null ? void 0 : _tsquery_query1[0];
|
|
53
|
+
if (arrowFunctionReturnStatement) {
|
|
54
|
+
configNode = arrowFunctionReturnStatement;
|
|
55
|
+
}
|
|
56
|
+
return configNode;
|
|
57
|
+
}
|
|
58
|
+
function notFoundWarning(configPath) {
|
|
59
|
+
_devkit.logger.warn(`
|
|
60
|
+
Could not migrate your ${configPath} file.
|
|
61
|
+
Please add the build.outDir and root options in your ${configPath} file.
|
|
62
|
+
You can find more information on how to configure vite for Nx here:
|
|
63
|
+
|
|
64
|
+
https://nx.dev/recipes/vite/configure-vite
|
|
65
|
+
`);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=update-vite-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-17-2-0/update-vite-config.ts"],"sourcesContent":["import {\n Tree,\n formatFiles,\n getProjects,\n joinPathFragments,\n logger,\n} from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { ViteBuildExecutorOptions } from '../../executors/build/schema';\nimport { updateBuildOutDirAndRoot } from './lib/edit-build-config';\nimport { updateTestConfig } from './lib/edit-test-config';\nimport { addFileReplacements } from './lib/add-file-replacements';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport ts = require('typescript');\nimport { findViteConfig } from '../../utils/find-vite-config';\n\nexport default async function updateBuildDir(tree: Tree) {\n const projects = getProjects(tree);\n forEachExecutorOptions<ViteBuildExecutorOptions>(\n tree,\n '@nx/vite:build',\n (options, projectName, targetName) => {\n const projectConfig = projects.get(projectName);\n const config =\n options.configFile || findViteConfig(tree, projectConfig.root);\n if (!config || !tree.exists(config)) {\n return;\n }\n let configContents = tree.read(config, 'utf-8');\n\n configContents = updateBuildOutDirAndRoot(\n options,\n configContents,\n projectConfig,\n targetName,\n tree,\n projectName,\n config\n );\n\n configContents = updateTestConfig(configContents, projectConfig, config);\n\n if (options['fileReplacements']?.length > 0) {\n configContents = addFileReplacements(\n configContents,\n options['fileReplacements'],\n config\n );\n }\n\n tree.write(config, configContents);\n }\n );\n\n await formatFiles(tree);\n}\n\nexport function getConfigNode(configFileContents: string): ts.Node | undefined {\n if (!configFileContents) {\n return;\n }\n let configNode = tsquery.query(\n configFileContents,\n `ObjectLiteralExpression`\n )?.[0];\n\n const arrowFunctionReturnStatement = tsquery.query(\n configFileContents,\n `ArrowFunction Block ReturnStatement ObjectLiteralExpression`\n )?.[0];\n\n if (arrowFunctionReturnStatement) {\n configNode = arrowFunctionReturnStatement;\n }\n\n return configNode;\n}\n\nexport function notFoundWarning(configPath: string) {\n logger.warn(`\n Could not migrate your ${configPath} file.\n Please add the build.outDir and root options in your ${configPath} file.\n You can find more information on how to configure vite for Nx here:\n \n https://nx.dev/recipes/vite/configure-vite\n `);\n}\n"],"names":["updateBuildDir","getConfigNode","notFoundWarning","ts","tree","projects","getProjects","forEachExecutorOptions","options","projectName","targetName","projectConfig","get","config","configFile","findViteConfig","root","exists","configContents","read","updateBuildOutDirAndRoot","updateTestConfig","length","addFileReplacements","write","formatFiles","configFileContents","tsquery","configNode","query","arrowFunctionReturnStatement","configPath","logger","warn"],"mappings":";;;;;;;;IAgBA,OAuCC;eAvC6BA;;IAyCdC,aAAa;eAAbA;;IAqBAC,eAAe;eAAfA;;;wBAxET;sCACgC;iCAEE;gCACR;qCACG;yBACZ;gCAEO;AAD/B,MAAOC,aAAa;AAGL,eAAeH,eAAeI,IAAU;IACrD,MAAMC,WAAWC,IAAAA,mBAAW,EAACF;IAC7BG,IAAAA,4CAAsB,EACpBH,MACA,kBACA,CAACI,SAASC,aAAaC;YAqBjBF;QApBJ,MAAMG,gBAAgBN,SAASO,GAAG,CAACH;QACnC,MAAMI,SACJL,QAAQM,UAAU,IAAIC,IAAAA,8BAAc,EAACX,MAAMO,cAAcK,IAAI;QAC/D,IAAI,CAACH,UAAU,CAACT,KAAKa,MAAM,CAACJ,SAAS;YACnC;QACF;QACA,IAAIK,iBAAiBd,KAAKe,IAAI,CAACN,QAAQ;QAEvCK,iBAAiBE,IAAAA,yCAAwB,EACvCZ,SACAU,gBACAP,eACAD,YACAN,MACAK,aACAI;QAGFK,iBAAiBG,IAAAA,gCAAgB,EAACH,gBAAgBP,eAAeE;QAEjE,IAAIL,EAAAA,4BAAAA,OAAO,CAAC,mBAAmB,qBAA3BA,0BAA6Bc,MAAM,IAAG,GAAG;YAC3CJ,iBAAiBK,IAAAA,wCAAmB,EAClCL,gBACAV,OAAO,CAAC,mBAAmB,EAC3BK;QAEJ;QAEAT,KAAKoB,KAAK,CAACX,QAAQK;IACrB;IAGF,MAAMO,IAAAA,mBAAW,EAACrB;AACpB;AAEO,SAASH,cAAcyB,kBAA0B;QAIrCC,gBAKoBA;IARrC,IAAI,CAACD,oBAAoB;QACvB;IACF;IACA,IAAIE,cAAaD,iBAAAA,gBAAO,CAACE,KAAK,CAC5BH,oBACA,CAAC,uBAAuB,CAAC,sBAFVC,cAGd,CAAC,EAAE;IAEN,MAAMG,gCAA+BH,kBAAAA,gBAAO,CAACE,KAAK,CAChDH,oBACA,CAAC,2DAA2D,CAAC,sBAF1BC,eAGlC,CAAC,EAAE;IAEN,IAAIG,8BAA8B;QAChCF,aAAaE;IACf;IAEA,OAAOF;AACT;AAEO,SAAS1B,gBAAgB6B,UAAkB;IAChDC,cAAM,CAACC,IAAI,CAAC,CAAC;yBACU,EAAEF,WAAW;uDACiB,EAAEA,WAAW;;;;EAIlE,CAAC;AACH"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function _export(target, all) {
|
|
3
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: all[name]
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
_export(exports, {
|
|
9
|
+
fixCoverageAndRerporters: function() {
|
|
10
|
+
return fixCoverageAndRerporters;
|
|
11
|
+
},
|
|
12
|
+
getConfigNode: function() {
|
|
13
|
+
return getConfigNode;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const _devkit = require("@nx/devkit");
|
|
17
|
+
const _tsquery = require("@phenomnomnominal/tsquery");
|
|
18
|
+
const ts = require("typescript");
|
|
19
|
+
function fixCoverageAndRerporters(configContents) {
|
|
20
|
+
var _tsquery_query, _tsquery_query1;
|
|
21
|
+
const configNode = getConfigNode(configContents);
|
|
22
|
+
if (!configNode) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const testHasCoverage = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"]):has(PropertyAssignment:has(Identifier[name="coverage"]))`)) == null ? void 0 : _tsquery_query[0];
|
|
26
|
+
let changes = [];
|
|
27
|
+
if (testHasCoverage) {
|
|
28
|
+
var _tsquery_query2, _tsquery_query3, _tsquery_query4, _tsquery_query5, _tsquery_query6;
|
|
29
|
+
const testObjectLiteralExpressionNode = (_tsquery_query2 = _tsquery.tsquery.query(testHasCoverage, `ObjectLiteralExpression:has(Identifier[name="coverage"])`)) == null ? void 0 : _tsquery_query2[0];
|
|
30
|
+
const coverageNode = findCoverageNode(testObjectLiteralExpressionNode);
|
|
31
|
+
if (!coverageNode) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const linesNode = (_tsquery_query3 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="lines"])`)) == null ? void 0 : _tsquery_query3[0];
|
|
35
|
+
const statementsNode = (_tsquery_query4 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="statements"])`)) == null ? void 0 : _tsquery_query4[0];
|
|
36
|
+
const functionsNode = (_tsquery_query5 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="functions"])`)) == null ? void 0 : _tsquery_query5[0];
|
|
37
|
+
const branchesNode = (_tsquery_query6 = _tsquery.tsquery.query(coverageNode, `PropertyAssignment:has(Identifier[name="branches"])`)) == null ? void 0 : _tsquery_query6[0];
|
|
38
|
+
if (linesNode) {
|
|
39
|
+
changes.push({
|
|
40
|
+
type: _devkit.ChangeType.Delete,
|
|
41
|
+
start: linesNode.getStart(),
|
|
42
|
+
length: linesNode.getWidth() + 1
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (statementsNode) {
|
|
46
|
+
changes.push({
|
|
47
|
+
type: _devkit.ChangeType.Delete,
|
|
48
|
+
start: statementsNode.getStart(),
|
|
49
|
+
length: statementsNode.getWidth() + 1
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (functionsNode) {
|
|
53
|
+
changes.push({
|
|
54
|
+
type: _devkit.ChangeType.Delete,
|
|
55
|
+
start: functionsNode.getStart(),
|
|
56
|
+
length: functionsNode.getWidth() + 1
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (branchesNode) {
|
|
60
|
+
changes.push({
|
|
61
|
+
type: _devkit.ChangeType.Delete,
|
|
62
|
+
start: branchesNode.getStart(),
|
|
63
|
+
length: branchesNode.getWidth() + 1
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (branchesNode || functionsNode || statementsNode || linesNode) {
|
|
67
|
+
changes.push({
|
|
68
|
+
type: _devkit.ChangeType.Insert,
|
|
69
|
+
index: coverageNode.getStart() + 1,
|
|
70
|
+
text: `thresholds: {
|
|
71
|
+
${linesNode ? linesNode.getText() + ',' : ''}
|
|
72
|
+
${statementsNode ? statementsNode.getText() + ',' : ''}
|
|
73
|
+
${functionsNode ? functionsNode.getText() + ',' : ''}
|
|
74
|
+
${branchesNode ? branchesNode.getText() + ',' : ''}
|
|
75
|
+
},`
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const testHasReporters = (_tsquery_query1 = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"]):has(PropertyAssignment:has(Identifier[name="reporters"]))`)) == null ? void 0 : _tsquery_query1[0];
|
|
80
|
+
if (!testHasReporters) {
|
|
81
|
+
var _tsquery_query7;
|
|
82
|
+
const testObject = (_tsquery_query7 = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"])`)) == null ? void 0 : _tsquery_query7[0];
|
|
83
|
+
changes.push({
|
|
84
|
+
type: _devkit.ChangeType.Insert,
|
|
85
|
+
index: testObject.getStart() + `test: {`.length + 1,
|
|
86
|
+
text: `reporters: ['default'],`
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (changes.length > 0) {
|
|
90
|
+
return (0, _devkit.applyChangesToString)(configContents, changes);
|
|
91
|
+
} else {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function getConfigNode(configFileContents) {
|
|
96
|
+
var _tsquery_query, _tsquery_query1;
|
|
97
|
+
if (!configFileContents) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
let configNode = (_tsquery_query = _tsquery.tsquery.query(configFileContents, `ObjectLiteralExpression`)) == null ? void 0 : _tsquery_query[0];
|
|
101
|
+
const arrowFunctionReturnStatement = (_tsquery_query1 = _tsquery.tsquery.query(configFileContents, `ArrowFunction Block ReturnStatement ObjectLiteralExpression`)) == null ? void 0 : _tsquery_query1[0];
|
|
102
|
+
if (arrowFunctionReturnStatement) {
|
|
103
|
+
configNode = arrowFunctionReturnStatement;
|
|
104
|
+
}
|
|
105
|
+
return configNode;
|
|
106
|
+
}
|
|
107
|
+
function findCoverageNode(testNode) {
|
|
108
|
+
let coverageNode;
|
|
109
|
+
testNode.forEachChild((child)=>{
|
|
110
|
+
if (ts.isPropertyAssignment(child) && child.name.getText() === 'coverage') {
|
|
111
|
+
coverageNode = child.initializer;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return coverageNode;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=fix-coverage-and-reporters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/vite/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.ts"],"sourcesContent":["import { ChangeType, applyChangesToString } from '@nx/devkit';\nimport { tsquery } from '@phenomnomnominal/tsquery';\nimport ts = require('typescript');\n\nexport function fixCoverageAndRerporters(\n configContents: string\n): string | undefined {\n const configNode = getConfigNode(configContents);\n if (!configNode) {\n return;\n }\n\n const testHasCoverage = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"test\"]):has(PropertyAssignment:has(Identifier[name=\"coverage\"]))`\n )?.[0];\n let changes = [];\n\n if (testHasCoverage) {\n const testObjectLiteralExpressionNode = tsquery.query(\n testHasCoverage,\n `ObjectLiteralExpression:has(Identifier[name=\"coverage\"])`\n )?.[0];\n const coverageNode = findCoverageNode(testObjectLiteralExpressionNode);\n\n if (!coverageNode) {\n return;\n }\n\n const linesNode = tsquery.query(\n coverageNode,\n `PropertyAssignment:has(Identifier[name=\"lines\"])`\n )?.[0];\n\n const statementsNode = tsquery.query(\n coverageNode,\n `PropertyAssignment:has(Identifier[name=\"statements\"])`\n )?.[0];\n\n const functionsNode = tsquery.query(\n coverageNode,\n `PropertyAssignment:has(Identifier[name=\"functions\"])`\n )?.[0];\n\n const branchesNode = tsquery.query(\n coverageNode,\n `PropertyAssignment:has(Identifier[name=\"branches\"])`\n )?.[0];\n\n if (linesNode) {\n changes.push({\n type: ChangeType.Delete,\n start: linesNode.getStart(),\n length: linesNode.getWidth() + 1,\n });\n }\n if (statementsNode) {\n changes.push({\n type: ChangeType.Delete,\n start: statementsNode.getStart(),\n length: statementsNode.getWidth() + 1,\n });\n }\n\n if (functionsNode) {\n changes.push({\n type: ChangeType.Delete,\n start: functionsNode.getStart(),\n length: functionsNode.getWidth() + 1,\n });\n }\n\n if (branchesNode) {\n changes.push({\n type: ChangeType.Delete,\n start: branchesNode.getStart(),\n length: branchesNode.getWidth() + 1,\n });\n }\n\n if (branchesNode || functionsNode || statementsNode || linesNode) {\n changes.push({\n type: ChangeType.Insert,\n index: coverageNode.getStart() + 1,\n text: `thresholds: {\n ${linesNode ? linesNode.getText() + ',' : ''}\n ${statementsNode ? statementsNode.getText() + ',' : ''}\n ${functionsNode ? functionsNode.getText() + ',' : ''}\n ${branchesNode ? branchesNode.getText() + ',' : ''}\n },`,\n });\n }\n }\n\n const testHasReporters = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"test\"]):has(PropertyAssignment:has(Identifier[name=\"reporters\"]))`\n )?.[0];\n\n if (!testHasReporters) {\n const testObject = tsquery.query(\n configNode,\n `PropertyAssignment:has(Identifier[name=\"test\"])`\n )?.[0];\n changes.push({\n type: ChangeType.Insert,\n index: testObject.getStart() + `test: {`.length + 1,\n text: `reporters: ['default'],`,\n });\n }\n\n if (changes.length > 0) {\n return applyChangesToString(configContents, changes);\n } else {\n return;\n }\n}\n\nexport function getConfigNode(configFileContents: string): ts.Node | undefined {\n if (!configFileContents) {\n return;\n }\n let configNode = tsquery.query(\n configFileContents,\n `ObjectLiteralExpression`\n )?.[0];\n\n const arrowFunctionReturnStatement = tsquery.query(\n configFileContents,\n `ArrowFunction Block ReturnStatement ObjectLiteralExpression`\n )?.[0];\n\n if (arrowFunctionReturnStatement) {\n configNode = arrowFunctionReturnStatement;\n }\n\n return configNode;\n}\n\nfunction findCoverageNode(testNode: ts.Node) {\n let coverageNode: ts.Node | undefined;\n testNode.forEachChild((child) => {\n if (ts.isPropertyAssignment(child) && child.name.getText() === 'coverage') {\n coverageNode = child.initializer;\n }\n });\n return coverageNode;\n}\n"],"names":["fixCoverageAndRerporters","getConfigNode","ts","configContents","tsquery","configNode","testHasCoverage","query","changes","testObjectLiteralExpressionNode","coverageNode","findCoverageNode","linesNode","statementsNode","functionsNode","branchesNode","push","type","ChangeType","Delete","start","getStart","length","getWidth","Insert","index","text","getText","testHasReporters","testObject","applyChangesToString","configFileContents","arrowFunctionReturnStatement","testNode","forEachChild","child","isPropertyAssignment","name","initializer"],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "default", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return fixCoverageThreshold;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _devkit = require("@nx/devkit");
|
|
9
|
+
const _executoroptionsutils = require("@nx/devkit/src/generators/executor-options-utils");
|
|
10
|
+
const _fixcoverageandreporters = require("./lib/fix-coverage-and-reporters");
|
|
11
|
+
async function fixCoverageThreshold(tree) {
|
|
12
|
+
const projects = (0, _devkit.getProjects)(tree);
|
|
13
|
+
(0, _executoroptionsutils.forEachExecutorOptions)(tree, '@nx/vite:test', (_options, projectName)=>{
|
|
14
|
+
const projectConfig = projects.get(projectName);
|
|
15
|
+
const configPath = findViteConfig(tree, projectConfig.root);
|
|
16
|
+
if (!configPath || !tree.exists(configPath)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const configContents = tree.read(configPath, 'utf-8');
|
|
20
|
+
const updatedConfigContents = (0, _fixcoverageandreporters.fixCoverageAndRerporters)(configContents);
|
|
21
|
+
if (updatedConfigContents) {
|
|
22
|
+
tree.write(configPath, updatedConfigContents);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
await (0, _devkit.formatFiles)(tree);
|
|
26
|
+
}
|
|
27
|
+
function findViteConfig(tree, searchRoot) {
|
|
28
|
+
const allowsExt = [
|
|
29
|
+
'js',
|
|
30
|
+
'mjs',
|
|
31
|
+
'ts',
|
|
32
|
+
'cjs',
|
|
33
|
+
'mts',
|
|
34
|
+
'cts'
|
|
35
|
+
];
|
|
36
|
+
for (const ext of allowsExt){
|
|
37
|
+
if (tree.exists((0, _devkit.joinPathFragments)(searchRoot, `vite.config.${ext}`))) {
|
|
38
|
+
return (0, _devkit.joinPathFragments)(searchRoot, `vite.config.${ext}`);
|
|
39
|
+
} else if (tree.exists((0, _devkit.joinPathFragments)(searchRoot, `vitest.config.${ext}`))) {
|
|
40
|
+
return (0, _devkit.joinPathFragments)(searchRoot, `vitest.config.${ext}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=vitest-coverage-and-reporters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.ts"],"sourcesContent":["import {\n ProjectConfiguration,\n Tree,\n formatFiles,\n getProjects,\n joinPathFragments,\n} from '@nx/devkit';\nimport { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils';\nimport { fixCoverageAndRerporters } from './lib/fix-coverage-and-reporters';\n\nexport default async function fixCoverageThreshold(tree: Tree) {\n const projects = getProjects(tree);\n forEachExecutorOptions(tree, '@nx/vite:test', (_options, projectName) => {\n const projectConfig: ProjectConfiguration = projects.get(\n projectName\n ) as ProjectConfiguration;\n const configPath = findViteConfig(tree, projectConfig.root);\n if (!configPath || !tree.exists(configPath)) {\n return;\n }\n const configContents = tree.read(configPath, 'utf-8') as string;\n const updatedConfigContents = fixCoverageAndRerporters(configContents);\n if (updatedConfigContents) {\n tree.write(configPath, updatedConfigContents);\n }\n });\n\n await formatFiles(tree);\n}\n\nfunction findViteConfig(tree: Tree, searchRoot: string) {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (tree.exists(joinPathFragments(searchRoot, `vite.config.${ext}`))) {\n return joinPathFragments(searchRoot, `vite.config.${ext}`);\n } else if (\n tree.exists(joinPathFragments(searchRoot, `vitest.config.${ext}`))\n ) {\n return joinPathFragments(searchRoot, `vitest.config.${ext}`);\n }\n }\n}\n"],"names":["fixCoverageThreshold","tree","projects","getProjects","forEachExecutorOptions","_options","projectName","projectConfig","get","configPath","findViteConfig","root","exists","configContents","read","updatedConfigContents","fixCoverageAndRerporters","write","formatFiles","searchRoot","allowsExt","ext","joinPathFragments"],"mappings":";+BAUA;;;eAA8BA;;;wBAJvB;sCACgC;yCACE;AAE1B,eAAeA,qBAAqBC,IAAU;IAC3D,MAAMC,WAAWC,IAAAA,mBAAW,EAACF;IAC7BG,IAAAA,4CAAsB,EAACH,MAAM,iBAAiB,CAACI,UAAUC;QACvD,MAAMC,gBAAsCL,SAASM,GAAG,CACtDF;QAEF,MAAMG,aAAaC,eAAeT,MAAMM,cAAcI,IAAI;QAC1D,IAAI,CAACF,cAAc,CAACR,KAAKW,MAAM,CAACH,aAAa;YAC3C;QACF;QACA,MAAMI,iBAAiBZ,KAAKa,IAAI,CAACL,YAAY;QAC7C,MAAMM,wBAAwBC,IAAAA,iDAAwB,EAACH;QACvD,IAAIE,uBAAuB;YACzBd,KAAKgB,KAAK,CAACR,YAAYM;QACzB;IACF;IAEA,MAAMG,IAAAA,mBAAW,EAACjB;AACpB;AAEA,SAASS,eAAeT,IAAU,EAAEkB,UAAkB;IACpD,MAAMC,YAAY;QAAC;QAAM;QAAO;QAAM;QAAO;QAAO;KAAM;IAE1D,KAAK,MAAMC,OAAOD,UAAW;QAC3B,IAAInB,KAAKW,MAAM,CAACU,IAAAA,yBAAiB,EAACH,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC,IAAI;YACpE,OAAOC,IAAAA,yBAAiB,EAACH,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC;QAC3D,OAAO,IACLpB,KAAKW,MAAM,CAACU,IAAAA,yBAAiB,EAACH,YAAY,CAAC,cAAc,EAAEE,IAAI,CAAC,IAChE;YACA,OAAOC,IAAAA,yBAAiB,EAACH,YAAY,CAAC,cAAc,EAAEE,IAAI,CAAC;QAC7D;IACF;AACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CreateDependencies, CreateNodes } from '@nx/devkit';
|
|
2
|
+
export interface VitePluginOptions {
|
|
3
|
+
buildTargetName?: string;
|
|
4
|
+
testTargetName?: string;
|
|
5
|
+
serveTargetName?: string;
|
|
6
|
+
previewTargetName?: string;
|
|
7
|
+
serveStaticTargetName?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const createDependencies: CreateDependencies;
|
|
10
|
+
export declare const createNodes: CreateNodes<VitePluginOptions>;
|