@nx/vite 22.6.4 → 22.6.5

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": "22.6.4",
3
+ "version": "22.6.5",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for building and testing applications using Vite",
6
6
  "repository": {
@@ -30,11 +30,11 @@
30
30
  "migrations": "./migrations.json"
31
31
  },
32
32
  "dependencies": {
33
- "@nx/devkit": "22.6.4",
33
+ "@nx/devkit": "22.6.5",
34
34
  "@phenomnomnominal/tsquery": "~6.1.4",
35
35
  "enquirer": "~2.3.6",
36
- "@nx/js": "22.6.4",
37
- "@nx/vitest": "22.6.4",
36
+ "@nx/js": "22.6.5",
37
+ "@nx/vitest": "22.6.5",
38
38
  "picomatch": "4.0.4",
39
39
  "tsconfig-paths": "^4.1.2",
40
40
  "semver": "^7.6.3",
@@ -42,7 +42,7 @@
42
42
  "ajv": "^8.0.0"
43
43
  },
44
44
  "devDependencies": {
45
- "nx": "22.6.4"
45
+ "nx": "22.6.5"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../packages/vite/src/generators/init/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EAGL,MAAM,YAAY,CAAC;AASpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMhD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,mBAAmB,mDAmC5B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,cAgB/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../packages/vite/src/generators/init/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,IAAI,EAGL,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAyBhD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,mBAAmB,mDAuD5B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,cAgB/C"}
@@ -3,33 +3,63 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkDependenciesInstalled = checkDependenciesInstalled;
4
4
  exports.moveToDevDependencies = moveToDevDependencies;
5
5
  const devkit_1 = require("@nx/devkit");
6
- const versions_1 = require("../../../utils/versions");
6
+ const versions_1 = require("@nx/js/src/utils/versions");
7
+ const semver_1 = require("semver");
8
+ const versions_2 = require("../../../utils/versions");
7
9
  const version_utils_1 = require("../../../utils/version-utils");
10
+ function hasIncompatibleInstalledEsbuild(host) {
11
+ const installedEsbuildVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(host, 'esbuild');
12
+ if (!installedEsbuildVersion) {
13
+ return false;
14
+ }
15
+ try {
16
+ return !(0, semver_1.intersects)(installedEsbuildVersion, versions_1.esbuildVersion, {
17
+ includePrerelease: true,
18
+ });
19
+ }
20
+ catch {
21
+ return true;
22
+ }
23
+ }
8
24
  async function checkDependenciesInstalled(host, schema) {
9
25
  const { vitest } = await (0, version_utils_1.getVitestDependenciesVersionsToInstall)(host);
10
26
  // Determine which vite version to install:
11
27
  // 1. Explicit flags take priority (useViteV5/V6/V7)
12
28
  // 2. If vite is already installed, keep the matching major version
13
- // 3. Otherwise, use the latest default (^8.0.0)
29
+ // 3. If esbuild is already installed but incompatible with Vite 8, use Vite 7
30
+ // 4. Otherwise, use the latest default (^8.0.0)
14
31
  const installedMajor = (0, version_utils_1.getInstalledViteMajorVersion)(host);
32
+ const installedEsbuildVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(host, 'esbuild');
33
+ const useViteV7ForEsbuildCompatibility = installedMajor == null && hasIncompatibleInstalledEsbuild(host);
34
+ if (useViteV7ForEsbuildCompatibility) {
35
+ devkit_1.output.warn({
36
+ title: 'Installed esbuild is incompatible with Vite 8. Using Vite 7.',
37
+ bodyLines: [
38
+ `Found esbuild version "${installedEsbuildVersion}" in the workspace root package.json.`,
39
+ `Update esbuild to a range compatible with ${versions_1.esbuildVersion} if you want newly generated Vite projects to use Vite 8 by default.`,
40
+ ],
41
+ });
42
+ }
15
43
  const viteVersionToInstall = schema.useViteV5
16
- ? versions_1.viteV5Version
44
+ ? versions_2.viteV5Version
17
45
  : schema.useViteV6
18
- ? versions_1.viteV6Version
19
- : schema.useViteV7 || installedMajor === 7
20
- ? versions_1.viteV7Version
46
+ ? versions_2.viteV6Version
47
+ : schema.useViteV7 ||
48
+ installedMajor === 7 ||
49
+ useViteV7ForEsbuildCompatibility
50
+ ? versions_2.viteV7Version
21
51
  : installedMajor === 6
22
- ? versions_1.viteV6Version
52
+ ? versions_2.viteV6Version
23
53
  : installedMajor === 5
24
- ? versions_1.viteV5Version
25
- : versions_1.viteVersion;
54
+ ? versions_2.viteV5Version
55
+ : versions_2.viteVersion;
26
56
  return (0, devkit_1.addDependenciesToPackageJson)(host, {}, {
27
- '@nx/vite': versions_1.nxVersion,
28
- '@nx/web': versions_1.nxVersion,
57
+ '@nx/vite': versions_2.nxVersion,
58
+ '@nx/web': versions_2.nxVersion,
29
59
  vite: viteVersionToInstall,
30
60
  vitest: vitest,
31
61
  '@vitest/ui': vitest,
32
- jiti: versions_1.jitiVersion,
62
+ jiti: versions_2.jitiVersion,
33
63
  }, undefined, schema.keepExistingVersions);
34
64
  }
35
65
  function moveToDevDependencies(tree) {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGlB,aAAa,EAQd,MAAM,YAAY,CAAC;AAiBpB,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiBD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAEhC,CAAC;AAIF,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAuGxD,CAAC;AAEF,eAAO,MAAM,aAAa,kCAAc,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGlB,aAAa,EASd,MAAM,YAAY,CAAC;AAepB,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiBD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAEhC,CAAC;AAIF,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAwGxD,CAAC;AAEF,eAAO,MAAM,aAAa,kCAAc,CAAC"}
@@ -14,7 +14,6 @@ const cache_directory_1 = require("nx/src/utils/cache-directory");
14
14
  const plugins_1 = require("nx/src/utils/plugins");
15
15
  const executor_utils_1 = require("../utils/executor-utils");
16
16
  const picomatch = require("picomatch");
17
- const pmc = (0, devkit_1.getPackageManagerCommand)();
18
17
  function readTargetsCache(cachePath) {
19
18
  return process.env.NX_CACHE_PROJECT_GRAPH !== 'false' && (0, node_fs_1.existsSync)(cachePath)
20
19
  ? (0, devkit_1.readJsonFile)(cachePath)
@@ -50,7 +49,9 @@ exports.createNodes = [
50
49
  roots: [],
51
50
  configFiles: [],
52
51
  });
53
- const lockfile = (0, js_1.getLockFileName)((0, devkit_1.detectPackageManager)(context.workspaceRoot));
52
+ const detectedPackageManager = (0, devkit_1.detectPackageManager)(context.workspaceRoot);
53
+ const pmc = (0, devkit_1.getPackageManagerCommand)(detectedPackageManager);
54
+ const lockfile = (0, js_1.getLockFileName)(detectedPackageManager);
54
55
  const hashes = await (0, calculate_hash_for_create_nodes_1.calculateHashesForCreateNodes)(projectRoots, { ...normalizedOptions, isUsingTsSolutionSetup }, context, projectRoots.map((r) => [lockfile]));
55
56
  try {
56
57
  return await (0, devkit_1.createNodesFromFiles)(async (configFile, _, context, idx) => {
@@ -70,7 +71,7 @@ exports.createNodes = [
70
71
  // for different config files.
71
72
  const hash = hashes[idx] + configFile;
72
73
  const { projectType, metadata, targets } = (targetsCache[hash] ??=
73
- await buildViteTargets(configFile, projectRoot, normalizedOptions, tsConfigFiles, hasReactRouterConfig, isUsingTsSolutionSetup, context));
74
+ await buildViteTargets(configFile, projectRoot, normalizedOptions, tsConfigFiles, hasReactRouterConfig, isUsingTsSolutionSetup, context, pmc));
74
75
  const project = {
75
76
  root: projectRoot,
76
77
  targets,
@@ -94,7 +95,7 @@ exports.createNodes = [
94
95
  },
95
96
  ];
96
97
  exports.createNodesV2 = exports.createNodes;
97
- async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFiles, hasReactRouterConfig, isUsingTsSolutionSetup, context) {
98
+ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFiles, hasReactRouterConfig, isUsingTsSolutionSetup, context, pmc) {
98
99
  const absoluteConfigFilePath = (0, devkit_1.joinPathFragments)(context.workspaceRoot, configFilePath);
99
100
  // Workaround for the `build$3 is not a function` error that we sometimes see in agents.
100
101
  // This should be removed later once we address the issue properly
@@ -141,7 +142,7 @@ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFi
141
142
  const targets = {};
142
143
  // if file is vitest.config or vite.config has definition for test, create targets for test and/or atomized tests
143
144
  if (configFilePath.includes('vitest.config') || hasTest) {
144
- targets[options.testTargetName] = await testTarget(namedInputs, testOutputs, projectRoot);
145
+ targets[options.testTargetName] = await testTarget(namedInputs, testOutputs, projectRoot, pmc);
145
146
  if (options.ciTargetName) {
146
147
  const groupName = options.ciGroupName ?? (0, plugins_1.deriveGroupNameFromTarget)(options.ciTargetName);
147
148
  const targetGroup = [];
@@ -224,10 +225,10 @@ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFi
224
225
  if (!configFilePath.includes('vitest.config') &&
225
226
  !hasRemixPlugin &&
226
227
  isBuildable) {
227
- targets[options.buildTargetName] = await buildTarget(options.buildTargetName, namedInputs, buildOutputs, projectRoot, isUsingTsSolutionSetup);
228
+ targets[options.buildTargetName] = await buildTarget(options.buildTargetName, namedInputs, buildOutputs, projectRoot, isUsingTsSolutionSetup, pmc);
228
229
  // If running in library mode, then there is nothing to serve.
229
230
  if (!viteBuildConfig.build?.lib || hasServeConfig) {
230
- const devTarget = serveTarget(projectRoot, isUsingTsSolutionSetup);
231
+ const devTarget = serveTarget(projectRoot, isUsingTsSolutionSetup, pmc);
231
232
  targets[options.serveTargetName] = {
232
233
  ...devTarget,
233
234
  metadata: {
@@ -236,7 +237,7 @@ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFi
236
237
  },
237
238
  };
238
239
  targets[options.devTargetName] = devTarget;
239
- targets[options.previewTargetName] = previewTarget(projectRoot, options.buildTargetName);
240
+ targets[options.previewTargetName] = previewTarget(projectRoot, options.buildTargetName, pmc);
240
241
  targets[options.serveStaticTargetName] = serveStaticTarget(options, isUsingTsSolutionSetup);
241
242
  }
242
243
  }
@@ -290,7 +291,7 @@ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFi
290
291
  projectType: viteBuildConfig.build?.lib ? 'library' : 'application',
291
292
  };
292
293
  }
293
- async function buildTarget(buildTargetName, namedInputs, outputs, projectRoot, isUsingTsSolutionSetup) {
294
+ async function buildTarget(buildTargetName, namedInputs, outputs, projectRoot, isUsingTsSolutionSetup, pmc) {
294
295
  const buildTarget = {
295
296
  command: `vite build`,
296
297
  options: { cwd: (0, devkit_1.joinPathFragments)(projectRoot) },
@@ -324,7 +325,7 @@ async function buildTarget(buildTargetName, namedInputs, outputs, projectRoot, i
324
325
  }
325
326
  return buildTarget;
326
327
  }
327
- function serveTarget(projectRoot, isUsingTsSolutionSetup) {
328
+ function serveTarget(projectRoot, isUsingTsSolutionSetup, pmc) {
328
329
  const targetConfig = {
329
330
  continuous: true,
330
331
  command: `vite`,
@@ -349,7 +350,7 @@ function serveTarget(projectRoot, isUsingTsSolutionSetup) {
349
350
  }
350
351
  return targetConfig;
351
352
  }
352
- function previewTarget(projectRoot, buildTargetName) {
353
+ function previewTarget(projectRoot, buildTargetName, pmc) {
353
354
  const targetConfig = {
354
355
  continuous: true,
355
356
  command: `vite preview`,
@@ -372,7 +373,7 @@ function previewTarget(projectRoot, buildTargetName) {
372
373
  };
373
374
  return targetConfig;
374
375
  }
375
- async function testTarget(namedInputs, outputs, projectRoot) {
376
+ async function testTarget(namedInputs, outputs, projectRoot, pmc) {
376
377
  return {
377
378
  command: `vitest`,
378
379
  options: { cwd: (0, devkit_1.joinPathFragments)(projectRoot) },
@@ -453,10 +454,10 @@ function normalizeOutputPath(outputPath, projectRoot, workspaceRoot, path) {
453
454
  }
454
455
  else {
455
456
  if (outputPath.startsWith('..')) {
456
- return (0, node_path_1.join)('{workspaceRoot}', (0, node_path_1.join)(projectRoot, outputPath));
457
+ return (0, devkit_1.joinPathFragments)('{workspaceRoot}', projectRoot, outputPath);
457
458
  }
458
459
  else {
459
- return (0, node_path_1.join)('{projectRoot}', outputPath);
460
+ return (0, devkit_1.joinPathFragments)('{projectRoot}', outputPath);
460
461
  }
461
462
  }
462
463
  }
@@ -493,5 +494,5 @@ async function getTestPathsRelativeToProjectRoot(projectRoot, workspaceRoot) {
493
494
  const relevantTestSpecifications = await vitest.getRelevantTestSpecifications();
494
495
  return relevantTestSpecifications
495
496
  .filter((ts) => projectRoot === '.' ? true : ts.moduleId.startsWith(fullProjectRoot))
496
- .map((ts) => (0, node_path_1.relative)(projectRoot, ts.moduleId));
497
+ .map((ts) => (0, devkit_1.normalizePath)((0, node_path_1.relative)(projectRoot, ts.moduleId)));
497
498
  }