@nx/vite 16.8.0-beta.3 → 16.8.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "16.8.0-beta.
|
|
3
|
+
"version": "16.8.0-beta.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"migrations": "./migrations.json"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@nrwl/vite": "16.8.0-beta.
|
|
33
|
-
"@nx/devkit": "16.8.0-beta.
|
|
34
|
-
"@nx/js": "16.8.0-beta.
|
|
32
|
+
"@nrwl/vite": "16.8.0-beta.4",
|
|
33
|
+
"@nx/devkit": "16.8.0-beta.4",
|
|
34
|
+
"@nx/js": "16.8.0-beta.4",
|
|
35
35
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
36
36
|
"@swc/helpers": "~0.5.0",
|
|
37
37
|
"enquirer": "~2.3.6",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"./plugins/nx-tsconfig-paths.plugin": "./plugins/nx-tsconfig-paths.plugin.js"
|
|
58
58
|
},
|
|
59
59
|
"type": "commonjs",
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "c9aad2dc8c2b34531cf61549bff872e68c481e4e"
|
|
61
61
|
}
|
|
@@ -1,5 +1,24 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface nxViteTsPathsOptions {
|
|
2
|
+
/**
|
|
3
|
+
* Enable debug logging
|
|
4
|
+
* @default false
|
|
5
|
+
**/
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* export fields in package.json to use for resolving
|
|
9
|
+
* @default [['exports', '.', 'import'], 'module', 'main']
|
|
10
|
+
*
|
|
11
|
+
* fallback resolution will use ['main', 'module']
|
|
12
|
+
**/
|
|
13
|
+
mainFields?: (string | string[])[];
|
|
14
|
+
/**
|
|
15
|
+
* extensions to check when resolving files when package.json resolution fails
|
|
16
|
+
* @default ['.ts', '.tsx', '.js', '.jsx', '.json', '.mjs', '.cjs']
|
|
17
|
+
**/
|
|
18
|
+
extensions?: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function nxViteTsPaths(options?: nxViteTsPathsOptions): {
|
|
2
21
|
name: string;
|
|
3
22
|
configResolved(config: any): void;
|
|
4
|
-
resolveId(
|
|
23
|
+
resolveId(importPath: string): string;
|
|
5
24
|
};
|
|
@@ -9,9 +9,32 @@ const _devkit = require("@nx/devkit");
|
|
|
9
9
|
const _nodefs = require("node:fs");
|
|
10
10
|
const _nodepath = require("node:path");
|
|
11
11
|
const _tsconfigpaths = require("tsconfig-paths");
|
|
12
|
-
function nxViteTsPaths() {
|
|
12
|
+
function nxViteTsPaths(options = {}) {
|
|
13
|
+
var _options, _options1;
|
|
13
14
|
let matchTsPathEsm;
|
|
14
15
|
let matchTsPathFallback;
|
|
16
|
+
let tsConfigPathsEsm;
|
|
17
|
+
let tsConfigPathsFallback;
|
|
18
|
+
var _extensions;
|
|
19
|
+
(_extensions = (_options = options).extensions) != null ? _extensions : _options.extensions = [
|
|
20
|
+
'.ts',
|
|
21
|
+
'.tsx',
|
|
22
|
+
'.js',
|
|
23
|
+
'.jsx',
|
|
24
|
+
'.json',
|
|
25
|
+
'.mjs',
|
|
26
|
+
'.cjs'
|
|
27
|
+
];
|
|
28
|
+
var _mainFields;
|
|
29
|
+
(_mainFields = (_options1 = options).mainFields) != null ? _mainFields : _options1.mainFields = [
|
|
30
|
+
[
|
|
31
|
+
'exports',
|
|
32
|
+
'.',
|
|
33
|
+
'import'
|
|
34
|
+
],
|
|
35
|
+
'module',
|
|
36
|
+
'main'
|
|
37
|
+
];
|
|
15
38
|
return {
|
|
16
39
|
name: 'nx-vite-ts-paths',
|
|
17
40
|
configResolved (config) {
|
|
@@ -27,55 +50,78 @@ There should at least be a tsconfig.base.json or tsconfig.json in the root of th
|
|
|
27
50
|
if (parsed.resultType === 'failed') {
|
|
28
51
|
throw new Error(`Failed loading tsonfig at ${foundTsConfigPath}`);
|
|
29
52
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
'exports',
|
|
33
|
-
'.',
|
|
34
|
-
'import'
|
|
35
|
-
],
|
|
36
|
-
'module',
|
|
37
|
-
'main'
|
|
38
|
-
]);
|
|
53
|
+
tsConfigPathsEsm = parsed;
|
|
54
|
+
matchTsPathEsm = (0, _tsconfigpaths.createMatchPath)(parsed.absoluteBaseUrl, parsed.paths, options.mainFields);
|
|
39
55
|
const rootLevelTsConfig = getTsConfig((0, _nodepath.join)(_devkit.workspaceRoot, 'tsconfig.base.json'));
|
|
40
56
|
const rootLevelParsed = (0, _tsconfigpaths.loadConfig)(rootLevelTsConfig);
|
|
41
57
|
logIt('fallback parsed tsconfig: ', rootLevelParsed);
|
|
42
58
|
if (rootLevelParsed.resultType === 'success') {
|
|
59
|
+
tsConfigPathsFallback = rootLevelParsed;
|
|
43
60
|
matchTsPathFallback = (0, _tsconfigpaths.createMatchPath)(rootLevelParsed.absoluteBaseUrl, rootLevelParsed.paths, [
|
|
44
61
|
'main',
|
|
45
62
|
'module'
|
|
46
63
|
]);
|
|
47
64
|
}
|
|
48
65
|
},
|
|
49
|
-
resolveId (
|
|
66
|
+
resolveId (importPath) {
|
|
50
67
|
let resolvedFile;
|
|
51
68
|
try {
|
|
52
|
-
resolvedFile = matchTsPathEsm(
|
|
69
|
+
resolvedFile = matchTsPathEsm(importPath);
|
|
53
70
|
} catch (e) {
|
|
54
71
|
logIt('Using fallback path matching.');
|
|
55
|
-
resolvedFile = matchTsPathFallback == null ? void 0 : matchTsPathFallback(
|
|
72
|
+
resolvedFile = matchTsPathFallback == null ? void 0 : matchTsPathFallback(importPath);
|
|
56
73
|
}
|
|
57
74
|
if (!resolvedFile) {
|
|
58
|
-
|
|
75
|
+
if (tsConfigPathsEsm || tsConfigPathsFallback) {
|
|
76
|
+
logIt(`Unable to resolve ${importPath} with tsconfig paths. Using fallback file matching.`);
|
|
77
|
+
resolvedFile = loadFileFromPaths(tsConfigPathsEsm, importPath) || loadFileFromPaths(tsConfigPathsFallback, importPath);
|
|
78
|
+
} else {
|
|
79
|
+
logIt(`Unable to resolve ${importPath} with tsconfig paths`);
|
|
80
|
+
}
|
|
59
81
|
}
|
|
60
|
-
|
|
82
|
+
logIt(`Resolved ${importPath} to ${resolvedFile}`);
|
|
83
|
+
// Returning null defers to other resolveId functions and eventually the default resolution behavior
|
|
84
|
+
// https://rollupjs.org/plugin-development/#resolveid
|
|
85
|
+
return resolvedFile || null;
|
|
61
86
|
}
|
|
62
87
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
88
|
+
function getTsConfig(preferredTsConfigPath) {
|
|
89
|
+
return [
|
|
90
|
+
(0, _nodepath.resolve)(preferredTsConfigPath),
|
|
91
|
+
(0, _nodepath.resolve)((0, _nodepath.join)(_devkit.workspaceRoot, 'tsconfig.base.json')),
|
|
92
|
+
(0, _nodepath.resolve)((0, _nodepath.join)(_devkit.workspaceRoot, 'tsconfig.json'))
|
|
93
|
+
].find((tsPath)=>{
|
|
94
|
+
if ((0, _nodefs.existsSync)(tsPath)) {
|
|
95
|
+
logIt('Found tsconfig at', tsPath);
|
|
96
|
+
return tsPath;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
function logIt(...msg) {
|
|
101
|
+
if (process.env.NX_VERBOSE_LOGGING === 'true' || (options == null ? void 0 : options.debug)) {
|
|
102
|
+
console.debug('\n[Nx Vite TsPaths]', ...msg);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function loadFileFromPaths(tsconfig, importPath) {
|
|
106
|
+
logIt(`Trying to resolve file from config in ${tsconfig.configFileAbsolutePath}`);
|
|
107
|
+
let resolvedFile;
|
|
108
|
+
for(const alias in tsconfig.paths){
|
|
109
|
+
const paths = tsconfig.paths[alias];
|
|
110
|
+
const normalizedImport = alias.replace(/\/\*$/, '');
|
|
111
|
+
if (importPath.startsWith(normalizedImport)) {
|
|
112
|
+
const path = (tsconfig.absoluteBaseUrl, paths[0].replace(/\/\*$/, ''));
|
|
113
|
+
resolvedFile = findFile(importPath.replace(normalizedImport, path));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return resolvedFile;
|
|
117
|
+
}
|
|
118
|
+
function findFile(path) {
|
|
119
|
+
for (const ext of options.extensions){
|
|
120
|
+
const r = (0, _nodepath.resolve)(path + ext);
|
|
121
|
+
if ((0, _nodefs.existsSync)(r)) {
|
|
122
|
+
return r;
|
|
123
|
+
}
|
|
73
124
|
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
function logIt(...msg) {
|
|
77
|
-
if (process.env.NX_VERBOSE_LOGGING === 'true') {
|
|
78
|
-
console.debug('[Nx Vite TsPaths]', ...msg);
|
|
79
125
|
}
|
|
80
126
|
}
|
|
81
127
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../packages/vite/plugins/nx-tsconfig-paths.plugin.ts"],"sourcesContent":["import { stripIndents, workspaceRoot } from '@nx/devkit';\nimport { existsSync } from 'node:fs';\nimport { relative, join, resolve } from 'node:path';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../packages/vite/plugins/nx-tsconfig-paths.plugin.ts"],"sourcesContent":["import { stripIndents, workspaceRoot } from '@nx/devkit';\nimport { existsSync } from 'node:fs';\nimport { relative, join, resolve } from 'node:path';\nimport {\n loadConfig,\n createMatchPath,\n MatchPath,\n ConfigLoaderSuccessResult,\n} from 'tsconfig-paths';\n\nexport interface nxViteTsPathsOptions {\n /**\n * Enable debug logging\n * @default false\n **/\n debug?: boolean;\n /**\n * export fields in package.json to use for resolving\n * @default [['exports', '.', 'import'], 'module', 'main']\n *\n * fallback resolution will use ['main', 'module']\n **/\n mainFields?: (string | string[])[];\n /**\n * extensions to check when resolving files when package.json resolution fails\n * @default ['.ts', '.tsx', '.js', '.jsx', '.json', '.mjs', '.cjs']\n **/\n extensions?: string[];\n}\n\nexport function nxViteTsPaths(options: nxViteTsPathsOptions = {}) {\n let matchTsPathEsm: MatchPath;\n let matchTsPathFallback: MatchPath | undefined;\n let tsConfigPathsEsm: ConfigLoaderSuccessResult;\n let tsConfigPathsFallback: ConfigLoaderSuccessResult;\n\n options.extensions ??= [\n '.ts',\n '.tsx',\n '.js',\n '.jsx',\n '.json',\n '.mjs',\n '.cjs',\n ];\n options.mainFields ??= [['exports', '.', 'import'], 'module', 'main'];\n\n return {\n name: 'nx-vite-ts-paths',\n configResolved(config: any) {\n const projectRoot = config.root;\n const projectRootFromWorkspaceRoot = relative(workspaceRoot, projectRoot);\n\n const foundTsConfigPath = getTsConfig(\n join(\n workspaceRoot,\n 'tmp',\n projectRootFromWorkspaceRoot,\n 'tsconfig.generated.json'\n )\n );\n if (!foundTsConfigPath) {\n throw new Error(stripIndents`Unable to find a tsconfig in the workspace! \nThere should at least be a tsconfig.base.json or tsconfig.json in the root of the workspace ${workspaceRoot}`);\n }\n const parsed = loadConfig(foundTsConfigPath);\n\n logIt('first parsed tsconfig: ', parsed);\n if (parsed.resultType === 'failed') {\n throw new Error(`Failed loading tsonfig at ${foundTsConfigPath}`);\n }\n tsConfigPathsEsm = parsed;\n\n matchTsPathEsm = createMatchPath(\n parsed.absoluteBaseUrl,\n parsed.paths,\n options.mainFields\n );\n\n const rootLevelTsConfig = getTsConfig(\n join(workspaceRoot, 'tsconfig.base.json')\n );\n const rootLevelParsed = loadConfig(rootLevelTsConfig);\n logIt('fallback parsed tsconfig: ', rootLevelParsed);\n if (rootLevelParsed.resultType === 'success') {\n tsConfigPathsFallback = rootLevelParsed;\n matchTsPathFallback = createMatchPath(\n rootLevelParsed.absoluteBaseUrl,\n rootLevelParsed.paths,\n ['main', 'module']\n );\n }\n },\n resolveId(importPath: string) {\n let resolvedFile: string;\n try {\n resolvedFile = matchTsPathEsm(importPath);\n } catch (e) {\n logIt('Using fallback path matching.');\n resolvedFile = matchTsPathFallback?.(importPath);\n }\n\n if (!resolvedFile) {\n if (tsConfigPathsEsm || tsConfigPathsFallback) {\n logIt(\n `Unable to resolve ${importPath} with tsconfig paths. Using fallback file matching.`\n );\n resolvedFile =\n loadFileFromPaths(tsConfigPathsEsm, importPath) ||\n loadFileFromPaths(tsConfigPathsFallback, importPath);\n } else {\n logIt(`Unable to resolve ${importPath} with tsconfig paths`);\n }\n }\n\n logIt(`Resolved ${importPath} to ${resolvedFile}`);\n // Returning null defers to other resolveId functions and eventually the default resolution behavior\n // https://rollupjs.org/plugin-development/#resolveid\n return resolvedFile || null;\n },\n };\n\n function getTsConfig(preferredTsConfigPath: string): string {\n return [\n resolve(preferredTsConfigPath),\n resolve(join(workspaceRoot, 'tsconfig.base.json')),\n resolve(join(workspaceRoot, 'tsconfig.json')),\n ].find((tsPath) => {\n if (existsSync(tsPath)) {\n logIt('Found tsconfig at', tsPath);\n return tsPath;\n }\n });\n }\n\n function logIt(...msg: any[]) {\n if (process.env.NX_VERBOSE_LOGGING === 'true' || options?.debug) {\n console.debug('\\n[Nx Vite TsPaths]', ...msg);\n }\n }\n\n function loadFileFromPaths(\n tsconfig: ConfigLoaderSuccessResult,\n importPath: string\n ) {\n logIt(\n `Trying to resolve file from config in ${tsconfig.configFileAbsolutePath}`\n );\n let resolvedFile: string;\n for (const alias in tsconfig.paths) {\n const paths = tsconfig.paths[alias];\n\n const normalizedImport = alias.replace(/\\/\\*$/, '');\n\n if (importPath.startsWith(normalizedImport)) {\n const path = (tsconfig.absoluteBaseUrl, paths[0].replace(/\\/\\*$/, ''));\n resolvedFile = findFile(importPath.replace(normalizedImport, path));\n }\n }\n\n return resolvedFile;\n }\n\n function findFile(path: string): string {\n for (const ext of options.extensions) {\n const r = resolve(path + ext);\n if (existsSync(r)) {\n return r;\n }\n }\n }\n}\n"],"names":["nxViteTsPaths","options","matchTsPathEsm","matchTsPathFallback","tsConfigPathsEsm","tsConfigPathsFallback","extensions","mainFields","name","configResolved","config","projectRoot","root","projectRootFromWorkspaceRoot","relative","workspaceRoot","foundTsConfigPath","getTsConfig","join","Error","stripIndents","parsed","loadConfig","logIt","resultType","createMatchPath","absoluteBaseUrl","paths","rootLevelTsConfig","rootLevelParsed","resolveId","importPath","resolvedFile","e","loadFileFromPaths","preferredTsConfigPath","resolve","find","tsPath","existsSync","msg","process","env","NX_VERBOSE_LOGGING","debug","console","tsconfig","configFileAbsolutePath","alias","normalizedImport","replace","startsWith","path","findFile","ext","r"],"mappings":"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"}
|
|
@@ -53,8 +53,9 @@ async function* viteBuildExecutor(options, context) {
|
|
|
53
53
|
});
|
|
54
54
|
builtPackageJson.type = 'module';
|
|
55
55
|
(0, _devkit.writeJsonFile)(`${options.outputPath}/package.json`, builtPackageJson);
|
|
56
|
-
const
|
|
57
|
-
(0,
|
|
56
|
+
const packageManager = (0, _devkit.detectPackageManager)(context.root);
|
|
57
|
+
const lockFile = (0, _js.createLockFile)(builtPackageJson, context.projectGraph, packageManager);
|
|
58
|
+
(0, _fs.writeFileSync)(`${options.outputPath}/${(0, _js.getLockFileName)(packageManager)}`, lockFile, {
|
|
58
59
|
encoding: 'utf-8'
|
|
59
60
|
});
|
|
60
61
|
} else if (!(0, _fs.existsSync)(distPackageJson) && (0, _fs.existsSync)(libraryPackageJson) && rootPackageJson !== libraryPackageJson) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n ExecutorContext,\n logger,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport { build, InlineConfig, mergeConfig } from 'vite';\nimport {\n getProjectTsConfigPath,\n getViteBuildOptions,\n getViteSharedConfig,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n validateTypes,\n} from '../../utils/executor-utils';\n\nexport async function* viteBuildExecutor(\n options: ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n createBuildableTsConfig(projectRoot, options, context);\n\n const normalizedOptions = normalizeOptions(options);\n\n const buildConfig = mergeConfig(\n getViteSharedConfig(normalizedOptions, false, context),\n {\n build: getViteBuildOptions(normalizedOptions, context),\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n projectRoot: projectRoot,\n tsconfig: getProjectTsConfigPath(projectRoot),\n });\n }\n\n const watcherOrOutput = await runInstance(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n const distPackageJson = resolve(normalizedOptions.outputPath, 'package.json');\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/packages/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n }\n );\n\n builtPackageJson.type = 'module';\n\n writeJsonFile(`${options.outputPath}/package.json`, builtPackageJson);\n\n const lockFile = createLockFile(builtPackageJson);\n writeFileSync(`${options.outputPath}/${getLockFileName()}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n logger,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport { build, InlineConfig, mergeConfig } from 'vite';\nimport {\n getProjectTsConfigPath,\n getViteBuildOptions,\n getViteSharedConfig,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { resolve } from 'path';\nimport { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n validateTypes,\n} from '../../utils/executor-utils';\n\nexport async function* viteBuildExecutor(\n options: ViteBuildExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n createBuildableTsConfig(projectRoot, options, context);\n\n const normalizedOptions = normalizeOptions(options);\n\n const buildConfig = mergeConfig(\n getViteSharedConfig(normalizedOptions, false, context),\n {\n build: getViteBuildOptions(normalizedOptions, context),\n }\n );\n\n if (!options.skipTypeCheck) {\n await validateTypes({\n workspaceRoot: context.root,\n projectRoot: projectRoot,\n tsconfig: getProjectTsConfigPath(projectRoot),\n });\n }\n\n const watcherOrOutput = await runInstance(buildConfig);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n const distPackageJson = resolve(normalizedOptions.outputPath, 'package.json');\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/packages/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n }\n );\n\n builtPackageJson.type = 'module';\n\n writeJsonFile(`${options.outputPath}/package.json`, builtPackageJson);\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${options.outputPath}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: normalizedOptions.outputPath,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n if ('on' in watcherOrOutput) {\n const iterable = createAsyncIterable<{ success: boolean }>(({ next }) => {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event) {\n event.result.close();\n }\n });\n });\n yield* iterable;\n } else {\n const output = watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(normalizedOptions.outputPath, fileName);\n yield { success: true, outfile };\n }\n}\n\nfunction runInstance(options: InlineConfig) {\n return build({\n ...options,\n });\n}\n\nfunction normalizeOptions(options: ViteBuildExecutorOptions) {\n const normalizedOptions = { ...options };\n\n // coerce watch to null or {} to match with Vite's watch config\n if (options.watch === false) {\n normalizedOptions.watch = null;\n } else if (options.watch === true) {\n normalizedOptions.watch = {};\n }\n\n return normalizedOptions;\n}\n\nexport default viteBuildExecutor;\n"],"names":["viteBuildExecutor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","createBuildableTsConfig","normalizedOptions","normalizeOptions","buildConfig","mergeConfig","getViteSharedConfig","build","getViteBuildOptions","skipTypeCheck","validateTypes","workspaceRoot","tsconfig","getProjectTsConfigPath","watcherOrOutput","runInstance","libraryPackageJson","resolve","rootPackageJson","distPackageJson","outputPath","generatePackageJson","projectGraph","nodes","type","logger","warn","stripIndents","builtPackageJson","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","success","on","event","code","result","close","fileName","outfile","watch"],"mappings":"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"}
|