@nx/vite 17.2.8 → 17.3.0-beta.2
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/README.md +9 -4
- package/migrations.json +21 -0
- package/package.json +5 -5
- package/src/executors/build/build.impl.js +3 -1
- package/src/executors/build/build.impl.js.map +1 -1
- package/src/executors/dev-server/dev-server.impl.js +1 -1
- package/src/executors/dev-server/dev-server.impl.js.map +1 -1
- package/src/executors/preview-server/preview-server.impl.js +2 -1
- package/src/executors/preview-server/preview-server.impl.js.map +1 -1
- package/src/executors/test/lib/utils.js +2 -1
- package/src/executors/test/lib/utils.js.map +1 -1
- package/src/plugins/plugin.js +10 -7
- package/src/plugins/plugin.js.map +1 -1
- package/src/utils/executor-utils.d.ts +1 -0
- package/src/utils/executor-utils.js +6 -0
- package/src/utils/executor-utils.js.map +1 -1
- package/src/utils/options-utils.js +2 -1
- package/src/utils/options-utils.js.map +1 -1
- package/src/utils/versions.d.ts +3 -3
- package/src/utils/versions.js +3 -3
- package/src/utils/versions.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
<p style="text-align: center;"
|
|
1
|
+
<p style="text-align: center;">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-dark.svg">
|
|
4
|
+
<img alt="Nx - Smart Monorepos · Fast CI" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
2
7
|
|
|
3
8
|
<div style="text-align: center;">
|
|
4
9
|
|
|
@@ -15,9 +20,9 @@
|
|
|
15
20
|
|
|
16
21
|
<hr>
|
|
17
22
|
|
|
18
|
-
# Nx: Smart
|
|
23
|
+
# Nx: Smart Monorepos · Fast CI
|
|
19
24
|
|
|
20
|
-
Nx is a
|
|
25
|
+
Nx is a build system with built-in tooling and advanced CI capabilities. It helps you maintain and scale monorepos, both locally and on CI.
|
|
21
26
|
|
|
22
27
|
This package is a [Vite plugin for Nx](https://nx.dev/packages/vite).
|
|
23
28
|
|
|
@@ -59,5 +64,5 @@ npx nx@latest init
|
|
|
59
64
|
- [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
|
|
60
65
|
|
|
61
66
|
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
|
|
62
|
-
width="100%" alt="Nx - Smart
|
|
67
|
+
width="100%" alt="Nx - Smart Monorepos · Fast CI"></a></p>
|
|
63
68
|
|
package/migrations.json
CHANGED
|
@@ -53,6 +53,27 @@
|
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"packageJsonUpdates": {
|
|
56
|
+
"17.3.0": {
|
|
57
|
+
"version": "17.3.0-beta.0",
|
|
58
|
+
"packages": {
|
|
59
|
+
"vitest": {
|
|
60
|
+
"version": "^1.0.4",
|
|
61
|
+
"alwaysAddToPackageJson": false
|
|
62
|
+
},
|
|
63
|
+
"@vitest/coverage-v8": {
|
|
64
|
+
"version": "^1.0.4",
|
|
65
|
+
"alwaysAddToPackageJson": false
|
|
66
|
+
},
|
|
67
|
+
"@vitest/ui": {
|
|
68
|
+
"version": "^1.0.4",
|
|
69
|
+
"alwaysAddToPackageJson": false
|
|
70
|
+
},
|
|
71
|
+
"@vitest/coverage-istanbul": {
|
|
72
|
+
"version": "^1.0.4",
|
|
73
|
+
"alwaysAddToPackageJson": false
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
56
77
|
"17.2.0": {
|
|
57
78
|
"version": "17.2.0-beta.2",
|
|
58
79
|
"packages": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "17.2
|
|
3
|
+
"version": "17.3.0-beta.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -29,17 +29,17 @@
|
|
|
29
29
|
"migrations": "./migrations.json"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@nx/devkit": "17.2
|
|
32
|
+
"@nx/devkit": "17.3.0-beta.2",
|
|
33
33
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
34
34
|
"@swc/helpers": "~0.5.0",
|
|
35
35
|
"enquirer": "~2.3.6",
|
|
36
|
-
"@nx/js": "17.2
|
|
36
|
+
"@nx/js": "17.3.0-beta.2",
|
|
37
37
|
"tsconfig-paths": "^4.1.2",
|
|
38
|
-
"@nrwl/vite": "17.2
|
|
38
|
+
"@nrwl/vite": "17.3.0-beta.2"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"vite": "^5.0.0",
|
|
42
|
-
"vitest": "
|
|
42
|
+
"vitest": "^1.0.0"
|
|
43
43
|
},
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
@@ -28,7 +28,7 @@ async function* viteBuildExecutor(options, context) {
|
|
|
28
28
|
var _resolved_config_build, _resolved_config;
|
|
29
29
|
process.env.VITE_CJS_IGNORE_WARNING = 'true';
|
|
30
30
|
// Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
|
|
31
|
-
const { mergeConfig, build, loadConfigFromFile } = await
|
|
31
|
+
const { mergeConfig, build, loadConfigFromFile } = await (0, _executorutils.loadViteDynamicImport)();
|
|
32
32
|
const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
|
|
33
33
|
(0, _executorutils.createBuildableTsConfig)(projectRoot, options, context);
|
|
34
34
|
const viteConfigPath = (0, _optionsutils.normalizeViteConfigFilePath)(context.root, projectRoot, options.configFile);
|
|
@@ -174,6 +174,8 @@ async function getBuildExtraArgs(options) {
|
|
|
174
174
|
otherOptions[key] = extraArgs[key];
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
+
var _options_watch;
|
|
178
|
+
buildOptions['watch'] = (_options_watch = options.watch) != null ? _options_watch : undefined;
|
|
177
179
|
return {
|
|
178
180
|
buildOptions,
|
|
179
181
|
otherOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n validateTypes,\n} from '../../utils/executor-utils';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build, loadConfigFromFile } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n createBuildableTsConfig(projectRoot, options, context);\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.config?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n projectRoot: projectRoot,\n tsconfig: getProjectTsConfigPath(projectRoot),\n });\n }\n\n const watcherOrOutput = await build(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const outDirRelativeToWorkspaceRoot = outDir.replaceAll('../', '');\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/packages/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n }\n );\n\n builtPackageJson.type = 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n if ('on' in watcherOrOutput) {\n const iterable = createAsyncIterable<{ success: boolean }>(({ next }) => {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event) {\n event.result.close();\n }\n });\n });\n yield* iterable;\n } else {\n const output = watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n yield { success: true, outfile };\n }\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","getBuildExtraArgs","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","loadConfigFromFile","Function","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","mode","command","outDir","offsetFromRoot","outputPath","config","buildConfig","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","getProjectTsConfigPath","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","outDirRelativeToWorkspaceRoot","replaceAll","distPackageJson","generatePackageJson","projectGraph","nodes","type","logger","warn","stripIndents","builtPackageJson","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","success","on","event","code","result","close","fileName","outfile","schema","extraArgs","key","Object","keys","properties","buildSchemaKeys","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n validateTypes,\n} from '../../utils/executor-utils';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build, loadConfigFromFile } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n createBuildableTsConfig(projectRoot, options, context);\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.config?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n projectRoot: projectRoot,\n tsconfig: getProjectTsConfigPath(projectRoot),\n });\n }\n\n const watcherOrOutput = await build(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const outDirRelativeToWorkspaceRoot = outDir.replaceAll('../', '');\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/packages/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n }\n );\n\n builtPackageJson.type = 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n if ('on' in watcherOrOutput) {\n const iterable = createAsyncIterable<{ success: boolean }>(({ next }) => {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event) {\n event.result.close();\n }\n });\n });\n yield* iterable;\n } else {\n const output = watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n yield { success: true, outfile };\n }\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n buildOptions['watch'] = options.watch ?? undefined;\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","getBuildExtraArgs","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","loadConfigFromFile","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","mode","command","outDir","offsetFromRoot","outputPath","config","buildConfig","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","getProjectTsConfigPath","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","outDirRelativeToWorkspaceRoot","replaceAll","distPackageJson","generatePackageJson","projectGraph","nodes","type","logger","warn","stripIndents","builtPackageJson","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","success","on","event","code","result","close","fileName","outfile","schema","extraArgs","key","Object","keys","properties","buildSchemaKeys","includes","watch","undefined"],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const _buildimpl = require("../build/build.impl");
|
|
|
22
22
|
async function* viteDevServerExecutor(options, context) {
|
|
23
23
|
process.env.VITE_CJS_IGNORE_WARNING = 'true';
|
|
24
24
|
// Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
|
|
25
|
-
const { mergeConfig, createServer, loadConfigFromFile } = await
|
|
25
|
+
const { mergeConfig, createServer, loadConfigFromFile } = await (0, _executorutils.loadViteDynamicImport)();
|
|
26
26
|
const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
|
|
27
27
|
const root = projectRoot === '.' ? process.cwd() : (0, _path.relative)(context.cwd, (0, _devkit.joinPathFragments)(context.root, projectRoot));
|
|
28
28
|
(0, _executorutils.createBuildableTsConfig)(projectRoot, options, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/dev-server/dev-server.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n parseTargetString,\n} from '@nx/devkit';\nimport {\n getNxTargetOptions,\n getViteServerOptions,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteDevServerExecutorOptions } from './schema';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/dev-server/dev-server.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n parseTargetString,\n} from '@nx/devkit';\nimport {\n getNxTargetOptions,\n getViteServerOptions,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteDevServerExecutorOptions } from './schema';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n} from '../../utils/executor-utils';\nimport { relative } from 'path';\nimport { getBuildExtraArgs } from '../build/build.impl';\n\nexport async function* viteDevServerExecutor(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): AsyncGenerator<{ success: boolean; baseUrl: string }> {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, createServer, loadConfigFromFile } =\n await loadViteDynamicImport();\n\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n createBuildableTsConfig(projectRoot, options, context);\n\n // Retrieve the option for the configured buildTarget.\n const buildTargetOptions: ViteBuildExecutorOptions = getNxTargetOptions(\n options.buildTarget,\n context\n );\n\n const { configuration } = parseTargetString(options.buildTarget, context);\n\n const { buildOptions, otherOptions: otherOptionsFromBuild } =\n await getBuildExtraArgs(buildTargetOptions);\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n buildTargetOptions.configFile\n );\n const { serverOptions, otherOptions } = await getServerExtraArgs(\n options,\n configuration,\n buildOptions,\n otherOptionsFromBuild\n );\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? buildTargetOptions?.['mode'] ?? 'development',\n command: 'serve',\n },\n viteConfigPath\n );\n\n // vite InlineConfig\n const serverConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n server: {\n ...(await getViteServerOptions(options, context)),\n ...serverOptions,\n },\n ...otherOptions,\n }\n );\n\n try {\n const server = await createServer(serverConfig);\n await runViteDevServer(server);\n const resolvedUrls = [\n ...server.resolvedUrls.local,\n ...server.resolvedUrls.network,\n ];\n\n yield {\n success: true,\n baseUrl: resolvedUrls[0] ?? '',\n };\n } catch (e) {\n console.error(e);\n yield {\n success: false,\n baseUrl: '',\n };\n }\n\n await new Promise<void>((resolve) => {\n process.once('SIGINT', () => resolve());\n process.once('SIGTERM', () => resolve());\n process.once('exit', () => resolve());\n });\n}\n// vite ViteDevServer\nasync function runViteDevServer(server: Record<string, any>): Promise<void> {\n await server.listen();\n\n server.printUrls();\n\n const processOnExit = async () => {\n await server.close();\n };\n\n process.once('SIGINT', processOnExit);\n process.once('SIGTERM', processOnExit);\n process.once('exit', processOnExit);\n}\n\nexport default viteDevServerExecutor;\n\nasync function getServerExtraArgs(\n options: ViteDevServerExecutorOptions,\n configuration: string | undefined,\n buildOptionsFromBuildTarget: Record<string, unknown> | undefined,\n otherOptionsFromBuildTarget: Record<string, unknown> | undefined\n): Promise<{\n // vite ServerOptions\n serverOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n let serverOptions: Record<string, unknown> = {};\n const serverSchemaKeys = [\n 'hmr',\n 'warmup',\n 'watch',\n 'middlewareMode',\n 'fs',\n 'origin',\n 'preTransformRequests',\n 'sourcemapIgnoreList',\n 'port',\n 'strictPort',\n 'host',\n 'https',\n 'open',\n 'proxy',\n 'cors',\n 'headers',\n ];\n\n let otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (serverSchemaKeys.includes(key)) {\n serverOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n if (configuration) {\n serverOptions = {\n ...serverOptions,\n watch: buildOptionsFromBuildTarget?.watch ?? serverOptions?.watch,\n };\n otherOptions = {\n ...otherOptions,\n ...(otherOptionsFromBuildTarget ?? {}),\n };\n }\n\n return {\n serverOptions,\n otherOptions,\n };\n}\n"],"names":["viteDevServerExecutor","options","context","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","createServer","loadConfigFromFile","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","cwd","relative","joinPathFragments","createBuildableTsConfig","buildTargetOptions","getNxTargetOptions","buildTarget","configuration","parseTargetString","buildOptions","otherOptions","otherOptionsFromBuild","getBuildExtraArgs","viteConfigPath","normalizeViteConfigFilePath","configFile","serverOptions","getServerExtraArgs","resolved","mode","command","serverConfig","config","server","getViteServerOptions","runViteDevServer","resolvedUrls","local","network","success","baseUrl","e","console","error","Promise","resolve","once","listen","printUrls","processOnExit","close","buildOptionsFromBuildTarget","otherOptionsFromBuildTarget","schema","extraArgs","key","Object","keys","properties","serverSchemaKeys","includes","watch"],"mappings":"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"}
|
|
@@ -18,11 +18,12 @@ const _devkit = require("@nx/devkit");
|
|
|
18
18
|
const _optionsutils = require("../../utils/options-utils");
|
|
19
19
|
const _path = require("path");
|
|
20
20
|
const _buildimpl = require("../build/build.impl");
|
|
21
|
+
const _executorutils = require("../../utils/executor-utils");
|
|
21
22
|
async function* vitePreviewServerExecutor(options, context) {
|
|
22
23
|
var _context_projectsConfigurations_projects_target_project, _resolved_config_build, _resolved_config;
|
|
23
24
|
process.env.VITE_CJS_IGNORE_WARNING = 'true';
|
|
24
25
|
// Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
|
|
25
|
-
const { mergeConfig, preview, loadConfigFromFile } = await
|
|
26
|
+
const { mergeConfig, preview, loadConfigFromFile } = await (0, _executorutils.loadViteDynamicImport)();
|
|
26
27
|
const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
|
|
27
28
|
const target = (0, _devkit.parseTargetString)(options.buildTarget, context);
|
|
28
29
|
const targetConfiguration = (_context_projectsConfigurations_projects_target_project = context.projectsConfigurations.projects[target.project]) == null ? void 0 : _context_projectsConfigurations_projects_target_project.targets[target.target];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/preview-server/preview-server.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n offsetFromRoot,\n parseTargetString,\n runExecutor,\n} from '@nx/devkit';\nimport {\n getNxTargetOptions,\n getProxyConfig,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport { VitePreviewServerExecutorOptions } from './schema';\nimport { relative } from 'path';\nimport { getBuildExtraArgs } from '../build/build.impl';\n\nexport async function* vitePreviewServerExecutor(\n options: VitePreviewServerExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, preview, loadConfigFromFile } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const target = parseTargetString(options.buildTarget, context);\n const targetConfiguration =\n context.projectsConfigurations.projects[target.project]?.targets[\n target.target\n ];\n if (!targetConfiguration) {\n throw new Error(`Invalid buildTarget: ${options.buildTarget}`);\n }\n\n const isCustomBuildTarget =\n targetConfiguration.executor !== '@nx/vite:build' &&\n targetConfiguration.executor !== '@nrwl/vite:build';\n\n // Retrieve the option for the configured buildTarget.\n const buildTargetOptions: ViteBuildExecutorOptions = getNxTargetOptions(\n options.buildTarget,\n context\n );\n\n const { configuration } = parseTargetString(options.buildTarget, context);\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n buildTargetOptions.configFile\n );\n\n const { buildOptions, otherOptions: otherOptionsFromBuild } =\n await getBuildExtraArgs(buildTargetOptions);\n\n const { previewOptions, otherOptions } = await getExtraArgs(\n options,\n configuration,\n otherOptionsFromBuild\n );\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? otherOptionsFromBuild?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n options.staticFilePath ??\n joinPathFragments(\n offsetFromRoot(projectRoot),\n buildTargetOptions.outputPath\n ) ??\n resolved?.config?.build?.outDir;\n\n if (!outDir) {\n throw new Error(\n `Could not infer the \"outputPath\" or \"outDir\". It should be set in your vite.config.ts, or as a property of the \"${options.buildTarget}\" buildTarget or provided explicitly as a \"staticFilePath\" option.`\n );\n }\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n // Merge the options from the build and preview-serve targets.\n // The latter takes precedence.\n const mergedOptions = {\n ...{ watch: {} },\n build: {\n outDir,\n ...(isCustomBuildTarget ? {} : buildOptions),\n },\n ...(isCustomBuildTarget ? {} : otherOptionsFromBuild),\n ...otherOptions,\n preview: {\n ...getProxyConfig(context, otherOptions.proxyConfig),\n ...previewOptions,\n },\n };\n\n // vite InlineConfig\n const serverConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n ...mergedOptions,\n }\n );\n\n if (serverConfig.mode === 'production') {\n console.warn('WARNING: preview is not meant to be run in production!');\n }\n\n // vite PreviewServer\n let server: Record<string, any> | undefined;\n\n const processOnExit = async () => {\n await closeServer(server);\n };\n\n process.once('SIGINT', processOnExit);\n process.once('SIGTERM', processOnExit);\n process.once('exit', processOnExit);\n\n // Launch the build target.\n // If customBuildTarget is set to true, do not provide any overrides to it\n const buildTargetOverrides = isCustomBuildTarget ? {} : mergedOptions;\n const build = await runExecutor(target, buildTargetOverrides, context);\n\n for await (const result of build) {\n if (result.success) {\n try {\n if (!server) {\n server = await preview(serverConfig);\n }\n server.printUrls();\n\n const resolvedUrls = [\n ...server.resolvedUrls.local,\n ...server.resolvedUrls.network,\n ];\n\n yield {\n success: true,\n baseUrl: resolvedUrls[0] ?? '',\n };\n } catch (e) {\n console.error(e);\n yield {\n success: false,\n baseUrl: '',\n };\n }\n } else {\n yield {\n success: false,\n baseUrl: '',\n };\n }\n }\n\n await new Promise<void>((resolve) => {\n process.once('SIGINT', () => resolve());\n process.once('SIGTERM', () => resolve());\n process.once('exit', () => resolve());\n });\n}\n\nfunction closeServer(server?: Record<string, any>): Promise<void> {\n return new Promise((resolve) => {\n if (!server) {\n resolve();\n } else {\n const { httpServer } = server;\n if (httpServer['closeAllConnections']) {\n // https://github.com/vitejs/vite/pull/14834\n // closeAllConnections was added in Node v18.2.0\n // typically is \"as http.Server\" but no reason\n // to import http just for this\n (httpServer as any).closeAllConnections();\n }\n httpServer.close(() => resolve());\n }\n });\n}\n\nexport default vitePreviewServerExecutor;\n\nasync function getExtraArgs(\n options: VitePreviewServerExecutorOptions,\n configuration: string | undefined,\n otherOptionsFromBuildTarget: Record<string, unknown> | undefined\n): Promise<{\n // vite PreviewOptions\n previewOptions: Record<string, any>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const previewOptions = {};\n const previewSchemaKeys = [\n 'port',\n 'strictPort',\n 'host',\n 'https',\n 'open',\n 'proxy',\n 'cors',\n 'headers',\n ];\n\n let otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (previewSchemaKeys.includes(key)) {\n previewOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n if (configuration) {\n otherOptions = {\n ...otherOptions,\n ...(otherOptionsFromBuildTarget ?? {}),\n };\n }\n\n return {\n previewOptions,\n otherOptions,\n };\n}\n"],"names":["vitePreviewServerExecutor","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","preview","loadConfigFromFile","Function","projectRoot","projectsConfigurations","projects","projectName","root","target","parseTargetString","buildTarget","targetConfiguration","project","targets","Error","isCustomBuildTarget","executor","buildTargetOptions","getNxTargetOptions","configuration","viteConfigPath","normalizeViteConfigFilePath","configFile","buildOptions","otherOptions","otherOptionsFromBuild","getBuildExtraArgs","previewOptions","getExtraArgs","mode","command","outDir","staticFilePath","joinPathFragments","offsetFromRoot","outputPath","config","build","cwd","relative","mergedOptions","watch","getProxyConfig","proxyConfig","serverConfig","console","warn","server","processOnExit","closeServer","once","buildTargetOverrides","runExecutor","result","success","printUrls","resolvedUrls","local","network","baseUrl","e","error","Promise","resolve","httpServer","closeAllConnections","close","otherOptionsFromBuildTarget","schema","extraArgs","key","Object","keys","properties","previewSchemaKeys","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/preview-server/preview-server.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n offsetFromRoot,\n parseTargetString,\n runExecutor,\n} from '@nx/devkit';\nimport {\n getNxTargetOptions,\n getProxyConfig,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport { VitePreviewServerExecutorOptions } from './schema';\nimport { relative } from 'path';\nimport { getBuildExtraArgs } from '../build/build.impl';\nimport { loadViteDynamicImport } from '../../utils/executor-utils';\n\nexport async function* vitePreviewServerExecutor(\n options: VitePreviewServerExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, preview, loadConfigFromFile } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const target = parseTargetString(options.buildTarget, context);\n const targetConfiguration =\n context.projectsConfigurations.projects[target.project]?.targets[\n target.target\n ];\n if (!targetConfiguration) {\n throw new Error(`Invalid buildTarget: ${options.buildTarget}`);\n }\n\n const isCustomBuildTarget =\n targetConfiguration.executor !== '@nx/vite:build' &&\n targetConfiguration.executor !== '@nrwl/vite:build';\n\n // Retrieve the option for the configured buildTarget.\n const buildTargetOptions: ViteBuildExecutorOptions = getNxTargetOptions(\n options.buildTarget,\n context\n );\n\n const { configuration } = parseTargetString(options.buildTarget, context);\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n buildTargetOptions.configFile\n );\n\n const { buildOptions, otherOptions: otherOptionsFromBuild } =\n await getBuildExtraArgs(buildTargetOptions);\n\n const { previewOptions, otherOptions } = await getExtraArgs(\n options,\n configuration,\n otherOptionsFromBuild\n );\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? otherOptionsFromBuild?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n options.staticFilePath ??\n joinPathFragments(\n offsetFromRoot(projectRoot),\n buildTargetOptions.outputPath\n ) ??\n resolved?.config?.build?.outDir;\n\n if (!outDir) {\n throw new Error(\n `Could not infer the \"outputPath\" or \"outDir\". It should be set in your vite.config.ts, or as a property of the \"${options.buildTarget}\" buildTarget or provided explicitly as a \"staticFilePath\" option.`\n );\n }\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n // Merge the options from the build and preview-serve targets.\n // The latter takes precedence.\n const mergedOptions = {\n ...{ watch: {} },\n build: {\n outDir,\n ...(isCustomBuildTarget ? {} : buildOptions),\n },\n ...(isCustomBuildTarget ? {} : otherOptionsFromBuild),\n ...otherOptions,\n preview: {\n ...getProxyConfig(context, otherOptions.proxyConfig),\n ...previewOptions,\n },\n };\n\n // vite InlineConfig\n const serverConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n ...mergedOptions,\n }\n );\n\n if (serverConfig.mode === 'production') {\n console.warn('WARNING: preview is not meant to be run in production!');\n }\n\n // vite PreviewServer\n let server: Record<string, any> | undefined;\n\n const processOnExit = async () => {\n await closeServer(server);\n };\n\n process.once('SIGINT', processOnExit);\n process.once('SIGTERM', processOnExit);\n process.once('exit', processOnExit);\n\n // Launch the build target.\n // If customBuildTarget is set to true, do not provide any overrides to it\n const buildTargetOverrides = isCustomBuildTarget ? {} : mergedOptions;\n const build = await runExecutor(target, buildTargetOverrides, context);\n\n for await (const result of build) {\n if (result.success) {\n try {\n if (!server) {\n server = await preview(serverConfig);\n }\n server.printUrls();\n\n const resolvedUrls = [\n ...server.resolvedUrls.local,\n ...server.resolvedUrls.network,\n ];\n\n yield {\n success: true,\n baseUrl: resolvedUrls[0] ?? '',\n };\n } catch (e) {\n console.error(e);\n yield {\n success: false,\n baseUrl: '',\n };\n }\n } else {\n yield {\n success: false,\n baseUrl: '',\n };\n }\n }\n\n await new Promise<void>((resolve) => {\n process.once('SIGINT', () => resolve());\n process.once('SIGTERM', () => resolve());\n process.once('exit', () => resolve());\n });\n}\n\nfunction closeServer(server?: Record<string, any>): Promise<void> {\n return new Promise((resolve) => {\n if (!server) {\n resolve();\n } else {\n const { httpServer } = server;\n if (httpServer['closeAllConnections']) {\n // https://github.com/vitejs/vite/pull/14834\n // closeAllConnections was added in Node v18.2.0\n // typically is \"as http.Server\" but no reason\n // to import http just for this\n (httpServer as any).closeAllConnections();\n }\n httpServer.close(() => resolve());\n }\n });\n}\n\nexport default vitePreviewServerExecutor;\n\nasync function getExtraArgs(\n options: VitePreviewServerExecutorOptions,\n configuration: string | undefined,\n otherOptionsFromBuildTarget: Record<string, unknown> | undefined\n): Promise<{\n // vite PreviewOptions\n previewOptions: Record<string, any>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const previewOptions = {};\n const previewSchemaKeys = [\n 'port',\n 'strictPort',\n 'host',\n 'https',\n 'open',\n 'proxy',\n 'cors',\n 'headers',\n ];\n\n let otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (previewSchemaKeys.includes(key)) {\n previewOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n if (configuration) {\n otherOptions = {\n ...otherOptions,\n ...(otherOptionsFromBuildTarget ?? {}),\n };\n }\n\n return {\n previewOptions,\n otherOptions,\n };\n}\n"],"names":["vitePreviewServerExecutor","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","preview","loadConfigFromFile","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","target","parseTargetString","buildTarget","targetConfiguration","project","targets","Error","isCustomBuildTarget","executor","buildTargetOptions","getNxTargetOptions","configuration","viteConfigPath","normalizeViteConfigFilePath","configFile","buildOptions","otherOptions","otherOptionsFromBuild","getBuildExtraArgs","previewOptions","getExtraArgs","mode","command","outDir","staticFilePath","joinPathFragments","offsetFromRoot","outputPath","config","build","cwd","relative","mergedOptions","watch","getProxyConfig","proxyConfig","serverConfig","console","warn","server","processOnExit","closeServer","once","buildTargetOverrides","runExecutor","result","success","printUrls","resolvedUrls","local","network","baseUrl","e","error","Promise","resolve","httpServer","closeAllConnections","close","otherOptionsFromBuildTarget","schema","extraArgs","key","Object","keys","properties","previewSchemaKeys","includes"],"mappings":"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"}
|
|
@@ -17,10 +17,11 @@ const _extends = require("@swc/helpers/_/_extends");
|
|
|
17
17
|
const _devkit = require("@nx/devkit");
|
|
18
18
|
const _optionsutils = require("../../../utils/options-utils");
|
|
19
19
|
const _path = require("path");
|
|
20
|
+
const _executorutils = require("../../../utils/executor-utils");
|
|
20
21
|
async function getOptions(options, context, projectRoot, extraArgs) {
|
|
21
22
|
var _resolved_config, _resolved_config1;
|
|
22
23
|
// Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
|
|
23
|
-
const { loadConfigFromFile, mergeConfig } = await
|
|
24
|
+
const { loadConfigFromFile, mergeConfig } = await (0, _executorutils.loadViteDynamicImport)();
|
|
24
25
|
const viteConfigPath = (0, _optionsutils.normalizeViteConfigFilePath)(context.root, projectRoot, options.configFile);
|
|
25
26
|
if (!viteConfigPath) {
|
|
26
27
|
throw new Error((0, _devkit.stripIndents)`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/vite/src/executors/test/lib/utils.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n stripIndents,\n} from '@nx/devkit';\nimport { VitestExecutorOptions } from '../schema';\nimport { normalizeViteConfigFilePath } from '../../../utils/options-utils';\nimport { relative } from 'path';\n\nexport async function getOptions(\n options: VitestExecutorOptions,\n context: ExecutorContext,\n projectRoot: string,\n extraArgs: Record<string, any>\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { loadConfigFromFile, mergeConfig } = await (
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/vite/src/executors/test/lib/utils.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n stripIndents,\n} from '@nx/devkit';\nimport { VitestExecutorOptions } from '../schema';\nimport { normalizeViteConfigFilePath } from '../../../utils/options-utils';\nimport { relative } from 'path';\nimport { loadViteDynamicImport } from '../../../utils/executor-utils';\n\nexport async function getOptions(\n options: VitestExecutorOptions,\n context: ExecutorContext,\n projectRoot: string,\n extraArgs: Record<string, any>\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { loadConfigFromFile, mergeConfig } = await loadViteDynamicImport();\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n\n if (!viteConfigPath) {\n throw new Error(\n stripIndents`\n Unable to load test config from config file ${viteConfigPath}.\n \n Please make sure that vitest is configured correctly, \n or use the @nx/vite:vitest generator to configure it for you.\n You can read more here: https://nx.dev/nx-api/vite/generators/vitest\n `\n );\n }\n\n const resolved = await loadConfigFromFile(\n {\n mode: extraArgs?.mode ?? 'production',\n command: 'serve',\n },\n viteConfigPath\n );\n\n if (!viteConfigPath || !resolved?.config?.['test']) {\n logger.warn(stripIndents`Unable to load test config from config file ${\n resolved?.path ?? viteConfigPath\n }\n Some settings may not be applied as expected.\n You can manually set the config in the project, ${\n context.projectName\n }, configuration.\n `);\n }\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const settings = {\n ...extraArgs,\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n };\n\n return mergeConfig(resolved?.config?.['test'] ?? {}, settings);\n}\n\nexport async function getExtraArgs(\n options: VitestExecutorOptions\n): Promise<Record<string, any>> {\n // support passing extra args to vite cli\n const extraArgs: Record<string, any> = {};\n for (const key of Object.keys(options)) {\n extraArgs[key] = options[key];\n }\n\n return extraArgs;\n}\n"],"names":["getOptions","getExtraArgs","options","context","projectRoot","extraArgs","resolved","loadConfigFromFile","mergeConfig","loadViteDynamicImport","viteConfigPath","normalizeViteConfigFilePath","root","configFile","Error","stripIndents","mode","command","config","logger","warn","path","projectName","process","cwd","relative","joinPathFragments","settings","key","Object","keys"],"mappings":";;;;;;;;IAWsBA,UAAU;eAAVA;;IA6DAC,YAAY;eAAZA;;;;wBAnEf;8BAEqC;sBACnB;+BACa;AAE/B,eAAeD,WACpBE,OAA8B,EAC9BC,OAAwB,EACxBC,WAAmB,EACnBC,SAA8B;QA+BNC,kBAuBLA;IApDnB,yFAAyF;IACzF,MAAM,EAAEC,kBAAkB,EAAEC,WAAW,EAAE,GAAG,MAAMC,IAAAA,oCAAqB;IAEvE,MAAMC,iBAAiBC,IAAAA,yCAA2B,EAChDR,QAAQS,IAAI,EACZR,aACAF,QAAQW,UAAU;IAGpB,IAAI,CAACH,gBAAgB;QACnB,MAAM,IAAII,MACRC,IAAAA,oBAAY,CAAA,CAAC;oDACiC,EAAEL,eAAe;;;;;QAK7D,CAAC;IAEP;QAIUL;IAFV,MAAMC,WAAW,MAAMC,mBACrB;QACES,MAAMX,CAAAA,kBAAAA,6BAAAA,UAAWW,IAAI,YAAfX,kBAAmB;QACzBY,SAAS;IACX,GACAP;IAGF,IAAI,CAACA,kBAAkB,EAACJ,6BAAAA,mBAAAA,SAAUY,MAAM,qBAAhBZ,gBAAkB,CAAC,OAAO,GAAE;YAEhDA;QADFa,cAAM,CAACC,IAAI,CAACL,IAAAA,oBAAY,CAAA,CAAC,4CAA4C,EACnET,CAAAA,iBAAAA,4BAAAA,SAAUe,IAAI,YAAdf,iBAAkBI,eACnB;;kDAE6C,EAC9CP,QAAQmB,WAAW,CACpB;QACK,CAAC;IACP;IACA,MAAMV,OACJR,gBAAgB,MACZmB,QAAQC,GAAG,KACXC,IAAAA,cAAQ,EAACtB,QAAQqB,GAAG,EAAEE,IAAAA,yBAAiB,EAACvB,QAAQS,IAAI,EAAER;QAMpDE;IAJR,MAAMqB,WAAW,eACZtB;QACH,sEAAsE;QACtE,gEAAgE;QAChEO,MAAMN,CAAAA,wBAAAA,SAASY,MAAM,CAACN,IAAI,YAApBN,wBAAwBM;QAC9BC,YAAYH;;QAGKJ;IAAnB,OAAOE,YAAYF,CAAAA,wBAAAA,6BAAAA,oBAAAA,SAAUY,MAAM,qBAAhBZ,iBAAkB,CAAC,OAAO,YAA1BA,wBAA8B,CAAC,GAAGqB;AACvD;AAEO,eAAe1B,aACpBC,OAA8B;IAE9B,yCAAyC;IACzC,MAAMG,YAAiC,CAAC;IACxC,KAAK,MAAMuB,OAAOC,OAAOC,IAAI,CAAC5B,SAAU;QACtCG,SAAS,CAACuB,IAAI,GAAG1B,OAAO,CAAC0B,IAAI;IAC/B;IAEA,OAAOvB;AACT"}
|
package/src/plugins/plugin.js
CHANGED
|
@@ -16,11 +16,11 @@ _export(exports, {
|
|
|
16
16
|
const _devkit = require("@nx/devkit");
|
|
17
17
|
const _path = require("path");
|
|
18
18
|
const _getnamedinputs = require("@nx/devkit/src/utils/get-named-inputs");
|
|
19
|
-
const _vite = require("vite");
|
|
20
19
|
const _fs = require("fs");
|
|
21
20
|
const _calculatehashforcreatenodes = require("@nx/devkit/src/utils/calculate-hash-for-create-nodes");
|
|
22
21
|
const _cachedirectory = require("nx/src/utils/cache-directory");
|
|
23
22
|
const _js = require("@nx/js");
|
|
23
|
+
const _executorutils = require("../utils/executor-utils");
|
|
24
24
|
const cachePath = (0, _path.join)(_cachedirectory.projectGraphCacheDirectory, 'vite.hash');
|
|
25
25
|
const targetsCache = (0, _fs.existsSync)(cachePath) ? readTargetsCache() : {};
|
|
26
26
|
const calculatedTargets = {};
|
|
@@ -35,7 +35,7 @@ const createDependencies = ()=>{
|
|
|
35
35
|
return [];
|
|
36
36
|
};
|
|
37
37
|
const createNodes = [
|
|
38
|
-
'**/vite.config.{js,ts}',
|
|
38
|
+
'**/{vite,vitest}.config.{js,ts,mjs,mts,cjs,cts}',
|
|
39
39
|
async (configFilePath, options, context)=>{
|
|
40
40
|
const projectRoot = (0, _path.dirname)(configFilePath);
|
|
41
41
|
// Do not create a project if package.json and project.json isn't there.
|
|
@@ -60,18 +60,21 @@ const createNodes = [
|
|
|
60
60
|
}
|
|
61
61
|
];
|
|
62
62
|
async function buildViteTargets(configFilePath, projectRoot, options, context) {
|
|
63
|
-
const
|
|
63
|
+
const { loadConfigFromFile } = await (0, _executorutils.loadViteDynamicImport)();
|
|
64
|
+
const viteConfig = await loadConfigFromFile({
|
|
64
65
|
command: 'build',
|
|
65
66
|
mode: 'production'
|
|
66
67
|
}, configFilePath);
|
|
67
68
|
const { buildOutputs, testOutputs } = getOutputs(viteConfig == null ? void 0 : viteConfig.config, projectRoot);
|
|
68
69
|
const namedInputs = (0, _getnamedinputs.getNamedInputs)(projectRoot, context);
|
|
69
70
|
const targets = {};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
if (!configFilePath.includes('vitest.config')) {
|
|
72
|
+
targets[options.buildTargetName] = await buildTarget(options.buildTargetName, namedInputs, buildOutputs, projectRoot);
|
|
73
|
+
targets[options.serveTargetName] = serveTarget(projectRoot);
|
|
74
|
+
targets[options.previewTargetName] = previewTarget(projectRoot);
|
|
75
|
+
targets[options.serveStaticTargetName] = serveStaticTarget(options);
|
|
76
|
+
}
|
|
73
77
|
targets[options.testTargetName] = await testTarget(namedInputs, testOutputs, projectRoot);
|
|
74
|
-
targets[options.serveStaticTargetName] = serveStaticTarget(options);
|
|
75
78
|
return targets;
|
|
76
79
|
}
|
|
77
80
|
async function buildTarget(buildTargetName, namedInputs, outputs, projectRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n detectPackageManager,\n joinPathFragments,\n readJsonFile,\n TargetConfiguration,\n workspaceRoot,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { loadConfigFromFile, UserConfig } from 'vite';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { projectGraphCacheDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n}\n\nconst cachePath = join(projectGraphCacheDirectory, 'vite.hash');\nconst targetsCache = existsSync(cachePath) ? readTargetsCache() : {};\n\nconst calculatedTargets: Record<\n string,\n Record<string, TargetConfiguration>\n> = {};\n\nfunction readTargetsCache(): Record<\n string,\n Record<string, TargetConfiguration>\n> {\n return readJsonFile(cachePath);\n}\n\nfunction writeTargetsToCache(\n targets: Record<string, Record<string, TargetConfiguration>>\n) {\n writeJsonFile(cachePath, targets);\n}\n\nexport const createDependencies: CreateDependencies = () => {\n writeTargetsToCache(calculatedTargets);\n return [];\n};\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n '**/vite.config.{js,ts}',\n async (configFilePath, options, context) => {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n options = normalizeOptions(options);\n\n const hash = calculateHashForCreateNodes(projectRoot, options, context, [\n getLockFileName(detectPackageManager(context.workspaceRoot)),\n ]);\n const targets = targetsCache[hash]\n ? targetsCache[hash]\n : await buildViteTargets(configFilePath, projectRoot, options, context);\n\n calculatedTargets[hash] = targets;\n\n return {\n projects: {\n [projectRoot]: {\n root: projectRoot,\n targets,\n },\n },\n };\n },\n];\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n context: CreateNodesContext\n) {\n const viteConfig = await loadConfigFromFile(\n {\n command: 'build',\n mode: 'production',\n },\n configFilePath\n );\n\n const { buildOutputs, testOutputs } = getOutputs(\n viteConfig?.config,\n projectRoot\n );\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n targets[options.buildTargetName] = await buildTarget(\n options.buildTargetName,\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n targets[options.serveTargetName] = serveTarget(projectRoot);\n\n targets[options.previewTargetName] = previewTarget(projectRoot);\n\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n\n return targets;\n}\n\nasync function buildTarget(\n buildTargetName: string,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vite build`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n dependsOn: [`^${buildTargetName}`],\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vitest run`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['default', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n ],\n outputs,\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n viteConfig: UserConfig,\n projectRoot: string\n): {\n buildOutputs: string[];\n testOutputs: string[];\n} {\n const { build, test } = viteConfig;\n\n const buildOutputPath = normalizeOutputPath(\n build?.outDir,\n projectRoot,\n 'dist'\n );\n\n const reportsDirectoryPath = normalizeOutputPath(\n test?.coverage?.reportsDirectory,\n projectRoot,\n 'coverage'\n );\n\n return {\n buildOutputs: [buildOutputPath],\n testOutputs: [reportsDirectoryPath],\n };\n}\n\nfunction normalizeOutputPath(\n outputPath: string | undefined,\n projectRoot: string,\n path: 'coverage' | 'dist'\n): string | undefined {\n if (!outputPath) {\n if (projectRoot === '.') {\n return `{projectRoot}/${path}`;\n } else {\n return `{workspaceRoot}/${path}/{projectRoot}`;\n }\n } else {\n if (isAbsolute(outputPath)) {\n return `{workspaceRoot}/${relative(workspaceRoot, outputPath)}`;\n } else {\n if (outputPath.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, outputPath));\n } else {\n return join('{projectRoot}', outputPath);\n }\n }\n }\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n return options;\n}\n"],"names":["createDependencies","createNodes","cachePath","join","projectGraphCacheDirectory","targetsCache","existsSync","readTargetsCache","calculatedTargets","readJsonFile","writeTargetsToCache","targets","writeJsonFile","configFilePath","options","context","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","normalizeOptions","hash","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","projects","root","viteConfig","loadConfigFromFile","command","mode","buildOutputs","testOutputs","getOutputs","config","namedInputs","getNamedInputs","buildTargetName","buildTarget","serveTargetName","serveTarget","previewTargetName","previewTarget","testTargetName","testTarget","serveStaticTargetName","serveStaticTarget","outputs","cwd","joinPathFragments","cache","dependsOn","inputs","externalDependencies","targetConfig","executor","test","build","buildOutputPath","normalizeOutputPath","outDir","reportsDirectoryPath","coverage","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n detectPackageManager,\n joinPathFragments,\n readJsonFile,\n TargetConfiguration,\n workspaceRoot,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { projectGraphCacheDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nimport { loadViteDynamicImport } from '../utils/executor-utils';\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n}\n\nconst cachePath = join(projectGraphCacheDirectory, 'vite.hash');\nconst targetsCache = existsSync(cachePath) ? readTargetsCache() : {};\n\nconst calculatedTargets: Record<\n string,\n Record<string, TargetConfiguration>\n> = {};\n\nfunction readTargetsCache(): Record<\n string,\n Record<string, TargetConfiguration>\n> {\n return readJsonFile(cachePath);\n}\n\nfunction writeTargetsToCache(\n targets: Record<string, Record<string, TargetConfiguration>>\n) {\n writeJsonFile(cachePath, targets);\n}\n\nexport const createDependencies: CreateDependencies = () => {\n writeTargetsToCache(calculatedTargets);\n return [];\n};\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n '**/{vite,vitest}.config.{js,ts,mjs,mts,cjs,cts}',\n async (configFilePath, options, context) => {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n options = normalizeOptions(options);\n\n const hash = calculateHashForCreateNodes(projectRoot, options, context, [\n getLockFileName(detectPackageManager(context.workspaceRoot)),\n ]);\n const targets = targetsCache[hash]\n ? targetsCache[hash]\n : await buildViteTargets(configFilePath, projectRoot, options, context);\n\n calculatedTargets[hash] = targets;\n\n return {\n projects: {\n [projectRoot]: {\n root: projectRoot,\n targets,\n },\n },\n };\n },\n];\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n context: CreateNodesContext\n) {\n const { loadConfigFromFile } = await loadViteDynamicImport();\n const viteConfig = await loadConfigFromFile(\n {\n command: 'build',\n mode: 'production',\n },\n configFilePath\n );\n\n const { buildOutputs, testOutputs } = getOutputs(\n viteConfig?.config,\n projectRoot\n );\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n if (!configFilePath.includes('vitest.config')) {\n targets[options.buildTargetName] = await buildTarget(\n options.buildTargetName,\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n targets[options.serveTargetName] = serveTarget(projectRoot);\n\n targets[options.previewTargetName] = previewTarget(projectRoot);\n\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n }\n\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n\n return targets;\n}\n\nasync function buildTarget(\n buildTargetName: string,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vite build`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n dependsOn: [`^${buildTargetName}`],\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vitest run`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['default', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n ],\n outputs,\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n viteConfig: Record<string, any> | undefined,\n projectRoot: string\n): {\n buildOutputs: string[];\n testOutputs: string[];\n} {\n const { build, test } = viteConfig;\n\n const buildOutputPath = normalizeOutputPath(\n build?.outDir,\n projectRoot,\n 'dist'\n );\n\n const reportsDirectoryPath = normalizeOutputPath(\n test?.coverage?.reportsDirectory,\n projectRoot,\n 'coverage'\n );\n\n return {\n buildOutputs: [buildOutputPath],\n testOutputs: [reportsDirectoryPath],\n };\n}\n\nfunction normalizeOutputPath(\n outputPath: string | undefined,\n projectRoot: string,\n path: 'coverage' | 'dist'\n): string | undefined {\n if (!outputPath) {\n if (projectRoot === '.') {\n return `{projectRoot}/${path}`;\n } else {\n return `{workspaceRoot}/${path}/{projectRoot}`;\n }\n } else {\n if (isAbsolute(outputPath)) {\n return `{workspaceRoot}/${relative(workspaceRoot, outputPath)}`;\n } else {\n if (outputPath.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, outputPath));\n } else {\n return join('{projectRoot}', outputPath);\n }\n }\n }\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n return options;\n}\n"],"names":["createDependencies","createNodes","cachePath","join","projectGraphCacheDirectory","targetsCache","existsSync","readTargetsCache","calculatedTargets","readJsonFile","writeTargetsToCache","targets","writeJsonFile","configFilePath","options","context","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","normalizeOptions","hash","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","projects","root","loadConfigFromFile","loadViteDynamicImport","viteConfig","command","mode","buildOutputs","testOutputs","getOutputs","config","namedInputs","getNamedInputs","buildTargetName","buildTarget","serveTargetName","serveTarget","previewTargetName","previewTarget","serveStaticTargetName","serveStaticTarget","testTargetName","testTarget","outputs","cwd","joinPathFragments","cache","dependsOn","inputs","externalDependencies","targetConfig","executor","test","build","buildOutputPath","normalizeOutputPath","outDir","reportsDirectoryPath","coverage","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"mappings":"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"}
|
|
@@ -7,3 +7,4 @@ export declare function validateTypes(opts: {
|
|
|
7
7
|
tsconfig: string;
|
|
8
8
|
}): Promise<void>;
|
|
9
9
|
export declare function createBuildableTsConfig(projectRoot: string, options: ViteBuildExecutorOptions | ViteDevServerExecutorOptions, context: ExecutorContext): void;
|
|
10
|
+
export declare function loadViteDynamicImport(): Promise<typeof import("vite")>;
|
|
@@ -11,6 +11,9 @@ _export(exports, {
|
|
|
11
11
|
},
|
|
12
12
|
createBuildableTsConfig: function() {
|
|
13
13
|
return createBuildableTsConfig;
|
|
14
|
+
},
|
|
15
|
+
loadViteDynamicImport: function() {
|
|
16
|
+
return loadViteDynamicImport;
|
|
14
17
|
}
|
|
15
18
|
});
|
|
16
19
|
const _js = require("@nx/js");
|
|
@@ -43,5 +46,8 @@ function createBuildableTsConfig(projectRoot, options, context) {
|
|
|
43
46
|
process.env.NX_TSCONFIG_PATH = tmpTsConfigPath;
|
|
44
47
|
}
|
|
45
48
|
}
|
|
49
|
+
function loadViteDynamicImport() {
|
|
50
|
+
return Function('return import("vite")')();
|
|
51
|
+
}
|
|
46
52
|
|
|
47
53
|
//# sourceMappingURL=executor-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/utils/executor-utils.ts"],"sourcesContent":["import { printDiagnostics, runTypeCheck } from '@nx/js';\nimport { join } from 'path';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ExecutorContext } from '@nx/devkit';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\nimport { getProjectTsConfigPath } from './options-utils';\n\nexport async function validateTypes(opts: {\n workspaceRoot: string;\n projectRoot: string;\n tsconfig: string;\n}): Promise<void> {\n const result = await runTypeCheck({\n workspaceRoot: opts.workspaceRoot,\n tsConfigPath: join(opts.workspaceRoot, opts.tsconfig),\n mode: 'noEmit',\n });\n\n await printDiagnostics(result.errors, result.warnings);\n\n if (result.errors.length > 0) {\n throw new Error('Found type errors. See above.');\n }\n}\n\nexport function createBuildableTsConfig(\n projectRoot: string,\n options: ViteBuildExecutorOptions | ViteDevServerExecutorOptions,\n context: ExecutorContext\n) {\n const tsConfig = getProjectTsConfigPath(projectRoot);\n options['buildLibsFromSource'] ??= true;\n\n if (!options['buildLibsFromSource']) {\n const { dependencies } = calculateProjectBuildableDependencies(\n context.taskGraph,\n context.projectGraph,\n context.root,\n context.projectName,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n context.targetName === 'serve' ? 'build' : context.targetName,\n context.configurationName\n );\n // This tsconfig is used via the Vite ts paths plugin.\n // It can be also used by other user-defined Vite plugins (e.g. for creating type declaration files).\n const tmpTsConfigPath = createTmpTsConfig(\n tsConfig,\n context.root,\n projectRoot,\n dependencies\n );\n process.env.NX_TSCONFIG_PATH = tmpTsConfigPath;\n }\n}\n"],"names":["validateTypes","createBuildableTsConfig","opts","result","runTypeCheck","workspaceRoot","tsConfigPath","join","tsconfig","mode","printDiagnostics","errors","warnings","length","Error","projectRoot","options","context","tsConfig","getProjectTsConfigPath","dependencies","calculateProjectBuildableDependencies","taskGraph","projectGraph","root","projectName","targetName","configurationName","tmpTsConfigPath","createTmpTsConfig","process","env","NX_TSCONFIG_PATH"],"mappings":";;;;;;;;IAWsBA,aAAa;eAAbA;;IAkBNC,uBAAuB;eAAvBA;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/executor-utils.ts"],"sourcesContent":["import { printDiagnostics, runTypeCheck } from '@nx/js';\nimport { join } from 'path';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ExecutorContext } from '@nx/devkit';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\nimport { getProjectTsConfigPath } from './options-utils';\n\nexport async function validateTypes(opts: {\n workspaceRoot: string;\n projectRoot: string;\n tsconfig: string;\n}): Promise<void> {\n const result = await runTypeCheck({\n workspaceRoot: opts.workspaceRoot,\n tsConfigPath: join(opts.workspaceRoot, opts.tsconfig),\n mode: 'noEmit',\n });\n\n await printDiagnostics(result.errors, result.warnings);\n\n if (result.errors.length > 0) {\n throw new Error('Found type errors. See above.');\n }\n}\n\nexport function createBuildableTsConfig(\n projectRoot: string,\n options: ViteBuildExecutorOptions | ViteDevServerExecutorOptions,\n context: ExecutorContext\n) {\n const tsConfig = getProjectTsConfigPath(projectRoot);\n options['buildLibsFromSource'] ??= true;\n\n if (!options['buildLibsFromSource']) {\n const { dependencies } = calculateProjectBuildableDependencies(\n context.taskGraph,\n context.projectGraph,\n context.root,\n context.projectName,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n context.targetName === 'serve' ? 'build' : context.targetName,\n context.configurationName\n );\n // This tsconfig is used via the Vite ts paths plugin.\n // It can be also used by other user-defined Vite plugins (e.g. for creating type declaration files).\n const tmpTsConfigPath = createTmpTsConfig(\n tsConfig,\n context.root,\n projectRoot,\n dependencies\n );\n process.env.NX_TSCONFIG_PATH = tmpTsConfigPath;\n }\n}\n\nexport function loadViteDynamicImport() {\n return Function('return import(\"vite\")')() as Promise<typeof import('vite')>;\n}\n"],"names":["validateTypes","createBuildableTsConfig","loadViteDynamicImport","opts","result","runTypeCheck","workspaceRoot","tsConfigPath","join","tsconfig","mode","printDiagnostics","errors","warnings","length","Error","projectRoot","options","context","tsConfig","getProjectTsConfigPath","dependencies","calculateProjectBuildableDependencies","taskGraph","projectGraph","root","projectName","targetName","configurationName","tmpTsConfigPath","createTmpTsConfig","process","env","NX_TSCONFIG_PATH","Function"],"mappings":";;;;;;;;IAWsBA,aAAa;eAAbA;;IAkBNC,uBAAuB;eAAvBA;;IA+BAC,qBAAqB;eAArBA;;;oBA5D+B;sBAC1B;oCAOd;8BACgC;AAEhC,eAAeF,cAAcG,IAInC;IACC,MAAMC,SAAS,MAAMC,IAAAA,gBAAY,EAAC;QAChCC,eAAeH,KAAKG,aAAa;QACjCC,cAAcC,IAAAA,UAAI,EAACL,KAAKG,aAAa,EAAEH,KAAKM,QAAQ;QACpDC,MAAM;IACR;IAEA,MAAMC,IAAAA,oBAAgB,EAACP,OAAOQ,MAAM,EAAER,OAAOS,QAAQ;IAErD,IAAIT,OAAOQ,MAAM,CAACE,MAAM,GAAG,GAAG;QAC5B,MAAM,IAAIC,MAAM;IAClB;AACF;AAEO,SAASd,wBACde,WAAmB,EACnBC,OAAgE,EAChEC,OAAwB;QAGxBD,UAAQ;IADR,MAAME,WAAWC,IAAAA,oCAAsB,EAACJ;;IACxCC,MAAAA,WAAAA,QAAO,CAAC,uBAAA,sBAAsB,gBAA9BA,QAAO,CAAC,qBAAsB,GAAK;IAEnC,IAAI,CAACA,OAAO,CAAC,sBAAsB,EAAE;QACnC,MAAM,EAAEI,YAAY,EAAE,GAAGC,IAAAA,yDAAqC,EAC5DJ,QAAQK,SAAS,EACjBL,QAAQM,YAAY,EACpBN,QAAQO,IAAI,EACZP,QAAQQ,WAAW,EACnB,iEAAiE;QACjE,0DAA0D;QAC1DR,QAAQS,UAAU,KAAK,UAAU,UAAUT,QAAQS,UAAU,EAC7DT,QAAQU,iBAAiB;QAE3B,sDAAsD;QACtD,qGAAqG;QACrG,MAAMC,kBAAkBC,IAAAA,qCAAiB,EACvCX,UACAD,QAAQO,IAAI,EACZT,aACAK;QAEFU,QAAQC,GAAG,CAACC,gBAAgB,GAAGJ;IACjC;AACF;AAEO,SAAS3B;IACd,OAAOgC,SAAS;AAClB"}
|
|
@@ -27,6 +27,7 @@ _export(exports, {
|
|
|
27
27
|
});
|
|
28
28
|
const _devkit = require("@nx/devkit");
|
|
29
29
|
const _fs = require("fs");
|
|
30
|
+
const _executorutils = require("./executor-utils");
|
|
30
31
|
function normalizeViteConfigFilePath(contextRoot, projectRoot, configFile) {
|
|
31
32
|
if (configFile) {
|
|
32
33
|
const normalized = (0, _devkit.joinPathFragments)(configFile);
|
|
@@ -66,7 +67,7 @@ function getViteServerProxyConfigPath(nxProxyConfig, context) {
|
|
|
66
67
|
async function getViteServerOptions(options, context) {
|
|
67
68
|
// returns vite ServerOptions
|
|
68
69
|
// Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
|
|
69
|
-
const { searchForWorkspaceRoot } = await
|
|
70
|
+
const { searchForWorkspaceRoot } = await (0, _executorutils.loadViteDynamicImport)();
|
|
70
71
|
const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
|
|
71
72
|
const serverOptions = {
|
|
72
73
|
fs: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/utils/options-utils.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n parseTargetString,\n readTargetOptions,\n} from '@nx/devkit';\nimport { existsSync } from 'fs';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\n\n/**\n * Returns the path to the vite config file or undefined when not found.\n */\nexport function normalizeViteConfigFilePath(\n contextRoot: string,\n projectRoot: string,\n configFile?: string\n): string | undefined {\n if (configFile) {\n const normalized = joinPathFragments(configFile);\n if (!existsSync(normalized)) {\n throw new Error(\n `Could not find vite config at provided path \"${normalized}\".`\n );\n }\n return normalized;\n }\n\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (\n existsSync(\n joinPathFragments(contextRoot, projectRoot, `vite.config.${ext}`)\n )\n ) {\n return joinPathFragments(contextRoot, projectRoot, `vite.config.${ext}`);\n } else if (\n existsSync(\n joinPathFragments(contextRoot, projectRoot, `vitest.config.${ext}`)\n )\n ) {\n return joinPathFragments(\n contextRoot,\n projectRoot,\n `vitest.config.${ext}`\n );\n }\n }\n}\n\nexport function getProjectTsConfigPath(\n projectRoot: string\n): string | undefined {\n return existsSync(joinPathFragments(projectRoot, 'tsconfig.app.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.app.json')\n : existsSync(joinPathFragments(projectRoot, 'tsconfig.lib.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.lib.json')\n : existsSync(joinPathFragments(projectRoot, 'tsconfig.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.json')\n : undefined;\n}\n\n/**\n * Returns the path to the proxy configuration file or undefined when not found.\n */\nexport function getViteServerProxyConfigPath(\n nxProxyConfig: string | undefined,\n context: ExecutorContext\n): string | undefined {\n if (nxProxyConfig) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n const proxyConfigPath = nxProxyConfig\n ? joinPathFragments(context.root, nxProxyConfig)\n : joinPathFragments(projectRoot, 'proxy.conf.json');\n\n if (existsSync(proxyConfigPath)) {\n return proxyConfigPath;\n }\n }\n}\n\n/**\n * Builds the options for the vite dev server.\n */\nexport async function getViteServerOptions(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): Promise<Record<string, unknown>> {\n // returns vite ServerOptions\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { searchForWorkspaceRoot } = await (
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/options-utils.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n parseTargetString,\n readTargetOptions,\n} from '@nx/devkit';\nimport { existsSync } from 'fs';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport { loadViteDynamicImport } from './executor-utils';\n\n/**\n * Returns the path to the vite config file or undefined when not found.\n */\nexport function normalizeViteConfigFilePath(\n contextRoot: string,\n projectRoot: string,\n configFile?: string\n): string | undefined {\n if (configFile) {\n const normalized = joinPathFragments(configFile);\n if (!existsSync(normalized)) {\n throw new Error(\n `Could not find vite config at provided path \"${normalized}\".`\n );\n }\n return normalized;\n }\n\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (\n existsSync(\n joinPathFragments(contextRoot, projectRoot, `vite.config.${ext}`)\n )\n ) {\n return joinPathFragments(contextRoot, projectRoot, `vite.config.${ext}`);\n } else if (\n existsSync(\n joinPathFragments(contextRoot, projectRoot, `vitest.config.${ext}`)\n )\n ) {\n return joinPathFragments(\n contextRoot,\n projectRoot,\n `vitest.config.${ext}`\n );\n }\n }\n}\n\nexport function getProjectTsConfigPath(\n projectRoot: string\n): string | undefined {\n return existsSync(joinPathFragments(projectRoot, 'tsconfig.app.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.app.json')\n : existsSync(joinPathFragments(projectRoot, 'tsconfig.lib.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.lib.json')\n : existsSync(joinPathFragments(projectRoot, 'tsconfig.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.json')\n : undefined;\n}\n\n/**\n * Returns the path to the proxy configuration file or undefined when not found.\n */\nexport function getViteServerProxyConfigPath(\n nxProxyConfig: string | undefined,\n context: ExecutorContext\n): string | undefined {\n if (nxProxyConfig) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n const proxyConfigPath = nxProxyConfig\n ? joinPathFragments(context.root, nxProxyConfig)\n : joinPathFragments(projectRoot, 'proxy.conf.json');\n\n if (existsSync(proxyConfigPath)) {\n return proxyConfigPath;\n }\n }\n}\n\n/**\n * Builds the options for the vite dev server.\n */\nexport async function getViteServerOptions(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): Promise<Record<string, unknown>> {\n // returns vite ServerOptions\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { searchForWorkspaceRoot } = await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const serverOptions: Record<string, unknown> = {\n fs: {\n allow: [\n searchForWorkspaceRoot(joinPathFragments(projectRoot)),\n joinPathFragments(context.root, 'node_modules/vite'),\n ],\n },\n };\n\n const proxyConfigPath = getViteServerProxyConfigPath(\n options.proxyConfig,\n context\n );\n if (proxyConfigPath) {\n logger.info(`Loading proxy configuration from: ${proxyConfigPath}`);\n serverOptions.proxy = require(proxyConfigPath);\n }\n\n return serverOptions;\n}\n\nexport function getProxyConfig(\n context: ExecutorContext,\n proxyConfig?: string\n): Record<string, string | unknown> | undefined {\n const proxyConfigPath = getViteServerProxyConfigPath(proxyConfig, context);\n if (proxyConfigPath) {\n logger.info(`Loading proxy configuration from: ${proxyConfigPath}`);\n return require(proxyConfigPath);\n }\n return;\n}\n\nexport function getNxTargetOptions(target: string, context: ExecutorContext) {\n const targetObj = parseTargetString(target, context);\n return readTargetOptions(targetObj, context);\n}\n"],"names":["normalizeViteConfigFilePath","getProjectTsConfigPath","getViteServerProxyConfigPath","getViteServerOptions","getProxyConfig","getNxTargetOptions","contextRoot","projectRoot","configFile","normalized","joinPathFragments","existsSync","Error","allowsExt","ext","undefined","nxProxyConfig","context","projectsConfigurations","projects","projectName","root","proxyConfigPath","options","searchForWorkspaceRoot","loadViteDynamicImport","serverOptions","fs","allow","proxyConfig","logger","info","proxy","require","target","targetObj","parseTargetString","readTargetOptions"],"mappings":"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"}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const nxVersion: any;
|
|
2
2
|
export declare const viteVersion = "^5.0.0";
|
|
3
|
-
export declare const vitestVersion = "
|
|
3
|
+
export declare const vitestVersion = "^1.0.4";
|
|
4
4
|
export declare const vitePluginReactVersion = "^4.2.0";
|
|
5
5
|
export declare const vitePluginReactSwcVersion = "^3.5.0";
|
|
6
6
|
export declare const jsdomVersion = "~22.1.0";
|
|
7
7
|
export declare const vitePluginDtsVersion = "~2.3.0";
|
|
8
8
|
export declare const happyDomVersion = "~9.20.3";
|
|
9
9
|
export declare const edgeRuntimeVmVersion = "~3.0.2";
|
|
10
|
-
export declare const vitestCoverageV8Version = "
|
|
11
|
-
export declare const vitestCoverageIstanbulVersion = "
|
|
10
|
+
export declare const vitestCoverageV8Version = "^1.0.4";
|
|
11
|
+
export declare const vitestCoverageIstanbulVersion = "^1.0.4";
|
package/src/utils/versions.js
CHANGED
|
@@ -42,14 +42,14 @@ _export(exports, {
|
|
|
42
42
|
});
|
|
43
43
|
const nxVersion = require('../../package.json').version;
|
|
44
44
|
const viteVersion = '^5.0.0';
|
|
45
|
-
const vitestVersion = '
|
|
45
|
+
const vitestVersion = '^1.0.4';
|
|
46
46
|
const vitePluginReactVersion = '^4.2.0';
|
|
47
47
|
const vitePluginReactSwcVersion = '^3.5.0';
|
|
48
48
|
const jsdomVersion = '~22.1.0';
|
|
49
49
|
const vitePluginDtsVersion = '~2.3.0';
|
|
50
50
|
const happyDomVersion = '~9.20.3';
|
|
51
51
|
const edgeRuntimeVmVersion = '~3.0.2';
|
|
52
|
-
const vitestCoverageV8Version = '
|
|
53
|
-
const vitestCoverageIstanbulVersion = '
|
|
52
|
+
const vitestCoverageV8Version = '^1.0.4';
|
|
53
|
+
const vitestCoverageIstanbulVersion = '^1.0.4';
|
|
54
54
|
|
|
55
55
|
//# sourceMappingURL=versions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/utils/versions.ts"],"sourcesContent":["export const nxVersion = require('../../package.json').version;\nexport const viteVersion = '^5.0.0';\nexport const vitestVersion = '
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/versions.ts"],"sourcesContent":["export const nxVersion = require('../../package.json').version;\nexport const viteVersion = '^5.0.0';\nexport const vitestVersion = '^1.0.4';\nexport const vitePluginReactVersion = '^4.2.0';\nexport const vitePluginReactSwcVersion = '^3.5.0';\nexport const jsdomVersion = '~22.1.0';\nexport const vitePluginDtsVersion = '~2.3.0';\nexport const happyDomVersion = '~9.20.3';\nexport const edgeRuntimeVmVersion = '~3.0.2';\n\n// Coverage providers\nexport const vitestCoverageV8Version = '^1.0.4';\nexport const vitestCoverageIstanbulVersion = '^1.0.4';\n"],"names":["nxVersion","viteVersion","vitestVersion","vitePluginReactVersion","vitePluginReactSwcVersion","jsdomVersion","vitePluginDtsVersion","happyDomVersion","edgeRuntimeVmVersion","vitestCoverageV8Version","vitestCoverageIstanbulVersion","require","version"],"mappings":";;;;;;;;IAAaA,SAAS;eAATA;;IACAC,WAAW;eAAXA;;IACAC,aAAa;eAAbA;;IACAC,sBAAsB;eAAtBA;;IACAC,yBAAyB;eAAzBA;;IACAC,YAAY;eAAZA;;IACAC,oBAAoB;eAApBA;;IACAC,eAAe;eAAfA;;IACAC,oBAAoB;eAApBA;;IAGAC,uBAAuB;eAAvBA;;IACAC,6BAA6B;eAA7BA;;;AAZN,MAAMV,YAAYW,QAAQ,sBAAsBC,OAAO;AACvD,MAAMX,cAAc;AACpB,MAAMC,gBAAgB;AACtB,MAAMC,yBAAyB;AAC/B,MAAMC,4BAA4B;AAClC,MAAMC,eAAe;AACrB,MAAMC,uBAAuB;AAC7B,MAAMC,kBAAkB;AACxB,MAAMC,uBAAuB;AAG7B,MAAMC,0BAA0B;AAChC,MAAMC,gCAAgC"}
|