@nx/vite 0.0.0-pr-22179-271588f
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 +22 -0
- package/README.md +68 -0
- package/executors.d.ts +8 -0
- package/executors.js +27 -0
- package/executors.js.map +1 -0
- package/executors.json +46 -0
- package/generators.json +25 -0
- package/index.d.ts +8 -0
- package/index.js +26 -0
- package/index.js.map +1 -0
- package/migrations.json +253 -0
- package/package.json +62 -0
- package/plugin.d.ts +1 -0
- package/plugin.js +21 -0
- package/plugin.js.map +1 -0
- package/plugins/nx-tsconfig-paths.plugin.d.ts +24 -0
- package/plugins/nx-tsconfig-paths.plugin.js +132 -0
- package/plugins/nx-tsconfig-paths.plugin.js.map +1 -0
- package/plugins/rollup-replace-files.plugin.d.ts +16 -0
- package/plugins/rollup-replace-files.plugin.js +51 -0
- package/plugins/rollup-replace-files.plugin.js.map +1 -0
- package/src/executors/build/build.impl.d.ts +13 -0
- package/src/executors/build/build.impl.js +187 -0
- package/src/executors/build/build.impl.js.map +1 -0
- package/src/executors/build/compat.d.ts +2 -0
- package/src/executors/build/compat.js +12 -0
- package/src/executors/build/compat.js.map +1 -0
- package/src/executors/build/schema.d.js +3 -0
- package/src/executors/build/schema.d.js.map +1 -0
- package/src/executors/build/schema.d.ts +10 -0
- package/src/executors/build/schema.json +67 -0
- package/src/executors/dev-server/compat.d.ts +2 -0
- package/src/executors/dev-server/compat.js +12 -0
- package/src/executors/dev-server/compat.js.map +1 -0
- package/src/executors/dev-server/dev-server.impl.d.ts +7 -0
- package/src/executors/dev-server/dev-server.impl.js +136 -0
- package/src/executors/dev-server/dev-server.impl.js.map +1 -0
- package/src/executors/dev-server/schema.d.js +3 -0
- package/src/executors/dev-server/schema.d.js.map +1 -0
- package/src/executors/dev-server/schema.d.ts +5 -0
- package/src/executors/dev-server/schema.json +38 -0
- package/src/executors/preview-server/compat.d.ts +2 -0
- package/src/executors/preview-server/compat.js +12 -0
- package/src/executors/preview-server/compat.js.map +1 -0
- package/src/executors/preview-server/preview-server.impl.d.ts +7 -0
- package/src/executors/preview-server/preview-server.impl.js +176 -0
- package/src/executors/preview-server/preview-server.impl.js.map +1 -0
- package/src/executors/preview-server/schema.d.js +3 -0
- package/src/executors/preview-server/schema.d.js.map +1 -0
- package/src/executors/preview-server/schema.d.ts +5 -0
- package/src/executors/preview-server/schema.json +37 -0
- package/src/executors/test/compat.d.ts +2 -0
- package/src/executors/test/compat.js +12 -0
- package/src/executors/test/compat.js.map +1 -0
- 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.js +3 -0
- package/src/executors/test/schema.d.js.map +1 -0
- package/src/executors/test/schema.d.ts +7 -0
- package/src/executors/test/schema.json +36 -0
- package/src/executors/test/vitest.impl.d.ts +6 -0
- package/src/executors/test/vitest.impl.js +67 -0
- package/src/executors/test/vitest.impl.js.map +1 -0
- package/src/generators/configuration/configuration.d.ts +5 -0
- package/src/generators/configuration/configuration.js +147 -0
- package/src/generators/configuration/configuration.js.map +1 -0
- 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.js +3 -0
- package/src/generators/configuration/schema.d.js.map +1 -0
- package/src/generators/configuration/schema.d.ts +12 -0
- package/src/generators/configuration/schema.json +61 -0
- package/src/generators/init/init.d.ts +6 -0
- package/src/generators/init/init.js +82 -0
- package/src/generators/init/init.js.map +1 -0
- 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.js +3 -0
- package/src/generators/init/schema.d.js.map +1 -0
- package/src/generators/init/schema.d.ts +7 -0
- package/src/generators/init/schema.json +31 -0
- package/src/generators/vitest/files/tsconfig.spec.json__tmpl__ +20 -0
- package/src/generators/vitest/schema.d.js +3 -0
- package/src/generators/vitest/schema.d.js.map +1 -0
- package/src/generators/vitest/schema.d.ts +11 -0
- package/src/generators/vitest/schema.json +56 -0
- package/src/generators/vitest/vitest-generator.d.ts +5 -0
- package/src/generators/vitest/vitest-generator.js +187 -0
- package/src/generators/vitest/vitest-generator.js.map +1 -0
- package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.d.ts +3 -0
- package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js +67 -0
- package/src/migrations/update-15-3-1/update-vite-tsconfig-paths.js.map +1 -0
- package/src/migrations/update-15-3-4/set-mode-in-configuration.d.ts +3 -0
- package/src/migrations/update-15-3-4/set-mode-in-configuration.js +37 -0
- package/src/migrations/update-15-3-4/set-mode-in-configuration.js.map +1 -0
- package/src/migrations/update-15-4-3/update-report-directory.d.ts +3 -0
- package/src/migrations/update-15-4-3/update-report-directory.js +39 -0
- package/src/migrations/update-15-4-3/update-report-directory.js.map +1 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +15 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js.map +1 -0
- package/src/migrations/update-16-4-1-update-test-file-config/update-16-4-1-test-file-config.d.ts +2 -0
- package/src/migrations/update-16-4-1-update-test-file-config/update-16-4-1-test-file-config.js +35 -0
- package/src/migrations/update-16-4-1-update-test-file-config/update-16-4-1-test-file-config.js.map +1 -0
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.d.ts +2 -0
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js +39 -0
- package/src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin.js.map +1 -0
- 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 +223 -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 +11 -0
- package/src/utils/executor-utils.js +59 -0
- package/src/utils/executor-utils.js.map +1 -0
- 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 +42 -0
- package/src/utils/generator-utils.js +527 -0
- package/src/utils/generator-utils.js.map +1 -0
- package/src/utils/options-utils.d.ts +17 -0
- package/src/utils/options-utils.js +100 -0
- package/src/utils/options-utils.js.map +1 -0
- package/src/utils/test-files/angular-project.config.json +89 -0
- package/src/utils/test-files/react-lib-non-buildable-jest.json +22 -0
- package/src/utils/test-files/react-lib-non-buildable-vitest.json +22 -0
- package/src/utils/test-files/react-mixed-project.config.json +47 -0
- package/src/utils/test-files/react-vite-project.config.json +54 -0
- package/src/utils/test-files/test-vite-configs.d.ts +31 -0
- package/src/utils/test-files/test-vite-configs.js +291 -0
- package/src/utils/test-files/test-vite-configs.js.map +1 -0
- package/src/utils/test-files/unknown-project.config.json +69 -0
- package/src/utils/test-utils.d.ts +9 -0
- package/src/utils/test-utils.js +522 -0
- package/src/utils/test-utils.js.map +1 -0
- package/src/utils/versions.d.ts +11 -0
- package/src/utils/versions.js +55 -0
- package/src/utils/versions.js.map +1 -0
- package/src/utils/vite-config-edit-utils.d.ts +3 -0
- package/src/utils/vite-config-edit-utils.js +314 -0
- package/src/utils/vite-config-edit-utils.js.map +1 -0
|
@@ -0,0 +1,527 @@
|
|
|
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
|
+
findExistingJsBuildTargetInProject: function() {
|
|
10
|
+
return findExistingJsBuildTargetInProject;
|
|
11
|
+
},
|
|
12
|
+
addOrChangeTestTarget: function() {
|
|
13
|
+
return addOrChangeTestTarget;
|
|
14
|
+
},
|
|
15
|
+
addBuildTarget: function() {
|
|
16
|
+
return addBuildTarget;
|
|
17
|
+
},
|
|
18
|
+
addServeTarget: function() {
|
|
19
|
+
return addServeTarget;
|
|
20
|
+
},
|
|
21
|
+
addPreviewTarget: function() {
|
|
22
|
+
return addPreviewTarget;
|
|
23
|
+
},
|
|
24
|
+
editTsConfig: function() {
|
|
25
|
+
return editTsConfig;
|
|
26
|
+
},
|
|
27
|
+
deleteWebpackConfig: function() {
|
|
28
|
+
return deleteWebpackConfig;
|
|
29
|
+
},
|
|
30
|
+
moveAndEditIndexHtml: function() {
|
|
31
|
+
return moveAndEditIndexHtml;
|
|
32
|
+
},
|
|
33
|
+
createOrEditViteConfig: function() {
|
|
34
|
+
return createOrEditViteConfig;
|
|
35
|
+
},
|
|
36
|
+
normalizeViteConfigFilePathWithTree: function() {
|
|
37
|
+
return normalizeViteConfigFilePathWithTree;
|
|
38
|
+
},
|
|
39
|
+
getViteConfigPathForProject: function() {
|
|
40
|
+
return getViteConfigPathForProject;
|
|
41
|
+
},
|
|
42
|
+
handleUnsupportedUserProvidedTargets: function() {
|
|
43
|
+
return handleUnsupportedUserProvidedTargets;
|
|
44
|
+
},
|
|
45
|
+
handleUnknownConfiguration: function() {
|
|
46
|
+
return handleUnknownConfiguration;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const _devkit = require("@nx/devkit");
|
|
50
|
+
const _viteconfigeditutils = require("./vite-config-edit-utils");
|
|
51
|
+
const _addbuildtargetdefaults = require("@nx/devkit/src/generators/add-build-target-defaults");
|
|
52
|
+
function findExistingJsBuildTargetInProject(targets) {
|
|
53
|
+
const output = {};
|
|
54
|
+
const supportedExecutors = {
|
|
55
|
+
build: [
|
|
56
|
+
'@nx/js:babel',
|
|
57
|
+
'@nx/js:swc',
|
|
58
|
+
'@nx/rollup:rollup'
|
|
59
|
+
]
|
|
60
|
+
};
|
|
61
|
+
const unsupportedExecutors = [
|
|
62
|
+
'@nx/angular:ng-packagr-lite',
|
|
63
|
+
'@nx/angular:package',
|
|
64
|
+
'@nx/angular:webpack-browser',
|
|
65
|
+
'@nx/esbuild:esbuild',
|
|
66
|
+
'@nx/react-native:run-ios',
|
|
67
|
+
'@nx/react-native:start',
|
|
68
|
+
'@nx/react-native:run-android',
|
|
69
|
+
'@nx/react-native:bundle',
|
|
70
|
+
'@nx/react-native:build-android',
|
|
71
|
+
'@nx/react-native:bundle',
|
|
72
|
+
'@nx/next:build',
|
|
73
|
+
'@nx/js:tsc',
|
|
74
|
+
'@nrwl/angular:ng-packagr-lite',
|
|
75
|
+
'@nrwl/angular:package',
|
|
76
|
+
'@nrwl/angular:webpack-browser',
|
|
77
|
+
'@nrwl/esbuild:esbuild',
|
|
78
|
+
'@nrwl/react-native:run-ios',
|
|
79
|
+
'@nrwl/react-native:start',
|
|
80
|
+
'@nrwl/react-native:run-android',
|
|
81
|
+
'@nrwl/react-native:bundle',
|
|
82
|
+
'@nrwl/react-native:build-android',
|
|
83
|
+
'@nrwl/react-native:bundle',
|
|
84
|
+
'@nrwl/next:build',
|
|
85
|
+
'@nrwl/js:tsc',
|
|
86
|
+
'@angular-devkit/build-angular:browser',
|
|
87
|
+
'@angular-devkit/build-angular:browser-esbuild',
|
|
88
|
+
'@angular-devkit/build-angular:application'
|
|
89
|
+
];
|
|
90
|
+
// We try to find the target that is using the supported executors
|
|
91
|
+
// for build since this is the one we will be converting
|
|
92
|
+
for(const target in targets){
|
|
93
|
+
const executorName = targets[target].executor;
|
|
94
|
+
if (supportedExecutors.build.includes(executorName)) {
|
|
95
|
+
output.supported = target;
|
|
96
|
+
} else if (unsupportedExecutors.includes(executorName)) {
|
|
97
|
+
output.unsupported = target;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return output;
|
|
101
|
+
}
|
|
102
|
+
function addOrChangeTestTarget(tree, options, target) {
|
|
103
|
+
var _project;
|
|
104
|
+
const project = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
105
|
+
const reportsDirectory = (0, _devkit.joinPathFragments)((0, _devkit.offsetFromRoot)(project.root), 'coverage', project.root === '.' ? options.project : project.root);
|
|
106
|
+
const testOptions = {
|
|
107
|
+
reportsDirectory
|
|
108
|
+
};
|
|
109
|
+
var _targets;
|
|
110
|
+
(_targets = (_project = project).targets) != null ? _targets : _project.targets = {};
|
|
111
|
+
if (project.targets[target]) {
|
|
112
|
+
var _project_targets_target_options;
|
|
113
|
+
project.targets[target].executor = '@nx/vite:test';
|
|
114
|
+
(_project_targets_target_options = project.targets[target].options) == null ? true : delete _project_targets_target_options.jestConfig;
|
|
115
|
+
} else {
|
|
116
|
+
project.targets[target] = {
|
|
117
|
+
executor: '@nx/vite:test',
|
|
118
|
+
outputs: [
|
|
119
|
+
'{options.reportsDirectory}'
|
|
120
|
+
],
|
|
121
|
+
options: testOptions
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
(0, _devkit.updateProjectConfiguration)(tree, options.project, project);
|
|
125
|
+
}
|
|
126
|
+
function addBuildTarget(tree, options, target) {
|
|
127
|
+
var _project;
|
|
128
|
+
(0, _addbuildtargetdefaults.addBuildTargetDefaults)(tree, '@nx/vite:build');
|
|
129
|
+
const project = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
130
|
+
const buildOptions = {
|
|
131
|
+
outputPath: (0, _devkit.joinPathFragments)('dist', project.root != '.' ? project.root : options.project)
|
|
132
|
+
};
|
|
133
|
+
var _targets;
|
|
134
|
+
(_targets = (_project = project).targets) != null ? _targets : _project.targets = {};
|
|
135
|
+
project.targets[target] = {
|
|
136
|
+
executor: '@nx/vite:build',
|
|
137
|
+
outputs: [
|
|
138
|
+
'{options.outputPath}'
|
|
139
|
+
],
|
|
140
|
+
defaultConfiguration: 'production',
|
|
141
|
+
options: buildOptions,
|
|
142
|
+
configurations: {
|
|
143
|
+
development: {
|
|
144
|
+
mode: 'development'
|
|
145
|
+
},
|
|
146
|
+
production: {
|
|
147
|
+
mode: 'production'
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
(0, _devkit.updateProjectConfiguration)(tree, options.project, project);
|
|
152
|
+
}
|
|
153
|
+
function addServeTarget(tree, options, target) {
|
|
154
|
+
var _project;
|
|
155
|
+
const project = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
156
|
+
var _targets;
|
|
157
|
+
(_targets = (_project = project).targets) != null ? _targets : _project.targets = {};
|
|
158
|
+
project.targets[target] = {
|
|
159
|
+
executor: '@nx/vite:dev-server',
|
|
160
|
+
defaultConfiguration: 'development',
|
|
161
|
+
options: {
|
|
162
|
+
buildTarget: `${options.project}:build`
|
|
163
|
+
},
|
|
164
|
+
configurations: {
|
|
165
|
+
development: {
|
|
166
|
+
buildTarget: `${options.project}:build:development`,
|
|
167
|
+
hmr: true
|
|
168
|
+
},
|
|
169
|
+
production: {
|
|
170
|
+
buildTarget: `${options.project}:build:production`,
|
|
171
|
+
hmr: false
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
(0, _devkit.updateProjectConfiguration)(tree, options.project, project);
|
|
176
|
+
}
|
|
177
|
+
function addPreviewTarget(tree, options, serveTarget) {
|
|
178
|
+
var _project;
|
|
179
|
+
const project = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
180
|
+
const previewOptions = {
|
|
181
|
+
buildTarget: `${options.project}:build`
|
|
182
|
+
};
|
|
183
|
+
var _targets;
|
|
184
|
+
(_targets = (_project = project).targets) != null ? _targets : _project.targets = {};
|
|
185
|
+
// Update the options from the passed serve target.
|
|
186
|
+
if (project.targets[serveTarget]) {
|
|
187
|
+
var _target_options, _target_options1;
|
|
188
|
+
const target = project.targets[serveTarget];
|
|
189
|
+
if (target.executor === '@nxext/vite:dev') {
|
|
190
|
+
previewOptions.proxyConfig = target.options.proxyConfig;
|
|
191
|
+
}
|
|
192
|
+
previewOptions['https'] = (_target_options = target.options) == null ? void 0 : _target_options.https;
|
|
193
|
+
previewOptions['open'] = (_target_options1 = target.options) == null ? void 0 : _target_options1.open;
|
|
194
|
+
}
|
|
195
|
+
// Adds a preview target.
|
|
196
|
+
project.targets.preview = {
|
|
197
|
+
executor: '@nx/vite:preview-server',
|
|
198
|
+
defaultConfiguration: 'development',
|
|
199
|
+
options: previewOptions,
|
|
200
|
+
configurations: {
|
|
201
|
+
development: {
|
|
202
|
+
buildTarget: `${options.project}:build:development`
|
|
203
|
+
},
|
|
204
|
+
production: {
|
|
205
|
+
buildTarget: `${options.project}:build:production`
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
(0, _devkit.updateProjectConfiguration)(tree, options.project, project);
|
|
210
|
+
}
|
|
211
|
+
function editTsConfig(tree, options) {
|
|
212
|
+
const projectConfig = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
213
|
+
const config = (0, _devkit.readJson)(tree, `${projectConfig.root}/tsconfig.json`);
|
|
214
|
+
switch(options.uiFramework){
|
|
215
|
+
case 'react':
|
|
216
|
+
config.compilerOptions = {
|
|
217
|
+
jsx: 'react-jsx',
|
|
218
|
+
allowJs: false,
|
|
219
|
+
esModuleInterop: false,
|
|
220
|
+
allowSyntheticDefaultImports: true,
|
|
221
|
+
strict: true
|
|
222
|
+
};
|
|
223
|
+
break;
|
|
224
|
+
case 'none':
|
|
225
|
+
config.compilerOptions = {
|
|
226
|
+
module: 'commonjs',
|
|
227
|
+
forceConsistentCasingInFileNames: true,
|
|
228
|
+
strict: true,
|
|
229
|
+
noImplicitOverride: true,
|
|
230
|
+
noPropertyAccessFromIndexSignature: true,
|
|
231
|
+
noImplicitReturns: true,
|
|
232
|
+
noFallthroughCasesInSwitch: true
|
|
233
|
+
};
|
|
234
|
+
break;
|
|
235
|
+
default:
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
(0, _devkit.writeJson)(tree, `${projectConfig.root}/tsconfig.json`, config);
|
|
239
|
+
}
|
|
240
|
+
function deleteWebpackConfig(tree, projectRoot, webpackConfigFilePath) {
|
|
241
|
+
const webpackConfigPath = webpackConfigFilePath && tree.exists(webpackConfigFilePath) ? webpackConfigFilePath : tree.exists(`${projectRoot}/webpack.config.js`) ? `${projectRoot}/webpack.config.js` : tree.exists(`${projectRoot}/webpack.config.ts`) ? `${projectRoot}/webpack.config.ts` : null;
|
|
242
|
+
if (webpackConfigPath) {
|
|
243
|
+
tree.delete(webpackConfigPath);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function moveAndEditIndexHtml(tree, options) {
|
|
247
|
+
const projectConfig = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
248
|
+
let indexHtmlPath = `${projectConfig.root}/src/index.html`;
|
|
249
|
+
let mainPath = `${projectConfig.root}/src/main.ts${options.uiFramework === 'react' ? 'x' : ''}`;
|
|
250
|
+
if (projectConfig.root !== '.') {
|
|
251
|
+
mainPath = mainPath.replace(projectConfig.root, '');
|
|
252
|
+
}
|
|
253
|
+
if (!tree.exists(indexHtmlPath) && tree.exists(`${projectConfig.root}/index.html`)) {
|
|
254
|
+
indexHtmlPath = `${projectConfig.root}/index.html`;
|
|
255
|
+
}
|
|
256
|
+
if (tree.exists(indexHtmlPath)) {
|
|
257
|
+
const indexHtmlContent = tree.read(indexHtmlPath, 'utf8');
|
|
258
|
+
if (!indexHtmlContent.includes(`<script type='module' src='${mainPath}'></script>`)) {
|
|
259
|
+
tree.write(`${projectConfig.root}/index.html`, indexHtmlContent.replace('</body>', `<script type='module' src='${mainPath}'></script>
|
|
260
|
+
</body>`));
|
|
261
|
+
if (tree.exists(`${projectConfig.root}/src/index.html`)) {
|
|
262
|
+
tree.delete(`${projectConfig.root}/src/index.html`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
} else {
|
|
266
|
+
tree.write(`${projectConfig.root}/index.html`, `<!DOCTYPE html>
|
|
267
|
+
<html lang='en'>
|
|
268
|
+
<head>
|
|
269
|
+
<meta charset='UTF-8' />
|
|
270
|
+
<link rel='icon' href='/favicon.ico' />
|
|
271
|
+
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
|
|
272
|
+
<title>Vite</title>
|
|
273
|
+
</head>
|
|
274
|
+
<body>
|
|
275
|
+
<div id='root'></div>
|
|
276
|
+
<script type='module' src='${mainPath}'></script>
|
|
277
|
+
</body>
|
|
278
|
+
</html>`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
function createOrEditViteConfig(tree, options, onlyVitest, projectAlreadyHasViteTargets, vitestFileName) {
|
|
282
|
+
const { root: projectRoot } = (0, _devkit.readProjectConfiguration)(tree, options.project);
|
|
283
|
+
const viteConfigPath = vitestFileName ? `${projectRoot}/vitest.config.ts` : `${projectRoot}/vite.config.ts`;
|
|
284
|
+
const buildOutDir = projectRoot === '.' ? `./dist/${options.project}` : `${(0, _devkit.offsetFromRoot)(projectRoot)}dist/${projectRoot}`;
|
|
285
|
+
var _options_rollupOptionsExternal;
|
|
286
|
+
const buildOption = onlyVitest ? '' : options.includeLib ? `
|
|
287
|
+
// Configuration for building your library.
|
|
288
|
+
// See: https://vitejs.dev/guide/build.html#library-mode
|
|
289
|
+
build: {
|
|
290
|
+
outDir: '${buildOutDir}',
|
|
291
|
+
reportCompressedSize: true,
|
|
292
|
+
commonjsOptions: {
|
|
293
|
+
transformMixedEsModules: true,
|
|
294
|
+
},
|
|
295
|
+
lib: {
|
|
296
|
+
// Could also be a dictionary or array of multiple entry points.
|
|
297
|
+
entry: 'src/index.ts',
|
|
298
|
+
name: '${options.project}',
|
|
299
|
+
fileName: 'index',
|
|
300
|
+
// Change this to the formats you want to support.
|
|
301
|
+
// Don't forget to update your package.json as well.
|
|
302
|
+
formats: ['es', 'cjs']
|
|
303
|
+
},
|
|
304
|
+
rollupOptions: {
|
|
305
|
+
// External packages that should not be bundled into your library.
|
|
306
|
+
external: [${(_options_rollupOptionsExternal = options.rollupOptionsExternal) != null ? _options_rollupOptionsExternal : ''}]
|
|
307
|
+
},
|
|
308
|
+
},` : `
|
|
309
|
+
build: {
|
|
310
|
+
outDir: '${buildOutDir}',
|
|
311
|
+
reportCompressedSize: true,
|
|
312
|
+
commonjsOptions: {
|
|
313
|
+
transformMixedEsModules: true,
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
`;
|
|
317
|
+
const imports = options.imports ? options.imports : [];
|
|
318
|
+
if (!onlyVitest && options.includeLib) {
|
|
319
|
+
imports.push(`import dts from 'vite-plugin-dts'`, `import * as path from 'path'`);
|
|
320
|
+
}
|
|
321
|
+
let viteConfigContent = '';
|
|
322
|
+
const plugins = options.plugins ? [
|
|
323
|
+
...options.plugins,
|
|
324
|
+
`nxViteTsPaths()`
|
|
325
|
+
] : [
|
|
326
|
+
`nxViteTsPaths()`
|
|
327
|
+
];
|
|
328
|
+
if (!onlyVitest && options.includeLib) {
|
|
329
|
+
plugins.push(`dts({ entryRoot: 'src', tsConfigFilePath: path.join(__dirname, 'tsconfig.lib.json'), skipDiagnostics: true })`);
|
|
330
|
+
}
|
|
331
|
+
const reportsDirectory = projectRoot === '.' ? `./coverage/${options.project}` : `${(0, _devkit.offsetFromRoot)(projectRoot)}coverage/${projectRoot}`;
|
|
332
|
+
var _options_testEnvironment;
|
|
333
|
+
const testOption = options.includeVitest ? `test: {
|
|
334
|
+
globals: true,
|
|
335
|
+
cache: {
|
|
336
|
+
dir: '${(0, _devkit.offsetFromRoot)(projectRoot)}node_modules/.vitest'
|
|
337
|
+
},
|
|
338
|
+
environment: '${(_options_testEnvironment = options.testEnvironment) != null ? _options_testEnvironment : 'jsdom'}',
|
|
339
|
+
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
|
|
340
|
+
${options.inSourceTests ? `includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],` : ''}
|
|
341
|
+
reporters: ['default'],
|
|
342
|
+
coverage: {
|
|
343
|
+
reportsDirectory: '${reportsDirectory}',
|
|
344
|
+
provider: ${options.coverageProvider ? `'${options.coverageProvider}'` : `'v8'`},
|
|
345
|
+
}
|
|
346
|
+
},` : '';
|
|
347
|
+
const defineOption = options.inSourceTests ? `define: {
|
|
348
|
+
'import.meta.vitest': undefined
|
|
349
|
+
},` : '';
|
|
350
|
+
const devServerOption = onlyVitest ? '' : options.includeLib ? '' : `
|
|
351
|
+
server:{
|
|
352
|
+
port: 4200,
|
|
353
|
+
host: 'localhost',
|
|
354
|
+
},`;
|
|
355
|
+
const previewServerOption = onlyVitest ? '' : options.includeLib ? '' : `
|
|
356
|
+
preview:{
|
|
357
|
+
port: 4300,
|
|
358
|
+
host: 'localhost',
|
|
359
|
+
},`;
|
|
360
|
+
const workerOption = `
|
|
361
|
+
// Uncomment this if you are using workers.
|
|
362
|
+
// worker: {
|
|
363
|
+
// plugins: [ nxViteTsPaths() ],
|
|
364
|
+
// },`;
|
|
365
|
+
const cacheDir = `cacheDir: '${(0, _devkit.offsetFromRoot)(projectRoot)}node_modules/.vite/${projectRoot}',`;
|
|
366
|
+
if (tree.exists(viteConfigPath)) {
|
|
367
|
+
handleViteConfigFileExists(tree, viteConfigPath, options, buildOption, buildOutDir, imports, plugins, testOption, reportsDirectory, cacheDir, (0, _devkit.offsetFromRoot)(projectRoot), projectAlreadyHasViteTargets);
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
viteConfigContent = `
|
|
371
|
+
/// <reference types='vitest' />
|
|
372
|
+
import { defineConfig } from 'vite';
|
|
373
|
+
${imports.join(';\n')}${imports.length ? ';' : ''}
|
|
374
|
+
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
|
|
375
|
+
|
|
376
|
+
export default defineConfig({
|
|
377
|
+
root: __dirname,
|
|
378
|
+
${cacheDir}
|
|
379
|
+
${devServerOption}
|
|
380
|
+
${previewServerOption}
|
|
381
|
+
|
|
382
|
+
plugins: [${plugins.join(',\n')}],
|
|
383
|
+
${workerOption}
|
|
384
|
+
${buildOption}
|
|
385
|
+
${defineOption}
|
|
386
|
+
${testOption}
|
|
387
|
+
});`;
|
|
388
|
+
tree.write(viteConfigPath, viteConfigContent);
|
|
389
|
+
}
|
|
390
|
+
function normalizeViteConfigFilePathWithTree(tree, projectRoot, configFile) {
|
|
391
|
+
return configFile && tree.exists(configFile) ? configFile : tree.exists((0, _devkit.joinPathFragments)(`${projectRoot}/vite.config.ts`)) ? (0, _devkit.joinPathFragments)(`${projectRoot}/vite.config.ts`) : tree.exists((0, _devkit.joinPathFragments)(`${projectRoot}/vite.config.js`)) ? (0, _devkit.joinPathFragments)(`${projectRoot}/vite.config.js`) : undefined;
|
|
392
|
+
}
|
|
393
|
+
function getViteConfigPathForProject(tree, projectName, target) {
|
|
394
|
+
let viteConfigPath;
|
|
395
|
+
const { targets, root } = (0, _devkit.readProjectConfiguration)(tree, projectName);
|
|
396
|
+
if (target) {
|
|
397
|
+
var _targets_target_options, _targets_target;
|
|
398
|
+
viteConfigPath = targets == null ? void 0 : (_targets_target = targets[target]) == null ? void 0 : (_targets_target_options = _targets_target.options) == null ? void 0 : _targets_target_options.configFile;
|
|
399
|
+
} else {
|
|
400
|
+
var _config_options;
|
|
401
|
+
const config = Object.values(targets).find((config)=>config.executor === '@nrwl/nx:build' || config.executor === '@nrwl/vite:build');
|
|
402
|
+
viteConfigPath = config == null ? void 0 : (_config_options = config.options) == null ? void 0 : _config_options.configFile;
|
|
403
|
+
}
|
|
404
|
+
return normalizeViteConfigFilePathWithTree(tree, root, viteConfigPath);
|
|
405
|
+
}
|
|
406
|
+
async function handleUnsupportedUserProvidedTargets(userProvidedTargetIsUnsupported, userProvidedTargetName, validFoundTargetName) {
|
|
407
|
+
if (userProvidedTargetIsUnsupported.build && validFoundTargetName.build) {
|
|
408
|
+
await handleUnsupportedUserProvidedTargetsErrors(userProvidedTargetName.build, validFoundTargetName.build, 'build', 'build');
|
|
409
|
+
}
|
|
410
|
+
if (userProvidedTargetIsUnsupported.serve && validFoundTargetName.serve) {
|
|
411
|
+
await handleUnsupportedUserProvidedTargetsErrors(userProvidedTargetName.serve, validFoundTargetName.serve, 'serve', 'dev-server');
|
|
412
|
+
}
|
|
413
|
+
if (userProvidedTargetIsUnsupported.test && validFoundTargetName.test) {
|
|
414
|
+
await handleUnsupportedUserProvidedTargetsErrors(userProvidedTargetName.test, validFoundTargetName.test, 'test', 'test');
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
async function handleUnsupportedUserProvidedTargetsErrors(userProvidedTargetName, validFoundTargetName, target, executor) {
|
|
418
|
+
_devkit.logger.warn(`The custom ${target} target you provided (${userProvidedTargetName}) cannot be converted to use the @nx/vite:${executor} executor.
|
|
419
|
+
However, we found the following ${target} target in your project that can be converted: ${validFoundTargetName}
|
|
420
|
+
|
|
421
|
+
Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit
|
|
422
|
+
your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.
|
|
423
|
+
`);
|
|
424
|
+
const { Confirm } = require('enquirer');
|
|
425
|
+
const prompt = new Confirm({
|
|
426
|
+
name: 'question',
|
|
427
|
+
message: `Should we convert the ${validFoundTargetName} target to use the @nx/vite:${executor} executor?`,
|
|
428
|
+
initial: true
|
|
429
|
+
});
|
|
430
|
+
const shouldConvert = await prompt.run();
|
|
431
|
+
if (!shouldConvert) {
|
|
432
|
+
throw new Error(`The ${target} target ${userProvidedTargetName} cannot be converted to use the @nx/vite:${executor} executor.
|
|
433
|
+
Please try again, either by providing a different ${target} target or by not providing a target at all (Nx will
|
|
434
|
+
convert the first one it finds, most probably this one: ${validFoundTargetName})
|
|
435
|
+
|
|
436
|
+
Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit
|
|
437
|
+
your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.
|
|
438
|
+
`);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
async function handleUnknownConfiguration(projectName) {
|
|
442
|
+
if (process.env.NX_INTERACTIVE === 'false') {
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
_devkit.logger.warn(`
|
|
446
|
+
We could not find any configuration in project ${projectName} that
|
|
447
|
+
indicates whether we can definitely convert to Vite.
|
|
448
|
+
|
|
449
|
+
If you still want to convert your project to use Vite,
|
|
450
|
+
please make sure to commit your changes before running this generator.
|
|
451
|
+
`);
|
|
452
|
+
const { Confirm } = require('enquirer');
|
|
453
|
+
const prompt = new Confirm({
|
|
454
|
+
name: 'question',
|
|
455
|
+
message: `Should Nx convert your project to use Vite?`,
|
|
456
|
+
initial: true
|
|
457
|
+
});
|
|
458
|
+
const shouldConvert = await prompt.run();
|
|
459
|
+
if (!shouldConvert) {
|
|
460
|
+
throw new Error(`
|
|
461
|
+
Nx could not verify that your project can be converted to use Vite.
|
|
462
|
+
Please try again with a different project.
|
|
463
|
+
`);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
function handleViteConfigFileExists(tree, viteConfigPath, options, buildOption, buildOutDir, imports, plugins, testOption, reportsDirectory, cacheDir, offsetFromRoot, projectAlreadyHasViteTargets) {
|
|
467
|
+
if ((projectAlreadyHasViteTargets == null ? void 0 : projectAlreadyHasViteTargets.build) && (projectAlreadyHasViteTargets == null ? void 0 : projectAlreadyHasViteTargets.test)) {
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
470
|
+
if (process.env.NX_VERBOSE_LOGGING === 'true') {
|
|
471
|
+
_devkit.logger.info(`vite.config.ts already exists for project ${options.project}.`);
|
|
472
|
+
}
|
|
473
|
+
var _options_rollupOptionsExternal;
|
|
474
|
+
const buildOptionObject = options.includeLib ? {
|
|
475
|
+
lib: {
|
|
476
|
+
entry: 'src/index.ts',
|
|
477
|
+
name: options.project,
|
|
478
|
+
fileName: 'index',
|
|
479
|
+
formats: [
|
|
480
|
+
'es',
|
|
481
|
+
'cjs'
|
|
482
|
+
]
|
|
483
|
+
},
|
|
484
|
+
rollupOptions: {
|
|
485
|
+
external: (_options_rollupOptionsExternal = options.rollupOptionsExternal) != null ? _options_rollupOptionsExternal : []
|
|
486
|
+
},
|
|
487
|
+
outDir: buildOutDir,
|
|
488
|
+
reportCompressedSize: true,
|
|
489
|
+
commonjsOptions: {
|
|
490
|
+
transformMixedEsModules: true
|
|
491
|
+
}
|
|
492
|
+
} : {
|
|
493
|
+
outDir: buildOutDir,
|
|
494
|
+
reportCompressedSize: true,
|
|
495
|
+
commonjsOptions: {
|
|
496
|
+
transformMixedEsModules: true
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
var _options_testEnvironment, _options_coverageProvider;
|
|
500
|
+
const testOptionObject = {
|
|
501
|
+
globals: true,
|
|
502
|
+
cache: {
|
|
503
|
+
dir: `${offsetFromRoot}node_modules/.vitest`
|
|
504
|
+
},
|
|
505
|
+
environment: (_options_testEnvironment = options.testEnvironment) != null ? _options_testEnvironment : 'jsdom',
|
|
506
|
+
include: [
|
|
507
|
+
'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'
|
|
508
|
+
],
|
|
509
|
+
reporters: [
|
|
510
|
+
'default'
|
|
511
|
+
],
|
|
512
|
+
coverage: {
|
|
513
|
+
reportsDirectory: reportsDirectory,
|
|
514
|
+
provider: `${(_options_coverageProvider = options.coverageProvider) != null ? _options_coverageProvider : 'v8'}`
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
const changed = (0, _viteconfigeditutils.ensureViteConfigIsCorrect)(tree, viteConfigPath, buildOption, buildOptionObject, imports, plugins, testOption, testOptionObject, cacheDir, projectAlreadyHasViteTargets != null ? projectAlreadyHasViteTargets : {});
|
|
518
|
+
if (!changed) {
|
|
519
|
+
_devkit.logger.warn(`Make sure the following setting exists in your Vite configuration file (${viteConfigPath}):
|
|
520
|
+
|
|
521
|
+
${buildOption}
|
|
522
|
+
|
|
523
|
+
`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
//# sourceMappingURL=generator-utils.js.map
|
|
@@ -0,0 +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 { 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';\nimport { addBuildTargetDefaults } from '@nx/devkit/src/generators/add-build-target-defaults';\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 findExistingJsBuildTargetInProject(targets: {\n [targetName: string]: TargetConfiguration;\n}): {\n supported?: string;\n unsupported?: string;\n} {\n const output: {\n supported?: string;\n unsupported?: string;\n } = {};\n\n const supportedExecutors = {\n build: ['@nx/js:babel', '@nx/js:swc', '@nx/rollup:rollup'],\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/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/js:tsc',\n '@angular-devkit/build-angular:browser',\n '@angular-devkit/build-angular:browser-esbuild',\n '@angular-devkit/build-angular:application',\n ];\n\n // We try to find the target that is using the supported executors\n // for build since this is the one we will be converting\n for (const target in targets) {\n const executorName = targets[target].executor;\n if (supportedExecutors.build.includes(executorName)) {\n output.supported = target;\n } else if (unsupportedExecutors.includes(executorName)) {\n output.unsupported = target;\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 reportsDirectory = joinPathFragments(\n offsetFromRoot(project.root),\n 'coverage',\n project.root === '.' ? options.project : project.root\n );\n const testOptions: VitestExecutorOptions = {\n reportsDirectory,\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: ['{options.reportsDirectory}'],\n options: testOptions,\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addBuildTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n addBuildTargetDefaults(tree, '@nx/vite:build');\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 project.targets ??= {};\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 updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addServeTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n project.targets ??= {};\n\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 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 */\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 switch (options.uiFramework) {\n case 'react':\n config.compilerOptions = {\n jsx: 'react-jsx',\n allowJs: false,\n esModuleInterop: false,\n allowSyntheticDefaultImports: true,\n strict: true,\n };\n break;\n case 'none':\n config.compilerOptions = {\n module: 'commonjs',\n forceConsistentCasingInFileNames: true,\n strict: true,\n noImplicitOverride: true,\n noPropertyAccessFromIndexSignature: true,\n noImplicitReturns: true,\n noFallthroughCasesInSwitch: true,\n };\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) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let indexHtmlPath = `${projectConfig.root}/src/index.html`;\n let mainPath = `${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 interface ViteConfigFileOptions {\n project: string;\n includeLib?: boolean;\n includeVitest?: boolean;\n inSourceTests?: boolean;\n testEnvironment?: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string;\n rollupOptionsExternal?: string[];\n imports?: string[];\n plugins?: string[];\n coverageProvider?: 'v8' | 'istanbul' | 'custom';\n}\n\nexport function createOrEditViteConfig(\n tree: Tree,\n options: ViteConfigFileOptions,\n onlyVitest: boolean,\n projectAlreadyHasViteTargets?: TargetFlags,\n vitestFileName?: boolean\n) {\n const { root: projectRoot } = readProjectConfiguration(tree, options.project);\n\n const viteConfigPath = vitestFileName\n ? `${projectRoot}/vitest.config.ts`\n : `${projectRoot}/vite.config.ts`;\n\n const buildOutDir =\n projectRoot === '.'\n ? `./dist/${options.project}`\n : `${offsetFromRoot(projectRoot)}dist/${projectRoot}`;\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 outDir: '${buildOutDir}',\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\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: [${options.rollupOptionsExternal ?? ''}]\n },\n },`\n : `\n build: {\n outDir: '${buildOutDir}',\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n },\n `;\n\n const imports: string[] = options.imports ? options.imports : [];\n\n if (!onlyVitest && options.includeLib) {\n imports.push(\n `import dts from 'vite-plugin-dts'`,\n `import * as path from 'path'`\n );\n }\n\n let viteConfigContent = '';\n\n const plugins = options.plugins\n ? [...options.plugins, `nxViteTsPaths()`]\n : [`nxViteTsPaths()`];\n\n if (!onlyVitest && options.includeLib) {\n plugins.push(\n `dts({ entryRoot: 'src', tsConfigFilePath: path.join(__dirname, 'tsconfig.lib.json'), skipDiagnostics: true })`\n );\n }\n\n const reportsDirectory =\n projectRoot === '.'\n ? `./coverage/${options.project}`\n : `${offsetFromRoot(projectRoot)}coverage/${projectRoot}`;\n\n const testOption = options.includeVitest\n ? `test: {\n globals: true,\n cache: {\n dir: '${offsetFromRoot(projectRoot)}node_modules/.vitest'\n },\n environment: '${options.testEnvironment ?? '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 reporters: ['default'],\n coverage: {\n reportsDirectory: '${reportsDirectory}',\n provider: ${\n options.coverageProvider ? `'${options.coverageProvider}'` : `'v8'`\n },\n }\n },`\n : '';\n\n const defineOption = options.inSourceTests\n ? `define: {\n 'import.meta.vitest': undefined\n },`\n : '';\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 workerOption = `\n // Uncomment this if you are using workers. \n // worker: {\n // plugins: [ nxViteTsPaths() ],\n // },`;\n\n const cacheDir = `cacheDir: '${offsetFromRoot(\n projectRoot\n )}node_modules/.vite/${projectRoot}',`;\n\n if (tree.exists(viteConfigPath)) {\n handleViteConfigFileExists(\n tree,\n viteConfigPath,\n options,\n buildOption,\n buildOutDir,\n imports,\n plugins,\n testOption,\n reportsDirectory,\n cacheDir,\n offsetFromRoot(projectRoot),\n projectAlreadyHasViteTargets\n );\n return;\n }\n\n viteConfigContent = `\n /// <reference types='vitest' />\n import { defineConfig } from 'vite';\n ${imports.join(';\\n')}${imports.length ? ';' : ''}\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n \n export default defineConfig({\n root: __dirname,\n ${cacheDir}\n ${devServerOption}\n ${previewServerOption}\n \n plugins: [${plugins.join(',\\n')}],\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 handleUnknownConfiguration(projectName: string) {\n if (process.env.NX_INTERACTIVE === 'false') {\n return;\n }\n\n logger.warn(\n `\n We could not find any configuration in project ${projectName} that \n indicates whether we can definitely convert to Vite.\n \n If you still want to convert your project to use Vite,\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 Vite?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(`\n Nx could not verify that your project can be converted to use Vite.\n Please try again with a different project.\n `);\n }\n}\n\nfunction handleViteConfigFileExists(\n tree: Tree,\n viteConfigPath: string,\n options: ViteConfigFileOptions,\n buildOption: string,\n buildOutDir: string,\n imports: string[],\n plugins: string[],\n testOption: string,\n reportsDirectory: string,\n cacheDir: string,\n offsetFromRoot: string,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n if (\n projectAlreadyHasViteTargets?.build &&\n projectAlreadyHasViteTargets?.test\n ) {\n return;\n }\n\n if (process.env.NX_VERBOSE_LOGGING === 'true') {\n logger.info(\n `vite.config.ts already exists for project ${options.project}.`\n );\n }\n\n const buildOptionObject = options.includeLib\n ? {\n lib: {\n entry: 'src/index.ts',\n name: options.project,\n fileName: 'index',\n formats: ['es', 'cjs'],\n },\n rollupOptions: {\n external: options.rollupOptionsExternal ?? [],\n },\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n }\n : {\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n const testOptionObject = {\n globals: true,\n cache: {\n dir: `${offsetFromRoot}node_modules/.vitest`,\n },\n environment: options.testEnvironment ?? 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n reporters: ['default'],\n coverage: {\n reportsDirectory: reportsDirectory,\n provider: `${options.coverageProvider ?? 'v8'}`,\n },\n };\n\n const changed = ensureViteConfigIsCorrect(\n tree,\n viteConfigPath,\n buildOption,\n buildOptionObject,\n imports,\n plugins,\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 }\n}\n"],"names":["findExistingJsBuildTargetInProject","addOrChangeTestTarget","addBuildTarget","addServeTarget","addPreviewTarget","editTsConfig","deleteWebpackConfig","moveAndEditIndexHtml","createOrEditViteConfig","normalizeViteConfigFilePathWithTree","getViteConfigPathForProject","handleUnsupportedUserProvidedTargets","handleUnknownConfiguration","targets","output","supportedExecutors","build","unsupportedExecutors","target","executorName","executor","includes","supported","unsupported","tree","options","project","readProjectConfiguration","reportsDirectory","joinPathFragments","offsetFromRoot","root","testOptions","jestConfig","outputs","updateProjectConfiguration","addBuildTargetDefaults","buildOptions","outputPath","defaultConfiguration","configurations","development","mode","production","buildTarget","hmr","serveTarget","previewOptions","proxyConfig","https","open","preview","projectConfig","config","readJson","uiFramework","compilerOptions","jsx","allowJs","esModuleInterop","allowSyntheticDefaultImports","strict","module","forceConsistentCasingInFileNames","noImplicitOverride","noPropertyAccessFromIndexSignature","noImplicitReturns","noFallthroughCasesInSwitch","writeJson","projectRoot","webpackConfigFilePath","webpackConfigPath","exists","delete","indexHtmlPath","mainPath","replace","indexHtmlContent","read","write","onlyVitest","projectAlreadyHasViteTargets","vitestFileName","viteConfigPath","buildOutDir","buildOption","includeLib","rollupOptionsExternal","imports","push","viteConfigContent","plugins","testOption","includeVitest","testEnvironment","inSourceTests","coverageProvider","defineOption","devServerOption","previewServerOption","workerOption","cacheDir","handleViteConfigFileExists","join","length","configFile","undefined","projectName","Object","values","find","userProvidedTargetIsUnsupported","userProvidedTargetName","validFoundTargetName","handleUnsupportedUserProvidedTargetsErrors","serve","test","logger","warn","Confirm","require","prompt","name","message","initial","shouldConvert","run","Error","process","env","NX_INTERACTIVE","NX_VERBOSE_LOGGING","info","buildOptionObject","lib","entry","fileName","formats","rollupOptions","external","outDir","reportCompressedSize","commonjsOptions","transformMixedEsModules","testOptionObject","globals","cache","dir","environment","include","reporters","coverage","provider","changed","ensureViteConfigIsCorrect"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
+
import { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the path to the vite config file or undefined when not found.
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizeViteConfigFilePath(contextRoot: string, projectRoot: string, configFile?: string): string | undefined;
|
|
7
|
+
export declare function getProjectTsConfigPath(projectRoot: string): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the path to the proxy configuration file or undefined when not found.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getViteServerProxyConfigPath(nxProxyConfig: string | undefined, context: ExecutorContext): string | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Builds the options for the vite dev server.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getViteServerOptions(options: ViteDevServerExecutorOptions, context: ExecutorContext): Promise<Record<string, unknown>>;
|
|
16
|
+
export declare function getProxyConfig(context: ExecutorContext, proxyConfig?: string): Record<string, string | unknown> | undefined;
|
|
17
|
+
export declare function getNxTargetOptions(target: string, context: ExecutorContext): any;
|