@nx/vite 16.10.0 → 17.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/vite",
3
- "version": "16.10.0",
3
+ "version": "17.0.0-beta.1",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for building and testing applications using Vite",
6
6
  "repository": {
@@ -32,10 +32,10 @@
32
32
  "@phenomnomnominal/tsquery": "~5.0.1",
33
33
  "@swc/helpers": "~0.5.0",
34
34
  "enquirer": "~2.3.6",
35
- "@nx/devkit": "16.10.0",
36
- "@nx/js": "16.10.0",
35
+ "@nx/devkit": "17.0.0-beta.1",
36
+ "@nx/js": "17.0.0-beta.1",
37
37
  "tsconfig-paths": "^4.1.2",
38
- "@nrwl/vite": "16.10.0"
38
+ "@nrwl/vite": "17.0.0-beta.1"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "vite": "^4.3.4",
@@ -15,7 +15,6 @@ _export(exports, {
15
15
  });
16
16
  const _extends = require("@swc/helpers/_/_extends");
17
17
  const _devkit = require("@nx/devkit");
18
- const _vite = require("vite");
19
18
  const _optionsutils = require("../../utils/options-utils");
20
19
  const _js = require("@nx/js");
21
20
  const _fs = require("fs");
@@ -23,10 +22,12 @@ const _path = require("path");
23
22
  const _asynciterable = require("@nx/devkit/src/utils/async-iterable");
24
23
  const _executorutils = require("../../utils/executor-utils");
25
24
  async function* viteBuildExecutor(options, context) {
25
+ // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
26
+ const { mergeConfig, build } = await Function('return import("vite")')();
26
27
  const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
27
28
  (0, _executorutils.createBuildableTsConfig)(projectRoot, options, context);
28
29
  const normalizedOptions = normalizeOptions(options);
29
- const buildConfig = (0, _vite.mergeConfig)((0, _optionsutils.getViteSharedConfig)(normalizedOptions, false, context), {
30
+ const buildConfig = mergeConfig((0, _optionsutils.getViteSharedConfig)(normalizedOptions, false, context), {
30
31
  build: (0, _optionsutils.getViteBuildOptions)(normalizedOptions, context)
31
32
  });
32
33
  if (!options.skipTypeCheck) {
@@ -36,7 +37,7 @@ async function* viteBuildExecutor(options, context) {
36
37
  tsconfig: (0, _optionsutils.getProjectTsConfigPath)(projectRoot)
37
38
  });
38
39
  }
39
- const watcherOrOutput = await runInstance(buildConfig);
40
+ const watcherOrOutput = await build(buildConfig);
40
41
  const libraryPackageJson = (0, _path.resolve)(projectRoot, 'package.json');
41
42
  const rootPackageJson = (0, _path.resolve)(context.root, 'package.json');
42
43
  const distPackageJson = (0, _path.resolve)(normalizedOptions.outputPath, 'package.json');
@@ -102,9 +103,6 @@ async function* viteBuildExecutor(options, context) {
102
103
  };
103
104
  }
104
105
  }
105
- function runInstance(options) {
106
- return (0, _vite.build)(_extends._({}, options));
107
- }
108
106
  function normalizeOptions(options) {
109
107
  const normalizedOptions = _extends._({}, options);
110
108
  // coerce watch to null or {} to match with Vite's watch config
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n logger,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport { build, InlineConfig, mergeConfig } from 'vite';\nimport {\n getProjectTsConfigPath,\n getViteBuildOptions,\n getViteSharedConfig,\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 { 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: ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n createBuildableTsConfig(projectRoot, options, context);\n\n const normalizedOptions = normalizeOptions(options);\n\n const buildConfig = mergeConfig(\n getViteSharedConfig(normalizedOptions, false, context),\n {\n build: getViteBuildOptions(normalizedOptions, context),\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 runInstance(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n const distPackageJson = resolve(normalizedOptions.outputPath, 'package.json');\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(`${options.outputPath}/package.json`, builtPackageJson);\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${options.outputPath}/${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: normalizedOptions.outputPath,\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(normalizedOptions.outputPath, fileName);\n yield { success: true, outfile };\n }\n}\n\nfunction runInstance(options: InlineConfig) {\n return build({\n ...options,\n });\n}\n\nfunction normalizeOptions(options: ViteBuildExecutorOptions) {\n const normalizedOptions = { ...options };\n\n // coerce watch to null or {} to match with Vite's watch config\n if (options.watch === false) {\n normalizedOptions.watch = null;\n } else if (options.watch === true) {\n normalizedOptions.watch = {};\n }\n\n return normalizedOptions;\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","normalizedOptions","normalizeOptions","buildConfig","mergeConfig","getViteSharedConfig","build","getViteBuildOptions","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","getProjectTsConfigPath","watcherOrOutput","runInstance","libraryPackageJson","resolve","rootPackageJson","distPackageJson","outputPath","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","watch"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n logger,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n getViteBuildOptions,\n getViteSharedConfig,\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 { 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: ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n createBuildableTsConfig(projectRoot, options, context);\n\n const normalizedOptions = normalizeOptions(options);\n\n const buildConfig = mergeConfig(\n getViteSharedConfig(normalizedOptions, false, context),\n {\n build: getViteBuildOptions(normalizedOptions, context),\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 const distPackageJson = resolve(normalizedOptions.outputPath, 'package.json');\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(`${options.outputPath}/package.json`, builtPackageJson);\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${options.outputPath}/${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: normalizedOptions.outputPath,\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(normalizedOptions.outputPath, fileName);\n yield { success: true, outfile };\n }\n}\n\nfunction normalizeOptions(options: ViteBuildExecutorOptions) {\n const normalizedOptions = { ...options };\n\n // coerce watch to null or {} to match with Vite's watch config\n if (options.watch === false) {\n normalizedOptions.watch = null;\n } else if (options.watch === true) {\n normalizedOptions.watch = {};\n }\n\n return normalizedOptions;\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","options","context","mergeConfig","build","Function","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","normalizedOptions","normalizeOptions","buildConfig","getViteSharedConfig","getViteBuildOptions","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","getProjectTsConfigPath","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","distPackageJson","outputPath","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","watch"],"mappings":"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"}
@@ -14,10 +14,11 @@ _export(exports, {
14
14
  }
15
15
  });
16
16
  const _extends = require("@swc/helpers/_/_extends");
17
- const _vite = require("vite");
18
17
  const _optionsutils = require("../../utils/options-utils");
19
18
  const _executorutils = require("../../utils/executor-utils");
20
19
  async function* viteDevServerExecutor(options, context) {
20
+ // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
21
+ const { mergeConfig, createServer } = await Function('return import("vite")')();
21
22
  const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
22
23
  (0, _executorutils.createBuildableTsConfig)(projectRoot, options, context);
23
24
  // Retrieve the option for the configured buildTarget.
@@ -26,12 +27,12 @@ async function* viteDevServerExecutor(options, context) {
26
27
  // The latter takes precedence.
27
28
  const mergedOptions = _extends._({}, buildTargetOptions, options);
28
29
  // Add the server specific configuration.
29
- const serverConfig = (0, _vite.mergeConfig)((0, _optionsutils.getViteSharedConfig)(mergedOptions, options.clearScreen, context), {
30
+ const serverConfig = mergeConfig((0, _optionsutils.getViteSharedConfig)(mergedOptions, options.clearScreen, context), {
30
31
  build: (0, _optionsutils.getViteBuildOptions)(mergedOptions, context),
31
- server: (0, _optionsutils.getViteServerOptions)(mergedOptions, context)
32
+ server: await (0, _optionsutils.getViteServerOptions)(mergedOptions, context)
32
33
  });
33
34
  try {
34
- const server = await (0, _vite.createServer)(serverConfig);
35
+ const server = await createServer(serverConfig);
35
36
  await runViteDevServer(server);
36
37
  const resolvedUrls = [
37
38
  ...server.resolvedUrls.local,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/executors/dev-server/dev-server.impl.ts"],"sourcesContent":["import { ExecutorContext } from '@nx/devkit';\nimport { createServer, InlineConfig, mergeConfig, ViteDevServer } from 'vite';\n\nimport {\n getViteSharedConfig,\n getNxTargetOptions,\n getViteServerOptions,\n getViteBuildOptions,\n} from '../../utils/options-utils';\n\nimport { ViteDevServerExecutorOptions } from './schema';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport { createBuildableTsConfig } from '../../utils/executor-utils';\n\nexport async function* viteDevServerExecutor(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): AsyncGenerator<{ success: boolean; baseUrl: string }> {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\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 // Merge the options from the build and dev-serve targets.\n // The latter takes precedence.\n const mergedOptions = {\n ...buildTargetOptions,\n ...options,\n };\n\n // Add the server specific configuration.\n const serverConfig: InlineConfig = mergeConfig(\n getViteSharedConfig(mergedOptions, options.clearScreen, context),\n {\n build: getViteBuildOptions(mergedOptions, context),\n server: getViteServerOptions(mergedOptions, context),\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\nasync function runViteDevServer(server: ViteDevServer): Promise<void> {\n await server.listen();\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"],"names":["viteDevServerExecutor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","buildTargetOptions","getNxTargetOptions","buildTarget","mergedOptions","serverConfig","mergeConfig","getViteSharedConfig","clearScreen","build","getViteBuildOptions","server","getViteServerOptions","createServer","runViteDevServer","resolvedUrls","local","network","success","baseUrl","e","console","error","Promise","resolve","process","once","listen","printUrls","processOnExit","close"],"mappings":";;;;;;;;IAcuBA,qBAAqB;eAArBA;;IAuEvB,OAAqC;eAArC;;;;sBApFuE;8BAOhE;+BAIiC;AAEjC,gBAAgBA,sBACrBC,OAAqC,EACrCC,OAAwB;IAExB,MAAMC,cACJD,QAAQE,sBAAsB,CAACC,QAAQ,CAACH,QAAQI,WAAW,CAAC,CAACC,IAAI;IAEnEC,IAAAA,sCAAuB,EAACL,aAAaF,SAASC;IAE9C,sDAAsD;IACtD,MAAMO,qBAA+CC,IAAAA,gCAAkB,EACrET,QAAQU,WAAW,EACnBT;IAGF,0DAA0D;IAC1D,+BAA+B;IAC/B,MAAMU,gBAAgB,eACjBH,oBACAR;IAGL,yCAAyC;IACzC,MAAMY,eAA6BC,IAAAA,iBAAW,EAC5CC,IAAAA,iCAAmB,EAACH,eAAeX,QAAQe,WAAW,EAAEd,UACxD;QACEe,OAAOC,IAAAA,iCAAmB,EAACN,eAAeV;QAC1CiB,QAAQC,IAAAA,kCAAoB,EAACR,eAAeV;IAC9C;IAGF,IAAI;QACF,MAAMiB,SAAS,MAAME,IAAAA,kBAAY,EAACR;QAClC,MAAMS,iBAAiBH;QACvB,MAAMI,eAAe;eAChBJ,OAAOI,YAAY,CAACC,KAAK;eACzBL,OAAOI,YAAY,CAACE,OAAO;SAC/B;YAIUF;QAFX,MAAM;YACJG,SAAS;YACTC,SAASJ,CAAAA,iBAAAA,YAAY,CAAC,EAAE,YAAfA,iBAAmB;QAC9B;IACF,EAAE,OAAOK,GAAG;QACVC,QAAQC,KAAK,CAACF;QACd,MAAM;YACJF,SAAS;YACTC,SAAS;QACX;IACF;IAEA,MAAM,IAAII,QAAc,CAACC;QACvBC,QAAQC,IAAI,CAAC,UAAU,IAAMF;QAC7BC,QAAQC,IAAI,CAAC,WAAW,IAAMF;QAC9BC,QAAQC,IAAI,CAAC,QAAQ,IAAMF;IAC7B;AACF;AAEA,eAAeV,iBAAiBH,MAAqB;IACnD,MAAMA,OAAOgB,MAAM;IACnBhB,OAAOiB,SAAS;IAEhB,MAAMC,gBAAgB;QACpB,MAAMlB,OAAOmB,KAAK;IACpB;IAEAL,QAAQC,IAAI,CAAC,UAAUG;IACvBJ,QAAQC,IAAI,CAAC,WAAWG;IACxBJ,QAAQC,IAAI,CAAC,QAAQG;AACvB;MAEA,WAAerC"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/dev-server/dev-server.impl.ts"],"sourcesContent":["import { ExecutorContext } from '@nx/devkit';\nimport type { InlineConfig, ViteDevServer } from 'vite';\n\nimport {\n getNxTargetOptions,\n getViteBuildOptions,\n getViteServerOptions,\n getViteSharedConfig,\n} from '../../utils/options-utils';\n\nimport { ViteDevServerExecutorOptions } from './schema';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport { createBuildableTsConfig } from '../../utils/executor-utils';\n\nexport async function* viteDevServerExecutor(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): AsyncGenerator<{ success: boolean; baseUrl: string }> {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, createServer } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\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 // Merge the options from the build and dev-serve targets.\n // The latter takes precedence.\n const mergedOptions = {\n ...buildTargetOptions,\n ...options,\n };\n\n // Add the server specific configuration.\n const serverConfig: InlineConfig = mergeConfig(\n getViteSharedConfig(mergedOptions, options.clearScreen, context),\n {\n build: getViteBuildOptions(mergedOptions, context),\n server: await getViteServerOptions(mergedOptions, context),\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\nasync function runViteDevServer(server: ViteDevServer): Promise<void> {\n await server.listen();\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"],"names":["viteDevServerExecutor","options","context","mergeConfig","createServer","Function","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","buildTargetOptions","getNxTargetOptions","buildTarget","mergedOptions","serverConfig","getViteSharedConfig","clearScreen","build","getViteBuildOptions","server","getViteServerOptions","runViteDevServer","resolvedUrls","local","network","success","baseUrl","e","console","error","Promise","resolve","process","once","listen","printUrls","processOnExit","close"],"mappings":";;;;;;;;IAcuBA,qBAAqB;eAArBA;;IA4EvB,OAAqC;eAArC;;;;8BAlFO;+BAIiC;AAEjC,gBAAgBA,sBACrBC,OAAqC,EACrCC,OAAwB;IAExB,yFAAyF;IACzF,MAAM,EAAEC,WAAW,EAAEC,YAAY,EAAE,GAAG,MAAOC,SAC3C;IAGF,MAAMC,cACJJ,QAAQK,sBAAsB,CAACC,QAAQ,CAACN,QAAQO,WAAW,CAAC,CAACC,IAAI;IAEnEC,IAAAA,sCAAuB,EAACL,aAAaL,SAASC;IAE9C,sDAAsD;IACtD,MAAMU,qBAA+CC,IAAAA,gCAAkB,EACrEZ,QAAQa,WAAW,EACnBZ;IAGF,0DAA0D;IAC1D,+BAA+B;IAC/B,MAAMa,gBAAgB,eACjBH,oBACAX;IAGL,yCAAyC;IACzC,MAAMe,eAA6Bb,YACjCc,IAAAA,iCAAmB,EAACF,eAAed,QAAQiB,WAAW,EAAEhB,UACxD;QACEiB,OAAOC,IAAAA,iCAAmB,EAACL,eAAeb;QAC1CmB,QAAQ,MAAMC,IAAAA,kCAAoB,EAACP,eAAeb;IACpD;IAGF,IAAI;QACF,MAAMmB,SAAS,MAAMjB,aAAaY;QAClC,MAAMO,iBAAiBF;QACvB,MAAMG,eAAe;eAChBH,OAAOG,YAAY,CAACC,KAAK;eACzBJ,OAAOG,YAAY,CAACE,OAAO;SAC/B;YAIUF;QAFX,MAAM;YACJG,SAAS;YACTC,SAASJ,CAAAA,iBAAAA,YAAY,CAAC,EAAE,YAAfA,iBAAmB;QAC9B;IACF,EAAE,OAAOK,GAAG;QACVC,QAAQC,KAAK,CAACF;QACd,MAAM;YACJF,SAAS;YACTC,SAAS;QACX;IACF;IAEA,MAAM,IAAII,QAAc,CAACC;QACvBC,QAAQC,IAAI,CAAC,UAAU,IAAMF;QAC7BC,QAAQC,IAAI,CAAC,WAAW,IAAMF;QAC9BC,QAAQC,IAAI,CAAC,QAAQ,IAAMF;IAC7B;AACF;AAEA,eAAeV,iBAAiBF,MAAqB;IACnD,MAAMA,OAAOe,MAAM;IACnBf,OAAOgB,SAAS;IAEhB,MAAMC,gBAAgB;QACpB,MAAMjB,OAAOkB,KAAK;IACpB;IAEAL,QAAQC,IAAI,CAAC,UAAUG;IACvBJ,QAAQC,IAAI,CAAC,WAAWG;IACxBJ,QAAQC,IAAI,CAAC,QAAQG;AACvB;MAEA,WAAetC"}
@@ -15,10 +15,11 @@ _export(exports, {
15
15
  });
16
16
  const _extends = require("@swc/helpers/_/_extends");
17
17
  const _devkit = require("@nx/devkit");
18
- const _vite = require("vite");
19
18
  const _optionsutils = require("../../utils/options-utils");
20
19
  async function* vitePreviewServerExecutor(options, context) {
21
20
  var _context_projectsConfigurations_projects_target_project;
21
+ // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
22
+ const { mergeConfig, preview } = await Function('return import("vite")')();
22
23
  const target = (0, _devkit.parseTargetString)(options.buildTarget, context);
23
24
  const targetConfiguration = (_context_projectsConfigurations_projects_target_project = context.projectsConfigurations.projects[target.project]) == null ? void 0 : _context_projectsConfigurations_projects_target_project.targets[target.target];
24
25
  if (!targetConfiguration) {
@@ -40,7 +41,7 @@ async function* vitePreviewServerExecutor(options, context) {
40
41
  outputPath
41
42
  });
42
43
  // Retrieve the server configuration.
43
- const serverConfig = (0, _vite.mergeConfig)((0, _optionsutils.getViteSharedConfig)(mergedOptions, options.clearScreen, context), {
44
+ const serverConfig = mergeConfig((0, _optionsutils.getViteSharedConfig)(mergedOptions, options.clearScreen, context), {
44
45
  build: (0, _optionsutils.getViteBuildOptions)(mergedOptions, context),
45
46
  preview: (0, _optionsutils.getVitePreviewOptions)(mergedOptions, context)
46
47
  });
@@ -62,7 +63,7 @@ async function* vitePreviewServerExecutor(options, context) {
62
63
  if (result.success) {
63
64
  try {
64
65
  if (!server) {
65
- server = await (0, _vite.preview)(serverConfig);
66
+ server = await preview(serverConfig);
66
67
  }
67
68
  server.printUrls();
68
69
  const resolvedUrls = [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/executors/preview-server/preview-server.impl.ts"],"sourcesContent":["import { ExecutorContext, parseTargetString, runExecutor } from '@nx/devkit';\nimport { InlineConfig, mergeConfig, preview, PreviewServer } from 'vite';\nimport {\n getNxTargetOptions,\n getViteSharedConfig,\n getViteBuildOptions,\n getVitePreviewOptions,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport { VitePreviewServerExecutorOptions } from './schema';\n\ninterface CustomBuildTargetOptions {\n outputPath: string;\n}\n\nexport async function* vitePreviewServerExecutor(\n options: VitePreviewServerExecutorOptions,\n context: ExecutorContext\n) {\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:\n | ViteBuildExecutorOptions\n | CustomBuildTargetOptions = getNxTargetOptions(\n options.buildTarget,\n context\n );\n\n const outputPath = options.staticFilePath ?? buildTargetOptions.outputPath;\n\n if (!outputPath) {\n throw new Error(\n `Could not infer the \"outputPath\". It should either be a property of the \"${options.buildTarget}\" buildTarget or provided explicitly as a \"staticFilePath\" option.`\n );\n }\n\n // Merge the options from the build and preview-serve targets.\n // The latter takes precedence.\n const mergedOptions = {\n ...{ watch: {} },\n ...(isCustomBuildTarget ? {} : buildTargetOptions),\n ...options,\n outputPath,\n };\n\n // Retrieve the server configuration.\n const serverConfig: InlineConfig = mergeConfig(\n getViteSharedConfig(mergedOptions, options.clearScreen, context),\n {\n build: getViteBuildOptions(mergedOptions, context),\n preview: getVitePreviewOptions(mergedOptions, context),\n }\n );\n\n if (serverConfig.mode === 'production') {\n console.warn('WARNING: preview is not meant to be run in production!');\n }\n\n let server: PreviewServer | 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?: PreviewServer): Promise<void> {\n return new Promise((resolve) => {\n if (!server) {\n resolve();\n } else {\n const { httpServer } = server;\n // closeAllConnections was added in Node v18.2.0\n httpServer.closeAllConnections && httpServer.closeAllConnections();\n httpServer.close(() => resolve());\n }\n });\n}\n\nexport default vitePreviewServerExecutor;\n"],"names":["vitePreviewServerExecutor","options","context","target","parseTargetString","buildTarget","targetConfiguration","projectsConfigurations","projects","project","targets","Error","isCustomBuildTarget","executor","buildTargetOptions","getNxTargetOptions","outputPath","staticFilePath","mergedOptions","watch","serverConfig","mergeConfig","getViteSharedConfig","clearScreen","build","getViteBuildOptions","preview","getVitePreviewOptions","mode","console","warn","server","processOnExit","closeServer","process","once","buildTargetOverrides","runExecutor","result","success","printUrls","resolvedUrls","local","network","baseUrl","e","error","Promise","resolve","httpServer","closeAllConnections","close"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/preview-server/preview-server.impl.ts"],"sourcesContent":["import { ExecutorContext, parseTargetString, runExecutor } from '@nx/devkit';\nimport type { InlineConfig, PreviewServer } from 'vite';\nimport {\n getNxTargetOptions,\n getViteBuildOptions,\n getVitePreviewOptions,\n getViteSharedConfig,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from '../build/schema';\nimport { VitePreviewServerExecutorOptions } from './schema';\n\ninterface CustomBuildTargetOptions {\n outputPath: string;\n}\n\nexport async function* vitePreviewServerExecutor(\n options: VitePreviewServerExecutorOptions,\n context: ExecutorContext\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, preview } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n\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:\n | ViteBuildExecutorOptions\n | CustomBuildTargetOptions = getNxTargetOptions(\n options.buildTarget,\n context\n );\n\n const outputPath = options.staticFilePath ?? buildTargetOptions.outputPath;\n\n if (!outputPath) {\n throw new Error(\n `Could not infer the \"outputPath\". It should either be a property of the \"${options.buildTarget}\" buildTarget or provided explicitly as a \"staticFilePath\" option.`\n );\n }\n\n // Merge the options from the build and preview-serve targets.\n // The latter takes precedence.\n const mergedOptions = {\n ...{ watch: {} },\n ...(isCustomBuildTarget ? {} : buildTargetOptions),\n ...options,\n outputPath,\n };\n\n // Retrieve the server configuration.\n const serverConfig: InlineConfig = mergeConfig(\n getViteSharedConfig(mergedOptions, options.clearScreen, context),\n {\n build: getViteBuildOptions(mergedOptions, context),\n preview: getVitePreviewOptions(mergedOptions, context),\n }\n );\n\n if (serverConfig.mode === 'production') {\n console.warn('WARNING: preview is not meant to be run in production!');\n }\n\n let server: PreviewServer | 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?: PreviewServer): Promise<void> {\n return new Promise((resolve) => {\n if (!server) {\n resolve();\n } else {\n const { httpServer } = server;\n // closeAllConnections was added in Node v18.2.0\n httpServer.closeAllConnections && httpServer.closeAllConnections();\n httpServer.close(() => resolve());\n }\n });\n}\n\nexport default vitePreviewServerExecutor;\n"],"names":["vitePreviewServerExecutor","options","context","mergeConfig","preview","Function","target","parseTargetString","buildTarget","targetConfiguration","projectsConfigurations","projects","project","targets","Error","isCustomBuildTarget","executor","buildTargetOptions","getNxTargetOptions","outputPath","staticFilePath","mergedOptions","watch","serverConfig","getViteSharedConfig","clearScreen","build","getViteBuildOptions","getVitePreviewOptions","mode","console","warn","server","processOnExit","closeServer","process","once","buildTargetOverrides","runExecutor","result","success","printUrls","resolvedUrls","local","network","baseUrl","e","error","Promise","resolve","httpServer","closeAllConnections","close"],"mappings":"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"}
@@ -15,7 +15,6 @@ _export(exports, {
15
15
  });
16
16
  const _extends = require("@swc/helpers/_/_extends");
17
17
  const _devkit = require("@nx/devkit");
18
- const _vite = require("vite");
19
18
  const _path = require("path");
20
19
  const _fs = require("fs");
21
20
  const _internal = require("@nx/js/src/internal");
@@ -84,6 +83,8 @@ async function* vitestExecutor(options, context) {
84
83
  }
85
84
  async function getSettings(options, context, projectRoot) {
86
85
  var _packageJson_dependencies, _packageJson_devDependencies, _resolved_config, _resolved_config_test, _resolved_config1, _resolved_config_test1, _resolved_config2;
86
+ // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
87
+ const { loadConfigFromFile } = await Function('return import("vite")')();
87
88
  const packageJsonPath = (0, _path.join)(_devkit.workspaceRoot, 'package.json');
88
89
  const packageJson = (0, _fs.existsSync)(packageJsonPath) ? (0, _devkit.readJsonFile)(packageJsonPath) : undefined;
89
90
  let provider = 'v8';
@@ -102,7 +103,7 @@ async function getSettings(options, context, projectRoot) {
102
103
  : findViteConfig((0, _devkit.joinPathFragments)(context.root, projectRoot));
103
104
  const resolvedProjectRoot = (0, _path.resolve)(_devkit.workspaceRoot, projectRoot);
104
105
  const resolvedViteConfigPath = (0, _path.resolve)(_devkit.workspaceRoot, projectRoot, (0, _path.relative)(resolvedProjectRoot, viteConfigPath));
105
- const resolved = await (0, _vite.loadConfigFromFile)({
106
+ const resolved = await loadConfigFromFile({
106
107
  mode: options.mode,
107
108
  command: 'serve'
108
109
  }, resolvedViteConfigPath, resolvedProjectRoot);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/executors/test/vitest.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n readJsonFile,\n stripIndents,\n workspaceRoot,\n} from '@nx/devkit';\nimport { CoverageOptions, File, Reporter } from 'vitest';\nimport { loadConfigFromFile } from 'vite';\nimport { VitestExecutorOptions } from './schema';\nimport { join, relative, resolve } from 'path';\nimport { existsSync } from 'fs';\nimport { registerTsConfigPaths } from '@nx/js/src/internal';\n\nclass NxReporter implements Reporter {\n deferred: {\n promise: Promise<boolean>;\n resolve: (val: boolean) => void;\n };\n\n constructor(private watch: boolean) {\n this.setupDeferred();\n }\n\n async *[Symbol.asyncIterator]() {\n do {\n const hasErrors = await this.deferred.promise;\n yield { hasErrors };\n this.setupDeferred();\n } while (this.watch);\n }\n\n private setupDeferred() {\n let resolve: (val: boolean) => void;\n this.deferred = {\n promise: new Promise((res) => {\n resolve = res;\n }),\n resolve,\n };\n }\n\n onFinished(files: File[], errors?: unknown[]) {\n const hasErrors =\n files.some((f) => f.result?.state === 'fail') || errors?.length > 0;\n this.deferred.resolve(hasErrors);\n }\n}\n\nexport async function* vitestExecutor(\n options: VitestExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n registerTsConfigPaths(resolve(workspaceRoot, projectRoot, 'tsconfig.json'));\n\n const { startVitest } = await (Function(\n 'return import(\"vitest/node\")'\n )() as Promise<typeof import('vitest/node')>);\n\n const nxReporter = new NxReporter(options.watch);\n const settings = await getSettings(options, context, projectRoot);\n settings.reporters.push(nxReporter);\n const cliFilters = options.testFiles ?? [];\n\n const ctx = await startVitest(options.mode, cliFilters, settings);\n\n let hasErrors = false;\n\n const processExit = () => {\n ctx.exit();\n if (hasErrors) {\n process.exit(1);\n } else {\n process.exit(0);\n }\n };\n\n if (options.watch) {\n process.on('SIGINT', processExit);\n process.on('SIGTERM', processExit);\n process.on('exit', processExit);\n }\n\n for await (const report of nxReporter) {\n // vitest sets the exitCode = 1 when code coverage isn't met\n hasErrors =\n report.hasErrors || (process.exitCode && process.exitCode !== 0);\n }\n\n return {\n success: !hasErrors,\n };\n}\n\nasync function getSettings(\n options: VitestExecutorOptions,\n context: ExecutorContext,\n projectRoot: string\n) {\n const packageJsonPath = join(workspaceRoot, 'package.json');\n const packageJson = existsSync(packageJsonPath)\n ? readJsonFile(packageJsonPath)\n : undefined;\n let provider: 'v8' | 'c8' = 'v8';\n if (\n packageJson?.dependencies?.['@vitest/coverage-c8'] ||\n packageJson?.devDependencies?.['@vitest/coverage-c8']\n ) {\n provider = 'c8';\n }\n const offset = relative(workspaceRoot, context.cwd);\n // if reportsDirectory is not provided vitest will remove all files in the project root\n // when coverage is enabled in the vite.config.ts\n const coverage: CoverageOptions = options.reportsDirectory\n ? {\n enabled: options.coverage,\n reportsDirectory: options.reportsDirectory,\n provider,\n }\n : ({} as CoverageOptions);\n\n const viteConfigPath = options.config\n ? options.config // config is expected to be from the workspace root\n : findViteConfig(joinPathFragments(context.root, projectRoot));\n\n const resolvedProjectRoot = resolve(workspaceRoot, projectRoot);\n const resolvedViteConfigPath = resolve(\n workspaceRoot,\n projectRoot,\n relative(resolvedProjectRoot, viteConfigPath)\n );\n\n const resolved = await loadConfigFromFile(\n {\n mode: options.mode,\n command: 'serve',\n },\n resolvedViteConfigPath,\n resolvedProjectRoot\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 }\nSome settings may not be applied as expected.\nYou can manually set the config in the project, ${\n context.projectName\n }, configuration.\n `);\n }\n\n const settings = {\n ...options,\n // when running nx from the project root, the root will get appended to the cwd.\n // creating an invalid path and no tests will be found.\n // instead if we are not at the root, let the cwd be root.\n root: offset === '' ? resolvedProjectRoot : workspaceRoot,\n config: resolvedViteConfigPath,\n reporters: [\n ...(options.reporters ?? []),\n ...((resolved?.config?.['test']?.reporters as string[]) ?? []),\n 'default',\n ] as (string | Reporter)[],\n coverage: { ...coverage, ...resolved?.config?.['test']?.coverage },\n };\n\n return settings;\n}\n\nfunction findViteConfig(projectRootFullPath: string): string {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (\n existsSync(joinPathFragments(projectRootFullPath, `vite.config.${ext}`))\n ) {\n return joinPathFragments(projectRootFullPath, `vite.config.${ext}`);\n }\n }\n}\n\nexport default vitestExecutor;\n"],"names":["vitestExecutor","NxReporter","Symbol","asyncIterator","hasErrors","deferred","promise","setupDeferred","watch","resolve","Promise","res","onFinished","files","errors","some","f","result","state","length","constructor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","registerTsConfigPaths","workspaceRoot","startVitest","Function","nxReporter","settings","getSettings","reporters","push","cliFilters","testFiles","ctx","mode","processExit","exit","process","on","report","exitCode","success","packageJson","resolved","packageJsonPath","join","existsSync","readJsonFile","undefined","provider","dependencies","devDependencies","offset","relative","cwd","coverage","reportsDirectory","enabled","viteConfigPath","config","findViteConfig","joinPathFragments","resolvedProjectRoot","resolvedViteConfigPath","loadConfigFromFile","command","logger","warn","stripIndents","path","projectRootFullPath","allowsExt","ext"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/vite/src/executors/test/vitest.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n readJsonFile,\n stripIndents,\n workspaceRoot,\n} from '@nx/devkit';\nimport type { CoverageOptions, File, Reporter } from 'vitest';\nimport { VitestExecutorOptions } from './schema';\nimport { join, relative, resolve } from 'path';\nimport { existsSync } from 'fs';\nimport { registerTsConfigPaths } from '@nx/js/src/internal';\n\nclass NxReporter implements Reporter {\n deferred: {\n promise: Promise<boolean>;\n resolve: (val: boolean) => void;\n };\n\n constructor(private watch: boolean) {\n this.setupDeferred();\n }\n\n async *[Symbol.asyncIterator]() {\n do {\n const hasErrors = await this.deferred.promise;\n yield { hasErrors };\n this.setupDeferred();\n } while (this.watch);\n }\n\n private setupDeferred() {\n let resolve: (val: boolean) => void;\n this.deferred = {\n promise: new Promise((res) => {\n resolve = res;\n }),\n resolve,\n };\n }\n\n onFinished(files: File[], errors?: unknown[]) {\n const hasErrors =\n files.some((f) => f.result?.state === 'fail') || errors?.length > 0;\n this.deferred.resolve(hasErrors);\n }\n}\n\nexport async function* vitestExecutor(\n options: VitestExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n registerTsConfigPaths(resolve(workspaceRoot, projectRoot, 'tsconfig.json'));\n\n const { startVitest } = await (Function(\n 'return import(\"vitest/node\")'\n )() as Promise<typeof import('vitest/node')>);\n\n const nxReporter = new NxReporter(options.watch);\n const settings = await getSettings(options, context, projectRoot);\n settings.reporters.push(nxReporter);\n const cliFilters = options.testFiles ?? [];\n\n const ctx = await startVitest(options.mode, cliFilters, settings);\n\n let hasErrors = false;\n\n const processExit = () => {\n ctx.exit();\n if (hasErrors) {\n process.exit(1);\n } else {\n process.exit(0);\n }\n };\n\n if (options.watch) {\n process.on('SIGINT', processExit);\n process.on('SIGTERM', processExit);\n process.on('exit', processExit);\n }\n\n for await (const report of nxReporter) {\n // vitest sets the exitCode = 1 when code coverage isn't met\n hasErrors =\n report.hasErrors || (process.exitCode && process.exitCode !== 0);\n }\n\n return {\n success: !hasErrors,\n };\n}\n\nasync function getSettings(\n options: VitestExecutorOptions,\n context: ExecutorContext,\n projectRoot: string\n) {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { loadConfigFromFile } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n\n const packageJsonPath = join(workspaceRoot, 'package.json');\n const packageJson = existsSync(packageJsonPath)\n ? readJsonFile(packageJsonPath)\n : undefined;\n let provider: 'v8' | 'c8' = 'v8';\n if (\n packageJson?.dependencies?.['@vitest/coverage-c8'] ||\n packageJson?.devDependencies?.['@vitest/coverage-c8']\n ) {\n provider = 'c8';\n }\n const offset = relative(workspaceRoot, context.cwd);\n // if reportsDirectory is not provided vitest will remove all files in the project root\n // when coverage is enabled in the vite.config.ts\n const coverage: CoverageOptions = options.reportsDirectory\n ? {\n enabled: options.coverage,\n reportsDirectory: options.reportsDirectory,\n provider,\n }\n : ({} as CoverageOptions);\n\n const viteConfigPath = options.config\n ? options.config // config is expected to be from the workspace root\n : findViteConfig(joinPathFragments(context.root, projectRoot));\n\n const resolvedProjectRoot = resolve(workspaceRoot, projectRoot);\n const resolvedViteConfigPath = resolve(\n workspaceRoot,\n projectRoot,\n relative(resolvedProjectRoot, viteConfigPath)\n );\n\n const resolved = await loadConfigFromFile(\n {\n mode: options.mode,\n command: 'serve',\n },\n resolvedViteConfigPath,\n resolvedProjectRoot\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 }\nSome settings may not be applied as expected.\nYou can manually set the config in the project, ${\n context.projectName\n }, configuration.\n `);\n }\n\n const settings = {\n ...options,\n // when running nx from the project root, the root will get appended to the cwd.\n // creating an invalid path and no tests will be found.\n // instead if we are not at the root, let the cwd be root.\n root: offset === '' ? resolvedProjectRoot : workspaceRoot,\n config: resolvedViteConfigPath,\n reporters: [\n ...(options.reporters ?? []),\n ...((resolved?.config?.['test']?.reporters as string[]) ?? []),\n 'default',\n ] as (string | Reporter)[],\n coverage: { ...coverage, ...resolved?.config?.['test']?.coverage },\n };\n\n return settings;\n}\n\nfunction findViteConfig(projectRootFullPath: string): string {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (\n existsSync(joinPathFragments(projectRootFullPath, `vite.config.${ext}`))\n ) {\n return joinPathFragments(projectRootFullPath, `vite.config.${ext}`);\n }\n }\n}\n\nexport default vitestExecutor;\n"],"names":["vitestExecutor","NxReporter","Symbol","asyncIterator","hasErrors","deferred","promise","setupDeferred","watch","resolve","Promise","res","onFinished","files","errors","some","f","result","state","length","constructor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","registerTsConfigPaths","workspaceRoot","startVitest","Function","nxReporter","settings","getSettings","reporters","push","cliFilters","testFiles","ctx","mode","processExit","exit","process","on","report","exitCode","success","packageJson","resolved","loadConfigFromFile","packageJsonPath","join","existsSync","readJsonFile","undefined","provider","dependencies","devDependencies","offset","relative","cwd","coverage","reportsDirectory","enabled","viteConfigPath","config","findViteConfig","joinPathFragments","resolvedProjectRoot","resolvedViteConfigPath","command","logger","warn","stripIndents","path","projectRootFullPath","allowsExt","ext"],"mappings":"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"}
@@ -21,7 +21,7 @@ export declare function getViteSharedConfig(options: ViteBuildExecutorOptions, c
21
21
  /**
22
22
  * Builds the options for the vite dev server.
23
23
  */
24
- export declare function getViteServerOptions(options: ViteDevServerExecutorOptions, context: ExecutorContext): ServerOptions;
24
+ export declare function getViteServerOptions(options: ViteDevServerExecutorOptions, context: ExecutorContext): Promise<ServerOptions>;
25
25
  /**
26
26
  * Builds the build options for the vite.
27
27
  */
@@ -34,7 +34,6 @@ _export(exports, {
34
34
  const _devkit = require("@nx/devkit");
35
35
  const _fs = require("fs");
36
36
  const _path = require("path");
37
- const _vite = require("vite");
38
37
  const _rollupreplacefilesplugin = require("../../plugins/rollup-replace-files.plugin");
39
38
  function normalizeViteConfigFilePath(projectRoot, configFile) {
40
39
  if (configFile) {
@@ -76,7 +75,9 @@ function getViteSharedConfig(options, clearScreen, context) {
76
75
  logLevel: options.logLevel
77
76
  };
78
77
  }
79
- function getViteServerOptions(options, context) {
78
+ async function getViteServerOptions(options, context) {
79
+ // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.
80
+ const { searchForWorkspaceRoot } = await Function('return import("vite")')();
80
81
  const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
81
82
  const serverOptions = {
82
83
  host: options.host,
@@ -87,7 +88,7 @@ function getViteServerOptions(options, context) {
87
88
  cors: options.cors,
88
89
  fs: {
89
90
  allow: [
90
- (0, _vite.searchForWorkspaceRoot)((0, _devkit.joinPathFragments)(projectRoot)),
91
+ searchForWorkspaceRoot((0, _devkit.joinPathFragments)(projectRoot)),
91
92
  (0, _devkit.joinPathFragments)(context.root, 'node_modules/vite')
92
93
  ]
93
94
  }
@@ -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 { relative } from 'path';\nimport {\n BuildOptions,\n InlineConfig,\n PluginOption,\n PreviewOptions,\n searchForWorkspaceRoot,\n ServerOptions,\n} from 'vite';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport replaceFiles from '../../plugins/rollup-replace-files.plugin';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\n\n/**\n * Returns the path to the vite config file or undefined when not found.\n */\nexport function normalizeViteConfigFilePath(\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 return existsSync(joinPathFragments(projectRoot, 'vite.config.ts'))\n ? joinPathFragments(projectRoot, 'vite.config.ts')\n : existsSync(joinPathFragments(projectRoot, 'vite.config.js'))\n ? joinPathFragments(projectRoot, 'vite.config.js')\n : undefined;\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 shared options for vite.\n *\n * Most shared options are derived from the build target.\n */\nexport function getViteSharedConfig(\n options: ViteBuildExecutorOptions,\n clearScreen: boolean | undefined,\n context: ExecutorContext\n): InlineConfig {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n return {\n mode: options.mode,\n root,\n base: options.base,\n configFile: normalizeViteConfigFilePath(projectRoot, options.configFile),\n plugins: [replaceFiles(options.fileReplacements) as PluginOption],\n optimizeDeps: { force: options.force },\n clearScreen: clearScreen,\n logLevel: options.logLevel,\n };\n}\n\n/**\n * Builds the options for the vite dev server.\n */\nexport function getViteServerOptions(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): ServerOptions {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const serverOptions: ServerOptions = {\n host: options.host,\n port: options.port,\n https: options.https,\n hmr: options.hmr,\n open: options.open,\n cors: options.cors,\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\n/**\n * Builds the build options for the vite.\n */\nexport function getViteBuildOptions(\n options: ViteBuildExecutorOptions,\n context: ExecutorContext\n): BuildOptions {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n return {\n outDir: relative(projectRoot, options.outputPath),\n emptyOutDir: options.emptyOutDir,\n reportCompressedSize: true,\n cssCodeSplit: options.cssCodeSplit,\n target: options.target,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n sourcemap: options.sourcemap,\n minify: options.minify,\n manifest: options.manifest,\n ssrManifest: options.ssrManifest,\n ssr: options.ssr,\n watch: options.watch as BuildOptions['watch'],\n };\n}\n\n/**\n * Builds the options for the vite preview server.\n */\nexport function getVitePreviewOptions(\n options: VitePreviewServerExecutorOptions,\n context: ExecutorContext\n): PreviewOptions {\n const serverOptions: ServerOptions = {\n host: options.host,\n port: options.port,\n https: options.https,\n open: options.open,\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 getNxTargetOptions(target: string, context: ExecutorContext) {\n const targetObj = parseTargetString(target, context);\n return readTargetOptions(targetObj, context);\n}\n"],"names":["normalizeViteConfigFilePath","getProjectTsConfigPath","getViteServerProxyConfigPath","getViteSharedConfig","getViteServerOptions","getViteBuildOptions","getVitePreviewOptions","getNxTargetOptions","projectRoot","configFile","normalized","joinPathFragments","existsSync","Error","undefined","nxProxyConfig","context","projectsConfigurations","projects","projectName","root","proxyConfigPath","options","clearScreen","process","cwd","relative","mode","base","plugins","replaceFiles","fileReplacements","optimizeDeps","force","logLevel","serverOptions","host","port","https","hmr","open","cors","fs","allow","searchForWorkspaceRoot","proxyConfig","logger","info","proxy","require","outDir","outputPath","emptyOutDir","reportCompressedSize","cssCodeSplit","target","commonjsOptions","transformMixedEsModules","sourcemap","minify","manifest","ssrManifest","ssr","watch","targetObj","parseTargetString","readTargetOptions"],"mappings":"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"}
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 { relative } from 'path';\nimport {\n BuildOptions,\n InlineConfig,\n PluginOption,\n PreviewOptions,\n ServerOptions,\n} from 'vite';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport replaceFiles from '../../plugins/rollup-replace-files.plugin';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\n\n/**\n * Returns the path to the vite config file or undefined when not found.\n */\nexport function normalizeViteConfigFilePath(\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 return existsSync(joinPathFragments(projectRoot, 'vite.config.ts'))\n ? joinPathFragments(projectRoot, 'vite.config.ts')\n : existsSync(joinPathFragments(projectRoot, 'vite.config.js'))\n ? joinPathFragments(projectRoot, 'vite.config.js')\n : undefined;\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 shared options for vite.\n *\n * Most shared options are derived from the build target.\n */\nexport function getViteSharedConfig(\n options: ViteBuildExecutorOptions,\n clearScreen: boolean | undefined,\n context: ExecutorContext\n): InlineConfig {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n return {\n mode: options.mode,\n root,\n base: options.base,\n configFile: normalizeViteConfigFilePath(projectRoot, options.configFile),\n plugins: [replaceFiles(options.fileReplacements) as PluginOption],\n optimizeDeps: { force: options.force },\n clearScreen: clearScreen,\n logLevel: options.logLevel,\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<ServerOptions> {\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { searchForWorkspaceRoot } = await (Function(\n 'return import(\"vite\")'\n )() as Promise<typeof import('vite')>);\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const serverOptions: ServerOptions = {\n host: options.host,\n port: options.port,\n https: options.https,\n hmr: options.hmr,\n open: options.open,\n cors: options.cors,\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\n/**\n * Builds the build options for the vite.\n */\nexport function getViteBuildOptions(\n options: ViteBuildExecutorOptions,\n context: ExecutorContext\n): BuildOptions {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n return {\n outDir: relative(projectRoot, options.outputPath),\n emptyOutDir: options.emptyOutDir,\n reportCompressedSize: true,\n cssCodeSplit: options.cssCodeSplit,\n target: options.target,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n sourcemap: options.sourcemap,\n minify: options.minify,\n manifest: options.manifest,\n ssrManifest: options.ssrManifest,\n ssr: options.ssr,\n watch: options.watch as BuildOptions['watch'],\n };\n}\n\n/**\n * Builds the options for the vite preview server.\n */\nexport function getVitePreviewOptions(\n options: VitePreviewServerExecutorOptions,\n context: ExecutorContext\n): PreviewOptions {\n const serverOptions: ServerOptions = {\n host: options.host,\n port: options.port,\n https: options.https,\n open: options.open,\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 getNxTargetOptions(target: string, context: ExecutorContext) {\n const targetObj = parseTargetString(target, context);\n return readTargetOptions(targetObj, context);\n}\n"],"names":["normalizeViteConfigFilePath","getProjectTsConfigPath","getViteServerProxyConfigPath","getViteSharedConfig","getViteServerOptions","getViteBuildOptions","getVitePreviewOptions","getNxTargetOptions","projectRoot","configFile","normalized","joinPathFragments","existsSync","Error","undefined","nxProxyConfig","context","projectsConfigurations","projects","projectName","root","proxyConfigPath","options","clearScreen","process","cwd","relative","mode","base","plugins","replaceFiles","fileReplacements","optimizeDeps","force","logLevel","searchForWorkspaceRoot","Function","serverOptions","host","port","https","hmr","open","cors","fs","allow","proxyConfig","logger","info","proxy","require","outDir","outputPath","emptyOutDir","reportCompressedSize","cssCodeSplit","target","commonjsOptions","transformMixedEsModules","sourcemap","minify","manifest","ssrManifest","ssr","watch","targetObj","parseTargetString","readTargetOptions"],"mappings":"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"}