@nx/vite 17.0.0 → 17.0.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/package.json +4 -4
- package/src/executors/test/vitest.impl.js +9 -0
- package/src/executors/test/vitest.impl.js.map +1 -1
- package/src/utils/options-utils.js +3 -1
- package/src/utils/options-utils.js.map +1 -1
- package/src/utils/test-files/angular-project.config.json +1 -1
- package/src/utils/test-files/react-lib-non-buildable-jest.json +1 -1
- package/src/utils/test-files/react-lib-non-buildable-vitest.json +1 -1
- package/src/utils/test-files/react-mixed-project.config.json +1 -1
- package/src/utils/test-files/react-project.config.json +1 -1
- package/src/utils/test-files/web-project.config.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "17.0.
|
|
3
|
+
"version": "17.0.2",
|
|
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": "17.0.
|
|
36
|
-
"@nx/js": "17.0.
|
|
35
|
+
"@nx/devkit": "17.0.2",
|
|
36
|
+
"@nx/js": "17.0.2",
|
|
37
37
|
"tsconfig-paths": "^4.1.2",
|
|
38
|
-
"@nrwl/vite": "17.0.
|
|
38
|
+
"@nrwl/vite": "17.0.2"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"vite": "^4.3.4",
|
|
@@ -101,6 +101,15 @@ async function getSettings(options, context, projectRoot) {
|
|
|
101
101
|
} : {};
|
|
102
102
|
const viteConfigPath = options.config ? options.config // config is expected to be from the workspace root
|
|
103
103
|
: findViteConfig((0, _devkit.joinPathFragments)(context.root, projectRoot));
|
|
104
|
+
if (!viteConfigPath) {
|
|
105
|
+
throw new Error((0, _devkit.stripIndents)`
|
|
106
|
+
Unable to load test config from config file ${viteConfigPath}.
|
|
107
|
+
|
|
108
|
+
Please make sure that vitest is configured correctly,
|
|
109
|
+
or use the @nx/vite:vitest generator to configure it for you.
|
|
110
|
+
You can read more here: https://nx.dev/nx-api/vite/generators/vitest
|
|
111
|
+
`);
|
|
112
|
+
}
|
|
104
113
|
const resolvedProjectRoot = (0, _path.resolve)(_devkit.workspaceRoot, projectRoot);
|
|
105
114
|
const resolvedViteConfigPath = (0, _path.resolve)(_devkit.workspaceRoot, projectRoot, (0, _path.relative)(resolvedProjectRoot, viteConfigPath));
|
|
106
115
|
const resolved = await loadConfigFromFile({
|
|
@@ -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 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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"}
|
|
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 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 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","Error","stripIndents","resolvedProjectRoot","resolvedViteConfigPath","command","logger","warn","path","projectRootFullPath","allowsExt","ext"],"mappings":"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"}
|
|
@@ -102,8 +102,10 @@ async function getViteServerOptions(options, context) {
|
|
|
102
102
|
}
|
|
103
103
|
function getViteBuildOptions(options, context) {
|
|
104
104
|
const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
|
|
105
|
+
const outputPath = (0, _devkit.joinPathFragments)('dist', projectRoot != '.' ? projectRoot : context.projectName);
|
|
106
|
+
var _options_outputPath;
|
|
105
107
|
return {
|
|
106
|
-
outDir: (0, _path.relative)(projectRoot, options.outputPath),
|
|
108
|
+
outDir: (0, _path.relative)(projectRoot, (_options_outputPath = options.outputPath) != null ? _options_outputPath : outputPath),
|
|
107
109
|
emptyOutDir: options.emptyOutDir,
|
|
108
110
|
reportCompressedSize: true,
|
|
109
111
|
cssCodeSplit: options.cssCodeSplit,
|
|
@@ -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 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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"}
|
|
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 const outputPath = joinPathFragments(\n 'dist',\n projectRoot != '.' ? projectRoot : context.projectName\n );\n\n return {\n outDir: relative(projectRoot, options.outputPath ?? 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","outputPath","outDir","emptyOutDir","reportCompressedSize","cssCodeSplit","target","commonjsOptions","transformMixedEsModules","sourcemap","minify","manifest","ssrManifest","ssr","watch","targetObj","parseTargetString","readTargetOptions"],"mappings":"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"}
|