@nx/vite 19.7.0-beta.0 → 19.7.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +5 -4
- package/plugins/nx-copy-assets.plugin.d.ts +3 -0
- package/plugins/nx-copy-assets.plugin.js +51 -0
- package/plugins/nx-copy-assets.plugin.js.map +1 -0
- package/src/executors/build/build.impl.js +1 -0
- package/src/executors/build/build.impl.js.map +1 -1
- package/src/executors/build/schema.d.ts +1 -0
- package/src/executors/build/schema.json +4 -0
- package/src/plugins/plugin.js +8 -3
- package/src/plugins/plugin.js.map +1 -1
- package/src/utils/e2e-web-server-info-utils.d.ts +2 -0
- package/src/utils/e2e-web-server-info-utils.js +32 -0
- package/src/utils/e2e-web-server-info-utils.js.map +1 -0
- package/src/utils/generator-utils.js +5 -2
- package/src/utils/generator-utils.js.map +1 -1
package/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './src/utils/versions';
|
|
2
2
|
export * from './src/utils/generator-utils';
|
|
3
|
+
export * from './src/utils/e2e-web-server-info-utils';
|
|
3
4
|
export { type ViteConfigurationGeneratorSchema } from './src/generators/configuration/schema';
|
|
4
5
|
export { viteConfigurationGenerator } from './src/generators/configuration/configuration';
|
|
5
6
|
export { type VitestGeneratorSchema } from './src/generators/vitest/schema';
|
package/index.js
CHANGED
|
@@ -19,6 +19,7 @@ _export(exports, {
|
|
|
19
19
|
const _export_star = require("@swc/helpers/_/_export_star");
|
|
20
20
|
_export_star._(require("./src/utils/versions"), exports);
|
|
21
21
|
_export_star._(require("./src/utils/generator-utils"), exports);
|
|
22
|
+
_export_star._(require("./src/utils/e2e-web-server-info-utils"), exports);
|
|
22
23
|
const _configuration = require("./src/generators/configuration/configuration");
|
|
23
24
|
const _vitestgenerator = require("./src/generators/vitest/vitest-generator");
|
|
24
25
|
const _init = require("./src/generators/init/init");
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/vite/index.ts"],"sourcesContent":["export * from './src/utils/versions';\nexport * from './src/utils/generator-utils';\nexport { type ViteConfigurationGeneratorSchema } from './src/generators/configuration/schema';\nexport { viteConfigurationGenerator } from './src/generators/configuration/configuration';\nexport { type VitestGeneratorSchema } from './src/generators/vitest/schema';\nexport { vitestGenerator } from './src/generators/vitest/vitest-generator';\nexport { type InitGeneratorSchema } from './src/generators/init/schema';\nexport { initGenerator } from './src/generators/init/init';\n"],"names":["initGenerator","viteConfigurationGenerator","vitestGenerator"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../../../packages/vite/index.ts"],"sourcesContent":["export * from './src/utils/versions';\nexport * from './src/utils/generator-utils';\nexport * from './src/utils/e2e-web-server-info-utils';\nexport { type ViteConfigurationGeneratorSchema } from './src/generators/configuration/schema';\nexport { viteConfigurationGenerator } from './src/generators/configuration/configuration';\nexport { type VitestGeneratorSchema } from './src/generators/vitest/schema';\nexport { vitestGenerator } from './src/generators/vitest/vitest-generator';\nexport { type InitGeneratorSchema } from './src/generators/init/schema';\nexport { initGenerator } from './src/generators/init/init';\n"],"names":["initGenerator","viteConfigurationGenerator","vitestGenerator"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAQSA,aAAa;eAAbA,mBAAa;;IAJbC,0BAA0B;eAA1BA,yCAA0B;;IAE1BC,eAAe;eAAfA,gCAAe;;;;uBANV;uBACA;uBACA;+BAE6B;iCAEX;sBAEF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "19.7.0-beta.
|
|
3
|
+
"version": "19.7.0-beta.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
"migrations": "./migrations.json"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@nx/devkit": "19.7.0-beta.
|
|
33
|
+
"@nx/devkit": "19.7.0-beta.2",
|
|
34
34
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
35
35
|
"@swc/helpers": "~0.5.0",
|
|
36
36
|
"enquirer": "~2.3.6",
|
|
37
|
-
"@nx/js": "19.7.0-beta.
|
|
37
|
+
"@nx/js": "19.7.0-beta.2",
|
|
38
38
|
"tsconfig-paths": "^4.1.2",
|
|
39
39
|
"minimatch": "9.0.3",
|
|
40
|
-
"@nrwl/vite": "19.7.0-beta.
|
|
40
|
+
"@nrwl/vite": "19.7.0-beta.2"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"vite": "^5.0.0",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"./src/executors/*/schema.json": "./src/executors/*/schema.json",
|
|
58
58
|
"./src/executors/*.impl": "./src/executors/*.impl.js",
|
|
59
59
|
"./src/executors/*/compat": "./src/executors/*/compat.js",
|
|
60
|
+
"./plugins/nx-copy-assets.plugin": "./plugins/nx-copy-assets.plugin.js",
|
|
60
61
|
"./plugins/nx-tsconfig-paths.plugin": "./plugins/nx-tsconfig-paths.plugin.js",
|
|
61
62
|
"./plugins/rollup-replace-files.plugin": "./plugins/rollup-replace-files.plugin.js"
|
|
62
63
|
},
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "nxCopyAssetsPlugin", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return nxCopyAssetsPlugin;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _extends = require("@swc/helpers/_/_extends");
|
|
9
|
+
const _nodepath = require("node:path");
|
|
10
|
+
const _devkit = require("@nx/devkit");
|
|
11
|
+
const _copyassetshandler = require("@nx/js/src/utils/assets/copy-assets-handler");
|
|
12
|
+
function nxCopyAssetsPlugin(_assets) {
|
|
13
|
+
let config;
|
|
14
|
+
let handler;
|
|
15
|
+
let dispose;
|
|
16
|
+
return {
|
|
17
|
+
name: 'nx-copy-assets-plugin',
|
|
18
|
+
configResolved (_config) {
|
|
19
|
+
config = _config;
|
|
20
|
+
},
|
|
21
|
+
async buildStart () {
|
|
22
|
+
const relativeProjectRoot = (0, _nodepath.relative)(_devkit.workspaceRoot, config.root);
|
|
23
|
+
const assets = _assets.map((a)=>{
|
|
24
|
+
if (typeof a === 'string') {
|
|
25
|
+
return (0, _devkit.joinPathFragments)(relativeProjectRoot, a);
|
|
26
|
+
} else {
|
|
27
|
+
return _extends._({}, a, {
|
|
28
|
+
input: (0, _devkit.joinPathFragments)(relativeProjectRoot, a.input)
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
handler = new _copyassetshandler.CopyAssetsHandler({
|
|
33
|
+
rootDir: _devkit.workspaceRoot,
|
|
34
|
+
projectDir: config.root,
|
|
35
|
+
outputDir: (0, _nodepath.join)(config.root, config.build.outDir),
|
|
36
|
+
assets
|
|
37
|
+
});
|
|
38
|
+
if (this.meta.watchMode) {
|
|
39
|
+
dispose = await handler.watchAndProcessOnAssetChange();
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
async writeBundle () {
|
|
43
|
+
await handler.processAllAssetsOnce();
|
|
44
|
+
},
|
|
45
|
+
async closeWatcher () {
|
|
46
|
+
dispose == null ? void 0 : dispose();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=nx-copy-assets.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../packages/vite/plugins/nx-copy-assets.plugin.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport type { Plugin, ResolvedConfig } from 'vite';\nimport { joinPathFragments, workspaceRoot } from '@nx/devkit';\nimport { AssetGlob } from '@nx/js/src/utils/assets/assets';\nimport { CopyAssetsHandler } from '@nx/js/src/utils/assets/copy-assets-handler';\n\nexport function nxCopyAssetsPlugin(_assets: (string | AssetGlob)[]): Plugin {\n let config: ResolvedConfig;\n let handler: CopyAssetsHandler;\n let dispose: () => void;\n\n return {\n name: 'nx-copy-assets-plugin',\n configResolved(_config) {\n config = _config;\n },\n async buildStart() {\n const relativeProjectRoot = relative(workspaceRoot, config.root);\n const assets = _assets.map((a) => {\n if (typeof a === 'string') {\n return joinPathFragments(relativeProjectRoot, a);\n } else {\n return {\n ...a,\n input: joinPathFragments(relativeProjectRoot, a.input),\n };\n }\n });\n handler = new CopyAssetsHandler({\n rootDir: workspaceRoot,\n projectDir: config.root,\n outputDir: join(config.root, config.build.outDir),\n assets,\n });\n if (this.meta.watchMode) {\n dispose = await handler.watchAndProcessOnAssetChange();\n }\n },\n async writeBundle() {\n await handler.processAllAssetsOnce();\n },\n async closeWatcher() {\n dispose == null ? void 0 : dispose();\n },\n };\n}\n"],"names":["nxCopyAssetsPlugin","_assets","config","handler","dispose","name","configResolved","_config","buildStart","relativeProjectRoot","relative","workspaceRoot","root","assets","map","a","joinPathFragments","input","CopyAssetsHandler","rootDir","projectDir","outputDir","join","build","outDir","meta","watchMode","watchAndProcessOnAssetChange","writeBundle","processAllAssetsOnce","closeWatcher"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";+BAMgBA;;;eAAAA;;;;0BANe;wBAEkB;mCAEf;AAE3B,SAASA,mBAAmBC,OAA+B;IAChE,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,OAAO;QACLC,MAAM;QACNC,gBAAeC,OAAO;YACpBL,SAASK;QACX;QACA,MAAMC;YACJ,MAAMC,sBAAsBC,IAAAA,kBAAQ,EAACC,qBAAa,EAAET,OAAOU,IAAI;YAC/D,MAAMC,SAASZ,QAAQa,GAAG,CAAC,CAACC;gBAC1B,IAAI,OAAOA,MAAM,UAAU;oBACzB,OAAOC,IAAAA,yBAAiB,EAACP,qBAAqBM;gBAChD,OAAO;oBACL,OAAO,eACFA;wBACHE,OAAOD,IAAAA,yBAAiB,EAACP,qBAAqBM,EAAEE,KAAK;;gBAEzD;YACF;YACAd,UAAU,IAAIe,oCAAiB,CAAC;gBAC9BC,SAASR,qBAAa;gBACtBS,YAAYlB,OAAOU,IAAI;gBACvBS,WAAWC,IAAAA,cAAI,EAACpB,OAAOU,IAAI,EAAEV,OAAOqB,KAAK,CAACC,MAAM;gBAChDX;YACF;YACA,IAAI,IAAI,CAACY,IAAI,CAACC,SAAS,EAAE;gBACvBtB,UAAU,MAAMD,QAAQwB,4BAA4B;YACtD;QACF;QACA,MAAMC;YACJ,MAAMzB,QAAQ0B,oBAAoB;QACpC;QACA,MAAMC;YACJ1B,WAAW,OAAO,KAAK,IAAIA;QAC7B;IACF;AACF"}
|
|
@@ -78,6 +78,7 @@ async function* viteBuildExecutor(options, context) {
|
|
|
78
78
|
target: context.targetName,
|
|
79
79
|
root: context.root,
|
|
80
80
|
isProduction: !options.includeDevDependenciesInPackageJson,
|
|
81
|
+
skipOverrides: options.skipOverrides,
|
|
81
82
|
skipPackageManager: options.skipPackageManager
|
|
82
83
|
});
|
|
83
84
|
var _type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n validateTypes,\n} from '../../utils/executor-utils';\nimport { type Plugin } from 'vite';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build, loadConfigFromFile } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const tsConfigForBuild = createBuildableTsConfig(\n projectRoot,\n options,\n context\n );\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.config?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n tsconfig: tsConfigForBuild,\n isVueProject: Boolean(\n resolved.config.plugins?.find(\n (plugin: Plugin) =>\n typeof plugin === 'object' && plugin?.name === 'vite:vue'\n )\n ),\n });\n }\n\n const watcherOrOutput = await build(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const outDirRelativeToWorkspaceRoot = outDir.replaceAll('../', '');\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/nx-api/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 skipPackageManager: options.skipPackageManager,\n }\n );\n\n builtPackageJson.type ??= 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n options.generatePackageJson !== false &&\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n if ('on' in watcherOrOutput) {\n const iterable = createAsyncIterable<{ success: boolean }>(({ next }) => {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n });\n yield* iterable;\n } else {\n const output = watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n yield { success: true, outfile };\n }\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n buildOptions['watch'] = options.watch ?? undefined;\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["getBuildExtraArgs","viteBuildExecutor","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","loadConfigFromFile","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","tsConfigForBuild","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","mode","command","outDir","offsetFromRoot","outputPath","config","buildConfig","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","isVueProject","Boolean","plugins","find","plugin","name","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","outDirRelativeToWorkspaceRoot","replaceAll","distPackageJson","generatePackageJson","builtPackageJson","projectGraph","nodes","type","logger","warn","stripIndents","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","skipPackageManager","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","success","on","event","code","result","close","fileName","outfile","schema","extraArgs","key","Object","keys","properties","buildSchemaKeys","includes","watch","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n validateTypes,\n} from '../../utils/executor-utils';\nimport { type Plugin } from 'vite';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { mergeConfig, build, loadConfigFromFile } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const tsConfigForBuild = createBuildableTsConfig(\n projectRoot,\n options,\n context\n );\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.'\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n\n const resolved = await loadConfigFromFile(\n {\n mode: otherOptions?.mode ?? 'production',\n command: 'build',\n },\n viteConfigPath\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.config?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.config.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n tsconfig: tsConfigForBuild,\n isVueProject: Boolean(\n resolved.config.plugins?.find(\n (plugin: Plugin) =>\n typeof plugin === 'object' && plugin?.name === 'vite:vue'\n )\n ),\n });\n }\n\n const watcherOrOutput = await build(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const outDirRelativeToWorkspaceRoot = outDir.replaceAll('../', '');\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/nx-api/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 skipOverrides: options.skipOverrides,\n skipPackageManager: options.skipPackageManager,\n }\n );\n\n builtPackageJson.type ??= 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n options.generatePackageJson !== false &&\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n if ('on' in watcherOrOutput) {\n const iterable = createAsyncIterable<{ success: boolean }>(({ next }) => {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n });\n yield* iterable;\n } else {\n const output = watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n yield { success: true, outfile };\n }\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n buildOptions['watch'] = options.watch ?? undefined;\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["getBuildExtraArgs","viteBuildExecutor","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","loadConfigFromFile","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","tsConfigForBuild","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","mode","command","outDir","offsetFromRoot","outputPath","config","buildConfig","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","isVueProject","Boolean","plugins","find","plugin","name","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","outDirRelativeToWorkspaceRoot","replaceAll","distPackageJson","generatePackageJson","builtPackageJson","projectGraph","nodes","type","logger","warn","stripIndents","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","skipOverrides","skipPackageManager","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","success","on","event","code","result","close","fileName","outfile","schema","extraArgs","key","Object","keys","properties","buildSchemaKeys","includes","watch","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -60,6 +60,10 @@
|
|
|
60
60
|
"description": "Include devDependencies in the generated package.json.",
|
|
61
61
|
"type": "boolean"
|
|
62
62
|
},
|
|
63
|
+
"skipOverrides": {
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"description": "Do not add a `overrides` and `resolutions` entries to the generated package.json file. Only works in conjunction with `generatePackageJson` option."
|
|
66
|
+
},
|
|
63
67
|
"skipPackageManager": {
|
|
64
68
|
"type": "boolean",
|
|
65
69
|
"description": "Do not add a `packageManager` entry to the generated package.json file. Only works in conjunction with `generatePackageJson` option."
|
package/src/plugins/plugin.js
CHANGED
|
@@ -128,21 +128,26 @@ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFi
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
if (tsConfigFiles.length) {
|
|
131
|
-
|
|
131
|
+
var _find;
|
|
132
|
+
const tsConfigToUse = (_find = [
|
|
133
|
+
'tsconfig.app.json',
|
|
134
|
+
'tsconfig.lib.json',
|
|
135
|
+
'tsconfig.json'
|
|
136
|
+
].find((t)=>tsConfigFiles.includes(t))) != null ? _find : tsConfigFiles[0];
|
|
132
137
|
targets[options.typecheckTargetName] = {
|
|
133
138
|
cache: true,
|
|
134
139
|
inputs: [
|
|
135
140
|
'production',
|
|
136
141
|
'^production'
|
|
137
142
|
],
|
|
138
|
-
command:
|
|
143
|
+
command: `tsc --noEmit -p ${tsConfigToUse}`,
|
|
139
144
|
options: {
|
|
140
145
|
cwd: (0, _devkit.joinPathFragments)(projectRoot)
|
|
141
146
|
},
|
|
142
147
|
metadata: {
|
|
143
148
|
description: `Run Typechecking`,
|
|
144
149
|
help: {
|
|
145
|
-
command: `${pmc.exec} tsc --help -p ${
|
|
150
|
+
command: `${pmc.exec} tsc --help -p ${tsConfigToUse}`,
|
|
146
151
|
example: {
|
|
147
152
|
options: {
|
|
148
153
|
noEmit: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n createNodesFromFiles,\n CreateNodesV2,\n detectPackageManager,\n getPackageManagerCommand,\n joinPathFragments,\n logger,\n ProjectConfiguration,\n readJsonFile,\n TargetConfiguration,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { workspaceDataDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nimport { loadViteDynamicImport } from '../utils/executor-utils';\nimport { hashObject } from 'nx/src/hasher/file-hasher';\nimport { minimatch } from 'minimatch';\n\nconst pmc = getPackageManagerCommand();\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n typecheckTargetName?: string;\n}\n\ntype ViteTargets = Pick<ProjectConfiguration, 'targets' | 'metadata'>;\n\nfunction readTargetsCache(cachePath: string): Record<string, ViteTargets> {\n return existsSync(cachePath) ? readJsonFile(cachePath) : {};\n}\n\nfunction writeTargetsToCache(cachePath, results?: Record<string, ViteTargets>) {\n writeJsonFile(cachePath, results);\n}\n\n/**\n * @deprecated The 'createDependencies' function is now a no-op. This functionality is included in 'createNodesV2'.\n */\nexport const createDependencies: CreateDependencies = () => {\n return [];\n};\n\nconst viteVitestConfigGlob = '**/{vite,vitest}.config.{js,ts,mjs,mts,cjs,cts}';\n\nexport const createNodesV2: CreateNodesV2<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePaths, options, context) => {\n const optionsHash = hashObject(options);\n const cachePath = join(workspaceDataDirectory, `vite-${optionsHash}.hash`);\n const targetsCache = readTargetsCache(cachePath);\n try {\n return await createNodesFromFiles(\n (configFile, options, context) =>\n createNodesInternal(configFile, options, context, targetsCache),\n configFilePaths,\n options,\n context\n );\n } finally {\n writeTargetsToCache(cachePath, targetsCache);\n }\n },\n];\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePath, options, context) => {\n logger.warn(\n '`createNodes` is deprecated. Update your plugin to utilize createNodesV2 instead. In Nx 20, this will change to the createNodesV2 API.'\n );\n return createNodesInternal(configFilePath, options, context, {});\n },\n];\n\nasync function createNodesInternal(\n configFilePath: string,\n options: VitePluginOptions,\n context: CreateNodesContext,\n targetsCache: Record<string, ViteTargets>\n) {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n const tsConfigFiles =\n siblingFiles.filter((p) => minimatch(p, 'tsconfig*{.json,.*.json}')) ?? [];\n\n const normalizedOptions = normalizeOptions(options);\n\n // We do not want to alter how the hash is calculated, so appending the config file path to the hash\n // to prevent vite/vitest files overwriting the target cache created by the other\n const hash =\n (await calculateHashForCreateNodes(\n projectRoot,\n normalizedOptions,\n context,\n [getLockFileName(detectPackageManager(context.workspaceRoot))]\n )) + configFilePath;\n\n const { isLibrary, ...viteTargets } = await buildViteTargets(\n configFilePath,\n projectRoot,\n normalizedOptions,\n tsConfigFiles,\n context\n );\n targetsCache[hash] ??= viteTargets;\n\n const { targets, metadata } = targetsCache[hash];\n const project: ProjectConfiguration = {\n root: projectRoot,\n targets,\n metadata,\n };\n\n // If project is buildable, then the project type.\n // If it is not buildable, then leave it to other plugins/project.json to set the project type.\n if (project.targets[options.buildTargetName]) {\n project.projectType = isLibrary ? 'library' : 'application';\n }\n\n return {\n projects: {\n [projectRoot]: project,\n },\n };\n}\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n tsConfigFiles: string[],\n context: CreateNodesContext\n): Promise<ViteTargets & { isLibrary: boolean }> {\n const absoluteConfigFilePath = joinPathFragments(\n context.workspaceRoot,\n configFilePath\n );\n // Workaround for the `build$3 is not a function` error that we sometimes see in agents.\n // This should be removed later once we address the issue properly\n try {\n const importEsbuild = () => new Function('return import(\"esbuild\")')();\n await importEsbuild();\n } catch {\n // do nothing\n }\n const { resolveConfig } = await loadViteDynamicImport();\n const viteBuildConfig = await resolveConfig(\n {\n configFile: absoluteConfigFilePath,\n mode: 'development',\n },\n 'build'\n );\n\n const { buildOutputs, testOutputs, hasTest, isBuildable, hasServeConfig } =\n getOutputs(viteBuildConfig, projectRoot, context.workspaceRoot);\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n // If file is not vitest.config and buildable, create targets for build, serve, preview and serve-static\n const hasRemixPlugin =\n viteBuildConfig.plugins &&\n viteBuildConfig.plugins.some((p) => p.name === 'remix');\n if (\n !configFilePath.includes('vitest.config') &&\n !hasRemixPlugin &&\n isBuildable\n ) {\n targets[options.buildTargetName] = await buildTarget(\n options.buildTargetName,\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n // If running in library mode, then there is nothing to serve.\n if (!viteBuildConfig.build?.lib || hasServeConfig) {\n targets[options.serveTargetName] = serveTarget(projectRoot);\n targets[options.previewTargetName] = previewTarget(\n projectRoot,\n options.buildTargetName\n );\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n }\n }\n\n if (tsConfigFiles.length) {\n const tsconfigToUse = tsConfigFiles.includes('tsconfig.lib.json')\n ? 'tsconfig.lib.json'\n : tsConfigFiles[0];\n targets[options.typecheckTargetName] = {\n cache: true,\n inputs: ['production', '^production'],\n command: 'tsc --noEmit',\n options: { cwd: joinPathFragments(projectRoot) },\n metadata: {\n description: `Run Typechecking`,\n help: {\n command: `${pmc.exec} tsc --help -p ${tsconfigToUse}`,\n example: {\n options: {\n noEmit: true,\n },\n },\n },\n },\n };\n }\n\n // if file is vitest.config or vite.config has definition for test, create target for test\n if (configFilePath.includes('vitest.config') || hasTest) {\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n }\n\n const metadata = {};\n return { targets, metadata, isLibrary: Boolean(viteBuildConfig.build?.lib) };\n}\n\nasync function buildTarget(\n buildTargetName: string,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vite build`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n dependsOn: [`^${buildTargetName}`],\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite build`,\n help: {\n command: `${pmc.exec} vite build --help`,\n example: {\n options: {\n sourcemap: true,\n manifest: 'manifest.json',\n },\n },\n },\n },\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Starts Vite dev server`,\n help: {\n command: `${pmc.exec} vite --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string, buildTargetName) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n dependsOn: [buildTargetName],\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Locally preview Vite production build`,\n help: {\n command: `${pmc.exec} vite preview --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vitest`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['default', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n { env: 'CI' },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite tests`,\n help: {\n command: `${pmc.exec} vitest --help`,\n example: {\n options: {\n bail: 1,\n coverage: true,\n },\n },\n },\n },\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n spa: true,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n viteBuildConfig: Record<string, any> | undefined,\n projectRoot: string,\n workspaceRoot: string\n): {\n buildOutputs: string[];\n testOutputs: string[];\n hasTest: boolean;\n isBuildable: boolean;\n hasServeConfig: boolean;\n} {\n const { build, test, server } = viteBuildConfig;\n\n const buildOutputPath = normalizeOutputPath(\n build?.outDir,\n projectRoot,\n workspaceRoot,\n 'dist'\n );\n\n const isBuildable =\n build?.lib ||\n build?.rollupOptions?.input ||\n existsSync(join(workspaceRoot, projectRoot, 'index.html'));\n\n const hasServeConfig = Boolean(server);\n\n const reportsDirectoryPath = normalizeOutputPath(\n test?.coverage?.reportsDirectory,\n projectRoot,\n workspaceRoot,\n 'coverage'\n );\n\n return {\n buildOutputs: [buildOutputPath],\n testOutputs: [reportsDirectoryPath],\n hasTest: !!test,\n isBuildable,\n hasServeConfig,\n };\n}\n\nfunction normalizeOutputPath(\n outputPath: string | undefined,\n projectRoot: string,\n workspaceRoot: string,\n path: 'coverage' | 'dist'\n): string | undefined {\n if (!outputPath) {\n if (projectRoot === '.') {\n return `{projectRoot}/${path}`;\n } else {\n return `{workspaceRoot}/${path}/{projectRoot}`;\n }\n } else {\n if (isAbsolute(outputPath)) {\n return `{workspaceRoot}/${relative(workspaceRoot, outputPath)}`;\n } else {\n if (outputPath.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, outputPath));\n } else {\n return join('{projectRoot}', outputPath);\n }\n }\n }\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n options.typecheckTargetName ??= 'typecheck';\n return options;\n}\n"],"names":["createDependencies","createNodes","createNodesV2","pmc","getPackageManagerCommand","readTargetsCache","cachePath","existsSync","readJsonFile","writeTargetsToCache","results","writeJsonFile","viteVitestConfigGlob","configFilePaths","options","context","optionsHash","hashObject","join","workspaceDataDirectory","targetsCache","createNodesFromFiles","configFile","createNodesInternal","configFilePath","logger","warn","hash","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","tsConfigFiles","filter","p","minimatch","normalizedOptions","normalizeOptions","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","isLibrary","viteTargets","targets","metadata","project","root","buildTargetName","projectType","projects","viteBuildConfig","absoluteConfigFilePath","joinPathFragments","importEsbuild","Function","resolveConfig","loadViteDynamicImport","mode","buildOutputs","testOutputs","hasTest","isBuildable","hasServeConfig","getOutputs","namedInputs","getNamedInputs","hasRemixPlugin","plugins","some","name","buildTarget","build","lib","serveTargetName","serveTarget","previewTargetName","previewTarget","serveStaticTargetName","serveStaticTarget","length","tsconfigToUse","typecheckTargetName","cache","inputs","command","cwd","description","help","exec","example","noEmit","testTargetName","testTarget","Boolean","outputs","dependsOn","externalDependencies","technologies","sourcemap","manifest","targetConfig","port","env","bail","coverage","executor","spa","test","server","buildOutputPath","normalizeOutputPath","outDir","rollupOptions","input","reportsDirectoryPath","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n createNodesFromFiles,\n CreateNodesV2,\n detectPackageManager,\n getPackageManagerCommand,\n joinPathFragments,\n logger,\n ProjectConfiguration,\n readJsonFile,\n TargetConfiguration,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { workspaceDataDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nimport { loadViteDynamicImport } from '../utils/executor-utils';\nimport { hashObject } from 'nx/src/hasher/file-hasher';\nimport { minimatch } from 'minimatch';\n\nconst pmc = getPackageManagerCommand();\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n typecheckTargetName?: string;\n}\n\ntype ViteTargets = Pick<ProjectConfiguration, 'targets' | 'metadata'>;\n\nfunction readTargetsCache(cachePath: string): Record<string, ViteTargets> {\n return existsSync(cachePath) ? readJsonFile(cachePath) : {};\n}\n\nfunction writeTargetsToCache(cachePath, results?: Record<string, ViteTargets>) {\n writeJsonFile(cachePath, results);\n}\n\n/**\n * @deprecated The 'createDependencies' function is now a no-op. This functionality is included in 'createNodesV2'.\n */\nexport const createDependencies: CreateDependencies = () => {\n return [];\n};\n\nconst viteVitestConfigGlob = '**/{vite,vitest}.config.{js,ts,mjs,mts,cjs,cts}';\n\nexport const createNodesV2: CreateNodesV2<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePaths, options, context) => {\n const optionsHash = hashObject(options);\n const cachePath = join(workspaceDataDirectory, `vite-${optionsHash}.hash`);\n const targetsCache = readTargetsCache(cachePath);\n try {\n return await createNodesFromFiles(\n (configFile, options, context) =>\n createNodesInternal(configFile, options, context, targetsCache),\n configFilePaths,\n options,\n context\n );\n } finally {\n writeTargetsToCache(cachePath, targetsCache);\n }\n },\n];\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePath, options, context) => {\n logger.warn(\n '`createNodes` is deprecated. Update your plugin to utilize createNodesV2 instead. In Nx 20, this will change to the createNodesV2 API.'\n );\n return createNodesInternal(configFilePath, options, context, {});\n },\n];\n\nasync function createNodesInternal(\n configFilePath: string,\n options: VitePluginOptions,\n context: CreateNodesContext,\n targetsCache: Record<string, ViteTargets>\n) {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n const tsConfigFiles =\n siblingFiles.filter((p) => minimatch(p, 'tsconfig*{.json,.*.json}')) ?? [];\n\n const normalizedOptions = normalizeOptions(options);\n\n // We do not want to alter how the hash is calculated, so appending the config file path to the hash\n // to prevent vite/vitest files overwriting the target cache created by the other\n const hash =\n (await calculateHashForCreateNodes(\n projectRoot,\n normalizedOptions,\n context,\n [getLockFileName(detectPackageManager(context.workspaceRoot))]\n )) + configFilePath;\n\n const { isLibrary, ...viteTargets } = await buildViteTargets(\n configFilePath,\n projectRoot,\n normalizedOptions,\n tsConfigFiles,\n context\n );\n targetsCache[hash] ??= viteTargets;\n\n const { targets, metadata } = targetsCache[hash];\n const project: ProjectConfiguration = {\n root: projectRoot,\n targets,\n metadata,\n };\n\n // If project is buildable, then the project type.\n // If it is not buildable, then leave it to other plugins/project.json to set the project type.\n if (project.targets[options.buildTargetName]) {\n project.projectType = isLibrary ? 'library' : 'application';\n }\n\n return {\n projects: {\n [projectRoot]: project,\n },\n };\n}\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n tsConfigFiles: string[],\n context: CreateNodesContext\n): Promise<ViteTargets & { isLibrary: boolean }> {\n const absoluteConfigFilePath = joinPathFragments(\n context.workspaceRoot,\n configFilePath\n );\n // Workaround for the `build$3 is not a function` error that we sometimes see in agents.\n // This should be removed later once we address the issue properly\n try {\n const importEsbuild = () => new Function('return import(\"esbuild\")')();\n await importEsbuild();\n } catch {\n // do nothing\n }\n const { resolveConfig } = await loadViteDynamicImport();\n const viteBuildConfig = await resolveConfig(\n {\n configFile: absoluteConfigFilePath,\n mode: 'development',\n },\n 'build'\n );\n\n const { buildOutputs, testOutputs, hasTest, isBuildable, hasServeConfig } =\n getOutputs(viteBuildConfig, projectRoot, context.workspaceRoot);\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n // If file is not vitest.config and buildable, create targets for build, serve, preview and serve-static\n const hasRemixPlugin =\n viteBuildConfig.plugins &&\n viteBuildConfig.plugins.some((p) => p.name === 'remix');\n if (\n !configFilePath.includes('vitest.config') &&\n !hasRemixPlugin &&\n isBuildable\n ) {\n targets[options.buildTargetName] = await buildTarget(\n options.buildTargetName,\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n // If running in library mode, then there is nothing to serve.\n if (!viteBuildConfig.build?.lib || hasServeConfig) {\n targets[options.serveTargetName] = serveTarget(projectRoot);\n targets[options.previewTargetName] = previewTarget(\n projectRoot,\n options.buildTargetName\n );\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n }\n }\n\n if (tsConfigFiles.length) {\n const tsConfigToUse =\n ['tsconfig.app.json', 'tsconfig.lib.json', 'tsconfig.json'].find((t) =>\n tsConfigFiles.includes(t)\n ) ?? tsConfigFiles[0];\n targets[options.typecheckTargetName] = {\n cache: true,\n inputs: ['production', '^production'],\n command: `tsc --noEmit -p ${tsConfigToUse}`,\n options: { cwd: joinPathFragments(projectRoot) },\n metadata: {\n description: `Run Typechecking`,\n help: {\n command: `${pmc.exec} tsc --help -p ${tsConfigToUse}`,\n example: {\n options: {\n noEmit: true,\n },\n },\n },\n },\n };\n }\n\n // if file is vitest.config or vite.config has definition for test, create target for test\n if (configFilePath.includes('vitest.config') || hasTest) {\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n }\n\n const metadata = {};\n return { targets, metadata, isLibrary: Boolean(viteBuildConfig.build?.lib) };\n}\n\nasync function buildTarget(\n buildTargetName: string,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vite build`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n dependsOn: [`^${buildTargetName}`],\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite build`,\n help: {\n command: `${pmc.exec} vite build --help`,\n example: {\n options: {\n sourcemap: true,\n manifest: 'manifest.json',\n },\n },\n },\n },\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Starts Vite dev server`,\n help: {\n command: `${pmc.exec} vite --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string, buildTargetName) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n dependsOn: [buildTargetName],\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Locally preview Vite production build`,\n help: {\n command: `${pmc.exec} vite preview --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vitest`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['default', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n { env: 'CI' },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite tests`,\n help: {\n command: `${pmc.exec} vitest --help`,\n example: {\n options: {\n bail: 1,\n coverage: true,\n },\n },\n },\n },\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n spa: true,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n viteBuildConfig: Record<string, any> | undefined,\n projectRoot: string,\n workspaceRoot: string\n): {\n buildOutputs: string[];\n testOutputs: string[];\n hasTest: boolean;\n isBuildable: boolean;\n hasServeConfig: boolean;\n} {\n const { build, test, server } = viteBuildConfig;\n\n const buildOutputPath = normalizeOutputPath(\n build?.outDir,\n projectRoot,\n workspaceRoot,\n 'dist'\n );\n\n const isBuildable =\n build?.lib ||\n build?.rollupOptions?.input ||\n existsSync(join(workspaceRoot, projectRoot, 'index.html'));\n\n const hasServeConfig = Boolean(server);\n\n const reportsDirectoryPath = normalizeOutputPath(\n test?.coverage?.reportsDirectory,\n projectRoot,\n workspaceRoot,\n 'coverage'\n );\n\n return {\n buildOutputs: [buildOutputPath],\n testOutputs: [reportsDirectoryPath],\n hasTest: !!test,\n isBuildable,\n hasServeConfig,\n };\n}\n\nfunction normalizeOutputPath(\n outputPath: string | undefined,\n projectRoot: string,\n workspaceRoot: string,\n path: 'coverage' | 'dist'\n): string | undefined {\n if (!outputPath) {\n if (projectRoot === '.') {\n return `{projectRoot}/${path}`;\n } else {\n return `{workspaceRoot}/${path}/{projectRoot}`;\n }\n } else {\n if (isAbsolute(outputPath)) {\n return `{workspaceRoot}/${relative(workspaceRoot, outputPath)}`;\n } else {\n if (outputPath.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, outputPath));\n } else {\n return join('{projectRoot}', outputPath);\n }\n }\n }\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n options.typecheckTargetName ??= 'typecheck';\n return options;\n}\n"],"names":["createDependencies","createNodes","createNodesV2","pmc","getPackageManagerCommand","readTargetsCache","cachePath","existsSync","readJsonFile","writeTargetsToCache","results","writeJsonFile","viteVitestConfigGlob","configFilePaths","options","context","optionsHash","hashObject","join","workspaceDataDirectory","targetsCache","createNodesFromFiles","configFile","createNodesInternal","configFilePath","logger","warn","hash","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","tsConfigFiles","filter","p","minimatch","normalizedOptions","normalizeOptions","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","isLibrary","viteTargets","targets","metadata","project","root","buildTargetName","projectType","projects","viteBuildConfig","absoluteConfigFilePath","joinPathFragments","importEsbuild","Function","resolveConfig","loadViteDynamicImport","mode","buildOutputs","testOutputs","hasTest","isBuildable","hasServeConfig","getOutputs","namedInputs","getNamedInputs","hasRemixPlugin","plugins","some","name","buildTarget","build","lib","serveTargetName","serveTarget","previewTargetName","previewTarget","serveStaticTargetName","serveStaticTarget","length","tsConfigToUse","find","t","typecheckTargetName","cache","inputs","command","cwd","description","help","exec","example","noEmit","testTargetName","testTarget","Boolean","outputs","dependsOn","externalDependencies","technologies","sourcemap","manifest","targetConfig","port","env","bail","coverage","executor","spa","test","server","buildOutputPath","normalizeOutputPath","outDir","rollupOptions","input","reportsDirectoryPath","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
export declare function getViteE2EWebServerInfo(tree: Tree, projectName: string, configFilePath: string, isPluginBeingAdded: boolean, e2ePortOverride?: number): Promise<import("@nx/devkit/src/generators/e2e-web-server-info-utils").E2EWebServerDetails>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "getViteE2EWebServerInfo", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return getViteE2EWebServerInfo;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _devkit = require("@nx/devkit");
|
|
9
|
+
const _e2ewebserverinfoutils = require("@nx/devkit/src/generators/e2e-web-server-info-utils");
|
|
10
|
+
async function getViteE2EWebServerInfo(tree, projectName, configFilePath, isPluginBeingAdded, e2ePortOverride) {
|
|
11
|
+
var _nxJson_targetDefaults, _nxJson_targetDefaults_serve_options, _nxJson_targetDefaults1;
|
|
12
|
+
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
13
|
+
let e2ePort = e2ePortOverride != null ? e2ePortOverride : 4200;
|
|
14
|
+
if (((_nxJson_targetDefaults = nxJson.targetDefaults) == null ? void 0 : _nxJson_targetDefaults['serve']) && ((_nxJson_targetDefaults1 = nxJson.targetDefaults) == null ? void 0 : (_nxJson_targetDefaults_serve_options = _nxJson_targetDefaults1['serve'].options) == null ? void 0 : _nxJson_targetDefaults_serve_options.port)) {
|
|
15
|
+
var _nxJson_targetDefaults_serve_options1, _nxJson_targetDefaults2;
|
|
16
|
+
e2ePort = (_nxJson_targetDefaults2 = nxJson.targetDefaults) == null ? void 0 : (_nxJson_targetDefaults_serve_options1 = _nxJson_targetDefaults2['serve'].options) == null ? void 0 : _nxJson_targetDefaults_serve_options1.port;
|
|
17
|
+
}
|
|
18
|
+
return (0, _e2ewebserverinfoutils.getE2EWebServerInfo)(tree, projectName, {
|
|
19
|
+
plugin: '@nx/vite/plugin',
|
|
20
|
+
serveTargetName: 'serveTargetName',
|
|
21
|
+
serveStaticTargetName: 'previewTargetName',
|
|
22
|
+
configFilePath
|
|
23
|
+
}, {
|
|
24
|
+
defaultServeTargetName: 'serve',
|
|
25
|
+
defaultServeStaticTargetName: 'preview',
|
|
26
|
+
defaultE2EWebServerAddress: `http://localhost:${e2ePort}`,
|
|
27
|
+
defaultE2ECiBaseUrl: 'http://localhost:4300',
|
|
28
|
+
defaultE2EPort: e2ePort
|
|
29
|
+
}, isPluginBeingAdded);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=e2e-web-server-info-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/e2e-web-server-info-utils.ts"],"sourcesContent":["import { type Tree, readNxJson } from '@nx/devkit';\nimport { getE2EWebServerInfo } from '@nx/devkit/src/generators/e2e-web-server-info-utils';\n\nexport async function getViteE2EWebServerInfo(\n tree: Tree,\n projectName: string,\n configFilePath: string,\n isPluginBeingAdded: boolean,\n e2ePortOverride?: number\n) {\n const nxJson = readNxJson(tree);\n let e2ePort = e2ePortOverride ?? 4200;\n\n if (\n nxJson.targetDefaults?.['serve'] &&\n nxJson.targetDefaults?.['serve'].options?.port\n ) {\n e2ePort = nxJson.targetDefaults?.['serve'].options?.port;\n }\n\n return getE2EWebServerInfo(\n tree,\n projectName,\n {\n plugin: '@nx/vite/plugin',\n serveTargetName: 'serveTargetName',\n serveStaticTargetName: 'previewTargetName',\n configFilePath,\n },\n {\n defaultServeTargetName: 'serve',\n defaultServeStaticTargetName: 'preview',\n defaultE2EWebServerAddress: `http://localhost:${e2ePort}`,\n defaultE2ECiBaseUrl: 'http://localhost:4300',\n defaultE2EPort: e2ePort,\n },\n isPluginBeingAdded\n );\n}\n"],"names":["getViteE2EWebServerInfo","tree","projectName","configFilePath","isPluginBeingAdded","e2ePortOverride","nxJson","readNxJson","e2ePort","targetDefaults","options","port","getE2EWebServerInfo","plugin","serveTargetName","serveStaticTargetName","defaultServeTargetName","defaultServeStaticTargetName","defaultE2EWebServerAddress","defaultE2ECiBaseUrl","defaultE2EPort"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";+BAGsBA;;;eAAAA;;;wBAHgB;uCACF;AAE7B,eAAeA,wBACpBC,IAAU,EACVC,WAAmB,EACnBC,cAAsB,EACtBC,kBAA2B,EAC3BC,eAAwB;QAMtBC,wBACAA,sCAAAA;IALF,MAAMA,SAASC,IAAAA,kBAAU,EAACN;IAC1B,IAAIO,UAAUH,0BAAAA,kBAAmB;IAEjC,IACEC,EAAAA,yBAAAA,OAAOG,cAAc,qBAArBH,sBAAuB,CAAC,QAAQ,OAChCA,0BAAAA,OAAOG,cAAc,sBAArBH,uCAAAA,uBAAuB,CAAC,QAAQ,CAACI,OAAO,qBAAxCJ,qCAA0CK,IAAI,GAC9C;YACUL,uCAAAA;QAAVE,WAAUF,0BAAAA,OAAOG,cAAc,sBAArBH,wCAAAA,uBAAuB,CAAC,QAAQ,CAACI,OAAO,qBAAxCJ,sCAA0CK,IAAI;IAC1D;IAEA,OAAOC,IAAAA,0CAAmB,EACxBX,MACAC,aACA;QACEW,QAAQ;QACRC,iBAAiB;QACjBC,uBAAuB;QACvBZ;IACF,GACA;QACEa,wBAAwB;QACxBC,8BAA8B;QAC9BC,4BAA4B,CAAC,iBAAiB,EAAEV,QAAQ,CAAC;QACzDW,qBAAqB;QACrBC,gBAAgBZ;IAClB,GACAJ;AAEJ"}
|
|
@@ -326,9 +326,11 @@ function createOrEditViteConfig(tree, options, onlyVitest, projectAlreadyHasVite
|
|
|
326
326
|
let viteConfigContent = '';
|
|
327
327
|
const plugins = options.plugins ? [
|
|
328
328
|
...options.plugins,
|
|
329
|
-
`nxViteTsPaths()
|
|
329
|
+
`nxViteTsPaths()`,
|
|
330
|
+
`nxCopyAssetsPlugin(['*.md'])`
|
|
330
331
|
] : [
|
|
331
|
-
`nxViteTsPaths()
|
|
332
|
+
`nxViteTsPaths()`,
|
|
333
|
+
`nxCopyAssetsPlugin(['*.md'])`
|
|
332
334
|
];
|
|
333
335
|
if (!onlyVitest && options.includeLib) {
|
|
334
336
|
plugins.push(`dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })`);
|
|
@@ -375,6 +377,7 @@ function createOrEditViteConfig(tree, options, onlyVitest, projectAlreadyHasVite
|
|
|
375
377
|
import { defineConfig } from 'vite';
|
|
376
378
|
${imports.join(';\n')}${imports.length ? ';' : ''}
|
|
377
379
|
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
|
|
380
|
+
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
|
|
378
381
|
|
|
379
382
|
export default defineConfig({
|
|
380
383
|
root: __dirname,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/utils/generator-utils.ts"],"sourcesContent":["import {\n joinPathFragments,\n logger,\n offsetFromRoot,\n readJson,\n readProjectConfiguration,\n TargetConfiguration,\n Tree,\n updateProjectConfiguration,\n writeJson,\n} from '@nx/devkit';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport { VitestExecutorOptions } from '../executors/test/schema';\nimport { ViteConfigurationGeneratorSchema } from '../generators/configuration/schema';\nimport { ensureViteConfigIsCorrect } from './vite-config-edit-utils';\nimport { addBuildTargetDefaults } from '@nx/devkit/src/generators/target-defaults-utils';\n\nexport type Target = 'build' | 'serve' | 'test' | 'preview';\nexport type TargetFlags = Partial<Record<Target, boolean>>;\nexport type UserProvidedTargetName = Partial<Record<Target, string>>;\nexport type ValidFoundTargetName = Partial<Record<Target, string>>;\n\nexport function findExistingJsBuildTargetInProject(targets: {\n [targetName: string]: TargetConfiguration;\n}): {\n supported?: string;\n unsupported?: string;\n} {\n const output: {\n supported?: string;\n unsupported?: string;\n } = {};\n\n const supportedExecutors = {\n build: ['@nx/js:babel', '@nx/js:swc', '@nx/rollup:rollup'],\n };\n const unsupportedExecutors = [\n '@nx/angular:ng-packagr-lite',\n '@nx/angular:package',\n '@nx/angular:webpack-browser',\n '@nx/esbuild:esbuild',\n '@nx/react-native:run-ios',\n '@nx/react-native:start',\n '@nx/react-native:run-android',\n '@nx/react-native:bundle',\n '@nx/react-native:build-android',\n '@nx/react-native:bundle',\n '@nx/next:build',\n '@nx/js:tsc',\n '@nrwl/angular:ng-packagr-lite',\n '@nrwl/angular:package',\n '@nrwl/angular:webpack-browser',\n '@nrwl/esbuild:esbuild',\n '@nrwl/react-native:run-ios',\n '@nrwl/react-native:start',\n '@nrwl/react-native:run-android',\n '@nrwl/react-native:bundle',\n '@nrwl/react-native:build-android',\n '@nrwl/react-native:bundle',\n '@nrwl/next:build',\n '@nrwl/js:tsc',\n '@angular-devkit/build-angular:browser',\n '@angular-devkit/build-angular:browser-esbuild',\n '@angular-devkit/build-angular:application',\n ];\n\n // We try to find the target that is using the supported executors\n // for build since this is the one we will be converting\n for (const target in targets) {\n const executorName = targets[target].executor;\n if (supportedExecutors.build.includes(executorName)) {\n output.supported = target;\n } else if (unsupportedExecutors.includes(executorName)) {\n output.unsupported = target;\n }\n }\n return output;\n}\n\nexport function addOrChangeTestTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const reportsDirectory = joinPathFragments(\n offsetFromRoot(project.root),\n 'coverage',\n project.root === '.' ? options.project : project.root\n );\n const testOptions: VitestExecutorOptions = {\n reportsDirectory,\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n project.targets[target].executor = '@nx/vite:test';\n delete project.targets[target].options?.jestConfig;\n } else {\n project.targets[target] = {\n executor: '@nx/vite:test',\n outputs: ['{options.reportsDirectory}'],\n options: testOptions,\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addBuildTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n addBuildTargetDefaults(tree, '@nx/vite:build');\n const project = readProjectConfiguration(tree, options.project);\n const buildOptions: ViteBuildExecutorOptions = {\n outputPath: joinPathFragments(\n 'dist',\n project.root != '.' ? project.root : options.project\n ),\n };\n project.targets ??= {};\n project.targets[target] = {\n executor: '@nx/vite:build',\n outputs: ['{options.outputPath}'],\n defaultConfiguration: 'production',\n options: buildOptions,\n configurations: {\n development: {\n mode: 'development',\n },\n production: {\n mode: 'production',\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addServeTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n project.targets ??= {};\n\n project.targets[target] = {\n executor: '@nx/vite:dev-server',\n defaultConfiguration: 'development',\n options: {\n buildTarget: `${options.project}:build`,\n },\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n hmr: true,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n hmr: false,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\n/**\n * Adds a target for the preview server.\n *\n * @param tree\n * @param options\n * @param serveTarget An existing serve target.\n */\nexport function addPreviewTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n serveTarget: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const previewOptions: VitePreviewServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n };\n\n project.targets ??= {};\n\n // Update the options from the passed serve target.\n if (project.targets[serveTarget]) {\n const target = project.targets[serveTarget];\n if (target.executor === '@nxext/vite:dev') {\n previewOptions.proxyConfig = target.options.proxyConfig;\n }\n previewOptions['https'] = target.options?.https;\n previewOptions['open'] = target.options?.open;\n }\n\n // Adds a preview target.\n project.targets.preview = {\n dependsOn: ['build'],\n executor: '@nx/vite:preview-server',\n defaultConfiguration: 'development',\n options: previewOptions,\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function editTsConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n const config = readJson(tree, `${projectConfig.root}/tsconfig.json`);\n\n switch (options.uiFramework) {\n case 'react':\n config.compilerOptions = {\n jsx: 'react-jsx',\n allowJs: false,\n esModuleInterop: false,\n allowSyntheticDefaultImports: true,\n strict: true,\n };\n break;\n case 'none':\n config.compilerOptions = {\n module: 'commonjs',\n forceConsistentCasingInFileNames: true,\n strict: true,\n noImplicitOverride: true,\n noPropertyAccessFromIndexSignature: true,\n noImplicitReturns: true,\n noFallthroughCasesInSwitch: true,\n };\n break;\n default:\n break;\n }\n\n writeJson(tree, `${projectConfig.root}/tsconfig.json`, config);\n}\n\nexport function deleteWebpackConfig(\n tree: Tree,\n projectRoot: string,\n webpackConfigFilePath?: string\n) {\n const webpackConfigPath =\n webpackConfigFilePath && tree.exists(webpackConfigFilePath)\n ? webpackConfigFilePath\n : tree.exists(`${projectRoot}/webpack.config.js`)\n ? `${projectRoot}/webpack.config.js`\n : tree.exists(`${projectRoot}/webpack.config.ts`)\n ? `${projectRoot}/webpack.config.ts`\n : null;\n if (webpackConfigPath) {\n tree.delete(webpackConfigPath);\n }\n}\n\nexport function moveAndEditIndexHtml(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let indexHtmlPath = `${projectConfig.root}/src/index.html`;\n let mainPath = `${projectConfig.root}/src/main.ts${\n options.uiFramework === 'react' ? 'x' : ''\n }`;\n\n if (projectConfig.root !== '.') {\n mainPath = mainPath.replace(projectConfig.root, '');\n }\n\n if (\n !tree.exists(indexHtmlPath) &&\n tree.exists(`${projectConfig.root}/index.html`)\n ) {\n indexHtmlPath = `${projectConfig.root}/index.html`;\n }\n\n if (tree.exists(indexHtmlPath)) {\n const indexHtmlContent = tree.read(indexHtmlPath, 'utf8');\n if (\n !indexHtmlContent.includes(\n `<script type='module' src='${mainPath}'></script>`\n )\n ) {\n tree.write(\n `${projectConfig.root}/index.html`,\n indexHtmlContent.replace(\n '</body>',\n `<script type='module' src='${mainPath}'></script>\n </body>`\n )\n );\n\n if (tree.exists(`${projectConfig.root}/src/index.html`)) {\n tree.delete(`${projectConfig.root}/src/index.html`);\n }\n }\n } else {\n tree.write(\n `${projectConfig.root}/index.html`,\n `<!DOCTYPE html>\n <html lang='en'>\n <head>\n <meta charset='UTF-8' />\n <link rel='icon' href='/favicon.ico' />\n <meta name='viewport' content='width=device-width, initial-scale=1.0' />\n <title>Vite</title>\n </head>\n <body>\n <div id='root'></div>\n <script type='module' src='${mainPath}'></script>\n </body>\n </html>`\n );\n }\n}\n\nexport interface ViteConfigFileOptions {\n project: string;\n includeLib?: boolean;\n includeVitest?: boolean;\n inSourceTests?: boolean;\n testEnvironment?: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string;\n rollupOptionsExternal?: string[];\n imports?: string[];\n plugins?: string[];\n coverageProvider?: 'v8' | 'istanbul' | 'custom';\n}\n\nexport function createOrEditViteConfig(\n tree: Tree,\n options: ViteConfigFileOptions,\n onlyVitest: boolean,\n projectAlreadyHasViteTargets?: TargetFlags,\n vitestFileName?: boolean\n) {\n const { root: projectRoot } = readProjectConfiguration(tree, options.project);\n\n const viteConfigPath = vitestFileName\n ? `${projectRoot}/vitest.config.ts`\n : `${projectRoot}/vite.config.ts`;\n\n const buildOutDir =\n projectRoot === '.'\n ? `./dist/${options.project}`\n : `${offsetFromRoot(projectRoot)}dist/${projectRoot}`;\n\n const buildOption = onlyVitest\n ? ''\n : options.includeLib\n ? `\n // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n outDir: '${buildOutDir}',\n emptyOutDir: true,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: '${options.project}',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es', 'cjs']\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: [${options.rollupOptionsExternal ?? ''}]\n },\n },`\n : `\n build: {\n outDir: '${buildOutDir}',\n emptyOutDir: true,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n },\n `;\n\n const imports: string[] = options.imports ? options.imports : [];\n\n if (!onlyVitest && options.includeLib) {\n imports.push(\n `import dts from 'vite-plugin-dts'`,\n `import * as path from 'path'`\n );\n }\n\n let viteConfigContent = '';\n\n const plugins = options.plugins\n ? [...options.plugins, `nxViteTsPaths()`]\n : [`nxViteTsPaths()`];\n\n if (!onlyVitest && options.includeLib) {\n plugins.push(\n `dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })`\n );\n }\n\n const reportsDirectory =\n projectRoot === '.'\n ? `./coverage/${options.project}`\n : `${offsetFromRoot(projectRoot)}coverage/${projectRoot}`;\n\n const testOption = options.includeVitest\n ? `test: {\n watch: false,\n globals: true,\n environment: '${options.testEnvironment ?? 'jsdom'}',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n ${\n options.inSourceTests\n ? `includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],`\n : ''\n }\n reporters: ['default'],\n coverage: {\n reportsDirectory: '${reportsDirectory}',\n provider: ${\n options.coverageProvider ? `'${options.coverageProvider}'` : `'v8'`\n },\n }\n },`\n : '';\n\n const defineOption = options.inSourceTests\n ? `define: {\n 'import.meta.vitest': undefined\n },`\n : '';\n\n const devServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n server:{\n port: 4200,\n host: 'localhost',\n },`;\n\n const previewServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n preview:{\n port: 4300,\n host: 'localhost',\n },`;\n\n const workerOption = `\n // Uncomment this if you are using workers. \n // worker: {\n // plugins: [ nxViteTsPaths() ],\n // },`;\n\n const cacheDir = `cacheDir: '${normalizedJoinPaths(\n offsetFromRoot(projectRoot),\n 'node_modules',\n '.vite',\n projectRoot === '.' ? options.project : projectRoot\n )}',`;\n\n if (tree.exists(viteConfigPath)) {\n handleViteConfigFileExists(\n tree,\n viteConfigPath,\n options,\n buildOption,\n buildOutDir,\n imports,\n plugins,\n testOption,\n reportsDirectory,\n cacheDir,\n projectRoot,\n offsetFromRoot(projectRoot),\n projectAlreadyHasViteTargets\n );\n return;\n }\n\n viteConfigContent = `\n /// <reference types='vitest' />\n import { defineConfig } from 'vite';\n ${imports.join(';\\n')}${imports.length ? ';' : ''}\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n \n export default defineConfig({\n root: __dirname,\n ${cacheDir}\n ${devServerOption}\n ${previewServerOption}\n \n plugins: [${plugins.join(',\\n')}],\n ${workerOption}\n ${buildOption}\n ${defineOption}\n ${testOption}\n });`;\n\n tree.write(viteConfigPath, viteConfigContent);\n}\n\nexport function normalizeViteConfigFilePathWithTree(\n tree: Tree,\n projectRoot: string,\n configFile?: string\n): string {\n return configFile && tree.exists(configFile)\n ? configFile\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.ts`))\n ? joinPathFragments(`${projectRoot}/vite.config.ts`)\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.js`))\n ? joinPathFragments(`${projectRoot}/vite.config.js`)\n : undefined;\n}\n\nexport function getViteConfigPathForProject(\n tree: Tree,\n projectName: string,\n target?: string\n) {\n let viteConfigPath: string | undefined;\n const { targets, root } = readProjectConfiguration(tree, projectName);\n if (target) {\n viteConfigPath = targets?.[target]?.options?.configFile;\n } else {\n const config = Object.values(targets).find(\n (config) =>\n config.executor === '@nrwl/nx:build' ||\n config.executor === '@nrwl/vite:build'\n );\n viteConfigPath = config?.options?.configFile;\n }\n\n return normalizeViteConfigFilePathWithTree(tree, root, viteConfigPath);\n}\n\nexport async function handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported: TargetFlags,\n userProvidedTargetName: UserProvidedTargetName,\n validFoundTargetName: ValidFoundTargetName\n) {\n if (userProvidedTargetIsUnsupported.build && validFoundTargetName.build) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.build,\n validFoundTargetName.build,\n 'build',\n 'build'\n );\n }\n\n if (userProvidedTargetIsUnsupported.serve && validFoundTargetName.serve) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.serve,\n validFoundTargetName.serve,\n 'serve',\n 'dev-server'\n );\n }\n\n if (userProvidedTargetIsUnsupported.test && validFoundTargetName.test) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.test,\n validFoundTargetName.test,\n 'test',\n 'test'\n );\n }\n}\n\nasync function handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName: string,\n validFoundTargetName: string,\n target: Target,\n executor: 'build' | 'dev-server' | 'test'\n) {\n logger.warn(\n `The custom ${target} target you provided (${userProvidedTargetName}) cannot be converted to use the @nx/vite:${executor} executor.\n However, we found the following ${target} target in your project that can be converted: ${validFoundTargetName}\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should we convert the ${validFoundTargetName} target to use the @nx/vite:${executor} executor?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(\n `The ${target} target ${userProvidedTargetName} cannot be converted to use the @nx/vite:${executor} executor.\n Please try again, either by providing a different ${target} target or by not providing a target at all (Nx will\n convert the first one it finds, most probably this one: ${validFoundTargetName})\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n }\n}\n\nexport async function handleUnknownConfiguration(projectName: string) {\n if (process.env.NX_INTERACTIVE === 'false') {\n return;\n }\n\n logger.warn(\n `\n We could not find any configuration in project ${projectName} that \n indicates whether we can definitely convert to Vite.\n \n If you still want to convert your project to use Vite,\n please make sure to commit your changes before running this generator.\n `\n );\n\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should Nx convert your project to use Vite?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(`\n Nx could not verify that your project can be converted to use Vite.\n Please try again with a different project.\n `);\n }\n}\n\nfunction handleViteConfigFileExists(\n tree: Tree,\n viteConfigPath: string,\n options: ViteConfigFileOptions,\n buildOption: string,\n buildOutDir: string,\n imports: string[],\n plugins: string[],\n testOption: string,\n reportsDirectory: string,\n cacheDir: string,\n projectRoot: string,\n offsetFromRoot: string,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n if (\n projectAlreadyHasViteTargets?.build &&\n projectAlreadyHasViteTargets?.test\n ) {\n return;\n }\n\n if (process.env.NX_VERBOSE_LOGGING === 'true') {\n logger.info(\n `vite.config.ts already exists for project ${options.project}.`\n );\n }\n\n const buildOptionObject = options.includeLib\n ? {\n lib: {\n entry: 'src/index.ts',\n name: options.project,\n fileName: 'index',\n formats: ['es', 'cjs'],\n },\n rollupOptions: {\n external: options.rollupOptionsExternal ?? [],\n },\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n }\n : {\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n const testOptionObject = {\n globals: true,\n environment: options.testEnvironment ?? 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n reporters: ['default'],\n coverage: {\n reportsDirectory: reportsDirectory,\n provider: `${options.coverageProvider ?? 'v8'}`,\n },\n };\n\n const changed = ensureViteConfigIsCorrect(\n tree,\n viteConfigPath,\n buildOption,\n buildOptionObject,\n imports,\n plugins,\n testOption,\n testOptionObject,\n cacheDir,\n projectAlreadyHasViteTargets ?? {}\n );\n\n if (!changed) {\n logger.warn(\n `Make sure the following setting exists in your Vite configuration file (${viteConfigPath}):\n \n ${buildOption}\n \n `\n );\n }\n}\n\nfunction normalizedJoinPaths(...paths: string[]): string {\n const path = joinPathFragments(...paths);\n\n return path.startsWith('.') ? path : `./${path}`;\n}\n"],"names":["addBuildTarget","addOrChangeTestTarget","addPreviewTarget","addServeTarget","createOrEditViteConfig","deleteWebpackConfig","editTsConfig","findExistingJsBuildTargetInProject","getViteConfigPathForProject","handleUnknownConfiguration","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","normalizeViteConfigFilePathWithTree","targets","output","supportedExecutors","build","unsupportedExecutors","target","executorName","executor","includes","supported","unsupported","tree","options","project","readProjectConfiguration","reportsDirectory","joinPathFragments","offsetFromRoot","root","testOptions","jestConfig","outputs","updateProjectConfiguration","addBuildTargetDefaults","buildOptions","outputPath","defaultConfiguration","configurations","development","mode","production","buildTarget","hmr","serveTarget","previewOptions","proxyConfig","https","open","preview","dependsOn","projectConfig","config","readJson","uiFramework","compilerOptions","jsx","allowJs","esModuleInterop","allowSyntheticDefaultImports","strict","module","forceConsistentCasingInFileNames","noImplicitOverride","noPropertyAccessFromIndexSignature","noImplicitReturns","noFallthroughCasesInSwitch","writeJson","projectRoot","webpackConfigFilePath","webpackConfigPath","exists","delete","indexHtmlPath","mainPath","replace","indexHtmlContent","read","write","onlyVitest","projectAlreadyHasViteTargets","vitestFileName","viteConfigPath","buildOutDir","buildOption","includeLib","rollupOptionsExternal","imports","push","viteConfigContent","plugins","testOption","includeVitest","testEnvironment","inSourceTests","coverageProvider","defineOption","devServerOption","previewServerOption","workerOption","cacheDir","normalizedJoinPaths","handleViteConfigFileExists","join","length","configFile","undefined","projectName","Object","values","find","userProvidedTargetIsUnsupported","userProvidedTargetName","validFoundTargetName","handleUnsupportedUserProvidedTargetsErrors","serve","test","logger","warn","Confirm","require","prompt","name","message","initial","shouldConvert","run","Error","process","env","NX_INTERACTIVE","NX_VERBOSE_LOGGING","info","buildOptionObject","lib","entry","fileName","formats","rollupOptions","external","outDir","reportCompressedSize","commonjsOptions","transformMixedEsModules","testOptionObject","globals","environment","include","reporters","coverage","provider","changed","ensureViteConfigIsCorrect","paths","path","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/utils/generator-utils.ts"],"sourcesContent":["import {\n joinPathFragments,\n logger,\n offsetFromRoot,\n readJson,\n readProjectConfiguration,\n TargetConfiguration,\n Tree,\n updateProjectConfiguration,\n writeJson,\n} from '@nx/devkit';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport { VitestExecutorOptions } from '../executors/test/schema';\nimport { ViteConfigurationGeneratorSchema } from '../generators/configuration/schema';\nimport { ensureViteConfigIsCorrect } from './vite-config-edit-utils';\nimport { addBuildTargetDefaults } from '@nx/devkit/src/generators/target-defaults-utils';\n\nexport type Target = 'build' | 'serve' | 'test' | 'preview';\nexport type TargetFlags = Partial<Record<Target, boolean>>;\nexport type UserProvidedTargetName = Partial<Record<Target, string>>;\nexport type ValidFoundTargetName = Partial<Record<Target, string>>;\n\nexport function findExistingJsBuildTargetInProject(targets: {\n [targetName: string]: TargetConfiguration;\n}): {\n supported?: string;\n unsupported?: string;\n} {\n const output: {\n supported?: string;\n unsupported?: string;\n } = {};\n\n const supportedExecutors = {\n build: ['@nx/js:babel', '@nx/js:swc', '@nx/rollup:rollup'],\n };\n const unsupportedExecutors = [\n '@nx/angular:ng-packagr-lite',\n '@nx/angular:package',\n '@nx/angular:webpack-browser',\n '@nx/esbuild:esbuild',\n '@nx/react-native:run-ios',\n '@nx/react-native:start',\n '@nx/react-native:run-android',\n '@nx/react-native:bundle',\n '@nx/react-native:build-android',\n '@nx/react-native:bundle',\n '@nx/next:build',\n '@nx/js:tsc',\n '@nrwl/angular:ng-packagr-lite',\n '@nrwl/angular:package',\n '@nrwl/angular:webpack-browser',\n '@nrwl/esbuild:esbuild',\n '@nrwl/react-native:run-ios',\n '@nrwl/react-native:start',\n '@nrwl/react-native:run-android',\n '@nrwl/react-native:bundle',\n '@nrwl/react-native:build-android',\n '@nrwl/react-native:bundle',\n '@nrwl/next:build',\n '@nrwl/js:tsc',\n '@angular-devkit/build-angular:browser',\n '@angular-devkit/build-angular:browser-esbuild',\n '@angular-devkit/build-angular:application',\n ];\n\n // We try to find the target that is using the supported executors\n // for build since this is the one we will be converting\n for (const target in targets) {\n const executorName = targets[target].executor;\n if (supportedExecutors.build.includes(executorName)) {\n output.supported = target;\n } else if (unsupportedExecutors.includes(executorName)) {\n output.unsupported = target;\n }\n }\n return output;\n}\n\nexport function addOrChangeTestTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const reportsDirectory = joinPathFragments(\n offsetFromRoot(project.root),\n 'coverage',\n project.root === '.' ? options.project : project.root\n );\n const testOptions: VitestExecutorOptions = {\n reportsDirectory,\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n project.targets[target].executor = '@nx/vite:test';\n delete project.targets[target].options?.jestConfig;\n } else {\n project.targets[target] = {\n executor: '@nx/vite:test',\n outputs: ['{options.reportsDirectory}'],\n options: testOptions,\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addBuildTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n addBuildTargetDefaults(tree, '@nx/vite:build');\n const project = readProjectConfiguration(tree, options.project);\n const buildOptions: ViteBuildExecutorOptions = {\n outputPath: joinPathFragments(\n 'dist',\n project.root != '.' ? project.root : options.project\n ),\n };\n project.targets ??= {};\n project.targets[target] = {\n executor: '@nx/vite:build',\n outputs: ['{options.outputPath}'],\n defaultConfiguration: 'production',\n options: buildOptions,\n configurations: {\n development: {\n mode: 'development',\n },\n production: {\n mode: 'production',\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addServeTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n project.targets ??= {};\n\n project.targets[target] = {\n executor: '@nx/vite:dev-server',\n defaultConfiguration: 'development',\n options: {\n buildTarget: `${options.project}:build`,\n },\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n hmr: true,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n hmr: false,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\n/**\n * Adds a target for the preview server.\n *\n * @param tree\n * @param options\n * @param serveTarget An existing serve target.\n */\nexport function addPreviewTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n serveTarget: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const previewOptions: VitePreviewServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n };\n\n project.targets ??= {};\n\n // Update the options from the passed serve target.\n if (project.targets[serveTarget]) {\n const target = project.targets[serveTarget];\n if (target.executor === '@nxext/vite:dev') {\n previewOptions.proxyConfig = target.options.proxyConfig;\n }\n previewOptions['https'] = target.options?.https;\n previewOptions['open'] = target.options?.open;\n }\n\n // Adds a preview target.\n project.targets.preview = {\n dependsOn: ['build'],\n executor: '@nx/vite:preview-server',\n defaultConfiguration: 'development',\n options: previewOptions,\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function editTsConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n const config = readJson(tree, `${projectConfig.root}/tsconfig.json`);\n\n switch (options.uiFramework) {\n case 'react':\n config.compilerOptions = {\n jsx: 'react-jsx',\n allowJs: false,\n esModuleInterop: false,\n allowSyntheticDefaultImports: true,\n strict: true,\n };\n break;\n case 'none':\n config.compilerOptions = {\n module: 'commonjs',\n forceConsistentCasingInFileNames: true,\n strict: true,\n noImplicitOverride: true,\n noPropertyAccessFromIndexSignature: true,\n noImplicitReturns: true,\n noFallthroughCasesInSwitch: true,\n };\n break;\n default:\n break;\n }\n\n writeJson(tree, `${projectConfig.root}/tsconfig.json`, config);\n}\n\nexport function deleteWebpackConfig(\n tree: Tree,\n projectRoot: string,\n webpackConfigFilePath?: string\n) {\n const webpackConfigPath =\n webpackConfigFilePath && tree.exists(webpackConfigFilePath)\n ? webpackConfigFilePath\n : tree.exists(`${projectRoot}/webpack.config.js`)\n ? `${projectRoot}/webpack.config.js`\n : tree.exists(`${projectRoot}/webpack.config.ts`)\n ? `${projectRoot}/webpack.config.ts`\n : null;\n if (webpackConfigPath) {\n tree.delete(webpackConfigPath);\n }\n}\n\nexport function moveAndEditIndexHtml(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let indexHtmlPath = `${projectConfig.root}/src/index.html`;\n let mainPath = `${projectConfig.root}/src/main.ts${\n options.uiFramework === 'react' ? 'x' : ''\n }`;\n\n if (projectConfig.root !== '.') {\n mainPath = mainPath.replace(projectConfig.root, '');\n }\n\n if (\n !tree.exists(indexHtmlPath) &&\n tree.exists(`${projectConfig.root}/index.html`)\n ) {\n indexHtmlPath = `${projectConfig.root}/index.html`;\n }\n\n if (tree.exists(indexHtmlPath)) {\n const indexHtmlContent = tree.read(indexHtmlPath, 'utf8');\n if (\n !indexHtmlContent.includes(\n `<script type='module' src='${mainPath}'></script>`\n )\n ) {\n tree.write(\n `${projectConfig.root}/index.html`,\n indexHtmlContent.replace(\n '</body>',\n `<script type='module' src='${mainPath}'></script>\n </body>`\n )\n );\n\n if (tree.exists(`${projectConfig.root}/src/index.html`)) {\n tree.delete(`${projectConfig.root}/src/index.html`);\n }\n }\n } else {\n tree.write(\n `${projectConfig.root}/index.html`,\n `<!DOCTYPE html>\n <html lang='en'>\n <head>\n <meta charset='UTF-8' />\n <link rel='icon' href='/favicon.ico' />\n <meta name='viewport' content='width=device-width, initial-scale=1.0' />\n <title>Vite</title>\n </head>\n <body>\n <div id='root'></div>\n <script type='module' src='${mainPath}'></script>\n </body>\n </html>`\n );\n }\n}\n\nexport interface ViteConfigFileOptions {\n project: string;\n includeLib?: boolean;\n includeVitest?: boolean;\n inSourceTests?: boolean;\n testEnvironment?: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string;\n rollupOptionsExternal?: string[];\n imports?: string[];\n plugins?: string[];\n coverageProvider?: 'v8' | 'istanbul' | 'custom';\n}\n\nexport function createOrEditViteConfig(\n tree: Tree,\n options: ViteConfigFileOptions,\n onlyVitest: boolean,\n projectAlreadyHasViteTargets?: TargetFlags,\n vitestFileName?: boolean\n) {\n const { root: projectRoot } = readProjectConfiguration(tree, options.project);\n\n const viteConfigPath = vitestFileName\n ? `${projectRoot}/vitest.config.ts`\n : `${projectRoot}/vite.config.ts`;\n\n const buildOutDir =\n projectRoot === '.'\n ? `./dist/${options.project}`\n : `${offsetFromRoot(projectRoot)}dist/${projectRoot}`;\n\n const buildOption = onlyVitest\n ? ''\n : options.includeLib\n ? `\n // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n outDir: '${buildOutDir}',\n emptyOutDir: true,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: '${options.project}',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es', 'cjs']\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: [${options.rollupOptionsExternal ?? ''}]\n },\n },`\n : `\n build: {\n outDir: '${buildOutDir}',\n emptyOutDir: true,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n },\n `;\n\n const imports: string[] = options.imports ? options.imports : [];\n\n if (!onlyVitest && options.includeLib) {\n imports.push(\n `import dts from 'vite-plugin-dts'`,\n `import * as path from 'path'`\n );\n }\n\n let viteConfigContent = '';\n\n const plugins = options.plugins\n ? [...options.plugins, `nxViteTsPaths()`, `nxCopyAssetsPlugin(['*.md'])`]\n : [`nxViteTsPaths()`, `nxCopyAssetsPlugin(['*.md'])`];\n\n if (!onlyVitest && options.includeLib) {\n plugins.push(\n `dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })`\n );\n }\n\n const reportsDirectory =\n projectRoot === '.'\n ? `./coverage/${options.project}`\n : `${offsetFromRoot(projectRoot)}coverage/${projectRoot}`;\n\n const testOption = options.includeVitest\n ? `test: {\n watch: false,\n globals: true,\n environment: '${options.testEnvironment ?? 'jsdom'}',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n ${\n options.inSourceTests\n ? `includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],`\n : ''\n }\n reporters: ['default'],\n coverage: {\n reportsDirectory: '${reportsDirectory}',\n provider: ${\n options.coverageProvider ? `'${options.coverageProvider}'` : `'v8'`\n },\n }\n },`\n : '';\n\n const defineOption = options.inSourceTests\n ? `define: {\n 'import.meta.vitest': undefined\n },`\n : '';\n\n const devServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n server:{\n port: 4200,\n host: 'localhost',\n },`;\n\n const previewServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : `\n preview:{\n port: 4300,\n host: 'localhost',\n },`;\n\n const workerOption = `\n // Uncomment this if you are using workers. \n // worker: {\n // plugins: [ nxViteTsPaths() ],\n // },`;\n\n const cacheDir = `cacheDir: '${normalizedJoinPaths(\n offsetFromRoot(projectRoot),\n 'node_modules',\n '.vite',\n projectRoot === '.' ? options.project : projectRoot\n )}',`;\n\n if (tree.exists(viteConfigPath)) {\n handleViteConfigFileExists(\n tree,\n viteConfigPath,\n options,\n buildOption,\n buildOutDir,\n imports,\n plugins,\n testOption,\n reportsDirectory,\n cacheDir,\n projectRoot,\n offsetFromRoot(projectRoot),\n projectAlreadyHasViteTargets\n );\n return;\n }\n\n viteConfigContent = `\n /// <reference types='vitest' />\n import { defineConfig } from 'vite';\n ${imports.join(';\\n')}${imports.length ? ';' : ''}\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';\n \n export default defineConfig({\n root: __dirname,\n ${cacheDir}\n ${devServerOption}\n ${previewServerOption}\n \n plugins: [${plugins.join(',\\n')}],\n ${workerOption}\n ${buildOption}\n ${defineOption}\n ${testOption}\n });`;\n\n tree.write(viteConfigPath, viteConfigContent);\n}\n\nexport function normalizeViteConfigFilePathWithTree(\n tree: Tree,\n projectRoot: string,\n configFile?: string\n): string {\n return configFile && tree.exists(configFile)\n ? configFile\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.ts`))\n ? joinPathFragments(`${projectRoot}/vite.config.ts`)\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.js`))\n ? joinPathFragments(`${projectRoot}/vite.config.js`)\n : undefined;\n}\n\nexport function getViteConfigPathForProject(\n tree: Tree,\n projectName: string,\n target?: string\n) {\n let viteConfigPath: string | undefined;\n const { targets, root } = readProjectConfiguration(tree, projectName);\n if (target) {\n viteConfigPath = targets?.[target]?.options?.configFile;\n } else {\n const config = Object.values(targets).find(\n (config) =>\n config.executor === '@nrwl/nx:build' ||\n config.executor === '@nrwl/vite:build'\n );\n viteConfigPath = config?.options?.configFile;\n }\n\n return normalizeViteConfigFilePathWithTree(tree, root, viteConfigPath);\n}\n\nexport async function handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported: TargetFlags,\n userProvidedTargetName: UserProvidedTargetName,\n validFoundTargetName: ValidFoundTargetName\n) {\n if (userProvidedTargetIsUnsupported.build && validFoundTargetName.build) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.build,\n validFoundTargetName.build,\n 'build',\n 'build'\n );\n }\n\n if (userProvidedTargetIsUnsupported.serve && validFoundTargetName.serve) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.serve,\n validFoundTargetName.serve,\n 'serve',\n 'dev-server'\n );\n }\n\n if (userProvidedTargetIsUnsupported.test && validFoundTargetName.test) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.test,\n validFoundTargetName.test,\n 'test',\n 'test'\n );\n }\n}\n\nasync function handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName: string,\n validFoundTargetName: string,\n target: Target,\n executor: 'build' | 'dev-server' | 'test'\n) {\n logger.warn(\n `The custom ${target} target you provided (${userProvidedTargetName}) cannot be converted to use the @nx/vite:${executor} executor.\n However, we found the following ${target} target in your project that can be converted: ${validFoundTargetName}\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should we convert the ${validFoundTargetName} target to use the @nx/vite:${executor} executor?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(\n `The ${target} target ${userProvidedTargetName} cannot be converted to use the @nx/vite:${executor} executor.\n Please try again, either by providing a different ${target} target or by not providing a target at all (Nx will\n convert the first one it finds, most probably this one: ${validFoundTargetName})\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n }\n}\n\nexport async function handleUnknownConfiguration(projectName: string) {\n if (process.env.NX_INTERACTIVE === 'false') {\n return;\n }\n\n logger.warn(\n `\n We could not find any configuration in project ${projectName} that \n indicates whether we can definitely convert to Vite.\n \n If you still want to convert your project to use Vite,\n please make sure to commit your changes before running this generator.\n `\n );\n\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should Nx convert your project to use Vite?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(`\n Nx could not verify that your project can be converted to use Vite.\n Please try again with a different project.\n `);\n }\n}\n\nfunction handleViteConfigFileExists(\n tree: Tree,\n viteConfigPath: string,\n options: ViteConfigFileOptions,\n buildOption: string,\n buildOutDir: string,\n imports: string[],\n plugins: string[],\n testOption: string,\n reportsDirectory: string,\n cacheDir: string,\n projectRoot: string,\n offsetFromRoot: string,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n if (\n projectAlreadyHasViteTargets?.build &&\n projectAlreadyHasViteTargets?.test\n ) {\n return;\n }\n\n if (process.env.NX_VERBOSE_LOGGING === 'true') {\n logger.info(\n `vite.config.ts already exists for project ${options.project}.`\n );\n }\n\n const buildOptionObject = options.includeLib\n ? {\n lib: {\n entry: 'src/index.ts',\n name: options.project,\n fileName: 'index',\n formats: ['es', 'cjs'],\n },\n rollupOptions: {\n external: options.rollupOptionsExternal ?? [],\n },\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n }\n : {\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n const testOptionObject = {\n globals: true,\n environment: options.testEnvironment ?? 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n reporters: ['default'],\n coverage: {\n reportsDirectory: reportsDirectory,\n provider: `${options.coverageProvider ?? 'v8'}`,\n },\n };\n\n const changed = ensureViteConfigIsCorrect(\n tree,\n viteConfigPath,\n buildOption,\n buildOptionObject,\n imports,\n plugins,\n testOption,\n testOptionObject,\n cacheDir,\n projectAlreadyHasViteTargets ?? {}\n );\n\n if (!changed) {\n logger.warn(\n `Make sure the following setting exists in your Vite configuration file (${viteConfigPath}):\n \n ${buildOption}\n \n `\n );\n }\n}\n\nfunction normalizedJoinPaths(...paths: string[]): string {\n const path = joinPathFragments(...paths);\n\n return path.startsWith('.') ? path : `./${path}`;\n}\n"],"names":["addBuildTarget","addOrChangeTestTarget","addPreviewTarget","addServeTarget","createOrEditViteConfig","deleteWebpackConfig","editTsConfig","findExistingJsBuildTargetInProject","getViteConfigPathForProject","handleUnknownConfiguration","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","normalizeViteConfigFilePathWithTree","targets","output","supportedExecutors","build","unsupportedExecutors","target","executorName","executor","includes","supported","unsupported","tree","options","project","readProjectConfiguration","reportsDirectory","joinPathFragments","offsetFromRoot","root","testOptions","jestConfig","outputs","updateProjectConfiguration","addBuildTargetDefaults","buildOptions","outputPath","defaultConfiguration","configurations","development","mode","production","buildTarget","hmr","serveTarget","previewOptions","proxyConfig","https","open","preview","dependsOn","projectConfig","config","readJson","uiFramework","compilerOptions","jsx","allowJs","esModuleInterop","allowSyntheticDefaultImports","strict","module","forceConsistentCasingInFileNames","noImplicitOverride","noPropertyAccessFromIndexSignature","noImplicitReturns","noFallthroughCasesInSwitch","writeJson","projectRoot","webpackConfigFilePath","webpackConfigPath","exists","delete","indexHtmlPath","mainPath","replace","indexHtmlContent","read","write","onlyVitest","projectAlreadyHasViteTargets","vitestFileName","viteConfigPath","buildOutDir","buildOption","includeLib","rollupOptionsExternal","imports","push","viteConfigContent","plugins","testOption","includeVitest","testEnvironment","inSourceTests","coverageProvider","defineOption","devServerOption","previewServerOption","workerOption","cacheDir","normalizedJoinPaths","handleViteConfigFileExists","join","length","configFile","undefined","projectName","Object","values","find","userProvidedTargetIsUnsupported","userProvidedTargetName","validFoundTargetName","handleUnsupportedUserProvidedTargetsErrors","serve","test","logger","warn","Confirm","require","prompt","name","message","initial","shouldConvert","run","Error","process","env","NX_INTERACTIVE","NX_VERBOSE_LOGGING","info","buildOptionObject","lib","entry","fileName","formats","rollupOptions","external","outDir","reportCompressedSize","commonjsOptions","transformMixedEsModules","testOptionObject","globals","environment","include","reporters","coverage","provider","changed","ensureViteConfigIsCorrect","paths","path","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|