diff --git a/package.json b/package.json index 32e2d11ffc0fb0..0e6b9690b7466b 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,8 @@ "@nestjs/schematics": "^9.1.0", "@nestjs/swagger": "^6.0.0", "@nestjs/testing": "^9.0.0", - "@nuxt/kit": "^3.8.0", + "@nuxt/kit": "^3.8.1", + "@nuxt/schema":"^3.8.1", "@ngrx/effects": "~16.0.0", "@ngrx/router-store": "~16.0.0", "@ngrx/store": "~16.0.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index f8633bea24db12..78ff033454b134 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -30,7 +30,8 @@ "dependencies": { "nuxi": "npm:nuxi-nightly@3.9.2-1699007958.251cab5", "tslib": "^2.3.0", - "@nuxt/kit": "^3.8.0", + "@nuxt/kit": "^3.8.1", + "@nuxt/schema": "^3.8.1", "@nx/devkit": "file:../devkit", "@nx/js": "file:../js", "@nx/eslint": "file:../eslint", diff --git a/packages/nuxt/src/executors/build/build.impl.ts b/packages/nuxt/src/executors/build/build.impl.ts index 6a49125bb7d692..86ecae45cfe8c8 100644 --- a/packages/nuxt/src/executors/build/build.impl.ts +++ b/packages/nuxt/src/executors/build/build.impl.ts @@ -1,16 +1,10 @@ import { ExecutorContext, joinPathFragments } from '@nx/devkit'; import { NuxtBuildExecutorOptions } from './schema'; - -// Required because nuxi is ESM package. -export function loadNuxiDynamicImport() { - return Function('return import("nuxi")')() as Promise; -} - -export function loadNuxtKitDynamicImport() { - return Function('return import("@nuxt/kit")')() as Promise< - typeof import('@nuxt/kit') - >; -} +import { + getCommonNuxtConfigOverrides, + loadNuxiDynamicImport, + loadNuxtKitDynamicImport, +} from '../../utils/executor-utils'; export async function* nuxtBuildExecutor( options: NuxtBuildExecutorOptions, @@ -23,42 +17,17 @@ export async function* nuxtBuildExecutor( const config = await loadNuxtConfig({ cwd: joinPathFragments(context.root, projectRoot), }); - console.log('config', config); try { await runCommand('build', [projectRoot], { overrides: { ...options, - workspaceDir: context.root, - buildDir: joinPathFragments(context.root, options.outputPath, '.nuxt'), - typescript: { - typeCheck: true, - tsConfig: { - extends: joinPathFragments( - context.root, - projectRoot, - 'tsconfig.app.json' - ), - }, - }, - imports: { - autoImport: false, - }, - nitro: { - output: { - dir: joinPathFragments(context.root, options.outputPath, '.output'), - serverDir: joinPathFragments( - context.root, - options.outputPath, - '.output/server' - ), - publicDir: joinPathFragments( - context.root, - options.outputPath, - '.output/public' - ), - }, - }, + ...getCommonNuxtConfigOverrides( + config, + context.root, + projectRoot, + options.outputPath + ), }, }); return { success: true }; diff --git a/packages/nuxt/src/executors/serve/serve.impl.ts b/packages/nuxt/src/executors/serve/serve.impl.ts index 3ca8ab33921977..f33fb0fc42e666 100644 --- a/packages/nuxt/src/executors/serve/serve.impl.ts +++ b/packages/nuxt/src/executors/serve/serve.impl.ts @@ -1,11 +1,12 @@ import { ExecutorContext, joinPathFragments } from '@nx/devkit'; import { NuxtServeExecutorOptions } from './schema'; import { createAsyncIterable } from '@nx/devkit/src/utils/async-iterable'; - -// Required because nuxi is ESM package. -export function loadNuxiDynamicImport() { - return Function('return import("nuxi")')() as Promise; -} +import { + getCommonNuxtConfigOverrides, + loadNuxiDynamicImport, + loadNuxtKitDynamicImport, +} from '../../utils/executor-utils'; +import { NuxtOptions } from '@nuxt/schema'; export async function* nuxtServeExecutor( options: NuxtServeExecutorOptions, @@ -13,18 +14,29 @@ export async function* nuxtServeExecutor( ) { const projectRoot = context.projectsConfigurations.projects[context.projectName].root; + + const { loadNuxtConfig } = await loadNuxtKitDynamicImport(); + const config = await loadNuxtConfig({ + cwd: joinPathFragments(context.root, projectRoot), + }); + yield* createAsyncIterable<{ success: boolean; baseUrl: string }>( async ({ next, error }) => { try { const { runCommand } = await loadNuxiDynamicImport(); + await runCommand('dev', [projectRoot], { - overrides: getConfigOverrides(options, context.root, projectRoot), + // Options passed through CLI or project.json get precedence over nuxt.config.ts + overrides: getConfigOverrides(options, config, projectRoot, context), }); next({ success: true, - baseUrl: `${options.https ? 'https' : 'http'}://${ - options.host ?? 'localhost' - }:${options.port ?? '4200'}`, + // Options passed through CLI or project.json get precedence over nuxt.config.ts + baseUrl: `${ + options.https ? 'https' : config.devServer.https ? 'https' : 'http' + }://${options.host ?? config.devServer.host ?? 'localhost'}:${ + options.port ?? config.devServer.port ?? '4200' + }`, }); } catch (err) { console.error(err); @@ -36,22 +48,24 @@ export async function* nuxtServeExecutor( function getConfigOverrides( options: NuxtServeExecutorOptions, - workspaceRoot: string, - projectRoot: string + config: NuxtOptions, + projectRoot: string, + context: ExecutorContext ): { [key: string]: any } { - const json: { [key: string]: any } = { - workspaceDir: workspaceRoot, - typescript: { - typeCheck: true, - tsConfig: { - extends: joinPathFragments( - workspaceRoot, - projectRoot, - 'tsconfig.app.json' - ), - }, - }, - }; + let outputPath = ''; + for (const [_targetName, targetConfig] of Object.entries( + context.projectsConfigurations.projects[context.projectName].targets + )) { + if (targetConfig.executor === '@nx/nuxt:build') { + outputPath = targetConfig.options.outputPath; + } + } + const json = getCommonNuxtConfigOverrides( + config, + context.root, + projectRoot, + outputPath + ); if (options.debug !== undefined) { json.debug = options.debug; diff --git a/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap b/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap index f7afb5b95c1c97..dbad06c79934a0 100644 --- a/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap +++ b/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap @@ -33,15 +33,32 @@ import { defineNuxtConfig } from 'nuxt/config'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ srcDir: 'src', + buildDir: 'dist/my-app/.nuxt', devtools: { enabled: true }, devServer: { host: 'localhost', port: 4200, }, + typescript: { + typeCheck: true, + tsConfig: { + extends: 'my-app/tsconfig.app.json', + }, + }, + imports: { + autoImport: false, + }, vite: { plugins: [nxViteTsPaths()], }, + nitro: { + output: { + dir: 'dist/my-app/.output', + serverDir: 'dist/my-app/.output/server', + publicDir: 'dist/my-app/.output/public', + }, + }, }); " `; @@ -55,12 +72,12 @@ exports[`app generated files content - as-provided general application should co "targets": { "serve": { "executor": "@nx/nuxt:serve", - "outputs": ["{options.outputFile}"], + "outputs": ["{options.outputPath}"], "options": {} }, "build": { "executor": "@nx/nuxt:build", - "outputs": ["{options.outputFile}"], + "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/my-app" } @@ -209,17 +226,34 @@ import { defineNuxtConfig } from 'nuxt/config'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ srcDir: 'src', + buildDir: 'dist/myapp1/.nuxt', devtools: { enabled: true }, devServer: { host: 'localhost', port: 4200, }, + typescript: { + typeCheck: true, + tsConfig: { + extends: 'myapp1/tsconfig.app.json', + }, + }, + imports: { + autoImport: false, + }, css: ['~/assets/css/styles.css'], vite: { plugins: [nxViteTsPaths()], }, + nitro: { + output: { + dir: 'dist/myapp1/.output', + serverDir: 'dist/myapp1/.output/server', + publicDir: 'dist/myapp1/.output/public', + }, + }, }); " `; @@ -231,17 +265,34 @@ import { defineNuxtConfig } from 'nuxt/config'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ srcDir: 'src', + buildDir: 'dist/myapp3/.nuxt', devtools: { enabled: true }, devServer: { host: 'localhost', port: 4200, }, + typescript: { + typeCheck: true, + tsConfig: { + extends: 'myapp3/tsconfig.app.json', + }, + }, + imports: { + autoImport: false, + }, css: ['~/assets/css/styles.less'], vite: { plugins: [nxViteTsPaths()], }, + nitro: { + output: { + dir: 'dist/myapp3/.output', + serverDir: 'dist/myapp3/.output/server', + publicDir: 'dist/myapp3/.output/public', + }, + }, }); " `; @@ -253,17 +304,34 @@ import { defineNuxtConfig } from 'nuxt/config'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ srcDir: 'src', + buildDir: 'dist/myapp2/.nuxt', devtools: { enabled: true }, devServer: { host: 'localhost', port: 4200, }, + typescript: { + typeCheck: true, + tsConfig: { + extends: 'myapp2/tsconfig.app.json', + }, + }, + imports: { + autoImport: false, + }, css: ['~/assets/css/styles.scss'], vite: { plugins: [nxViteTsPaths()], }, + nitro: { + output: { + dir: 'dist/myapp2/.output', + serverDir: 'dist/myapp2/.output/server', + publicDir: 'dist/myapp2/.output/public', + }, + }, }); " `; @@ -275,15 +343,32 @@ import { defineNuxtConfig } from 'nuxt/config'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ srcDir: 'src', + buildDir: 'dist/myapp4/.nuxt', devtools: { enabled: true }, devServer: { host: 'localhost', port: 4200, }, + typescript: { + typeCheck: true, + tsConfig: { + extends: 'myapp4/tsconfig.app.json', + }, + }, + imports: { + autoImport: false, + }, vite: { plugins: [nxViteTsPaths()], }, + nitro: { + output: { + dir: 'dist/myapp4/.output', + serverDir: 'dist/myapp4/.output/server', + publicDir: 'dist/myapp4/.output/public', + }, + }, }); " `; diff --git a/packages/nuxt/src/generators/application/application.ts b/packages/nuxt/src/generators/application/application.ts index 576190300454aa..0e4e289410d61d 100644 --- a/packages/nuxt/src/generators/application/application.ts +++ b/packages/nuxt/src/generators/application/application.ts @@ -54,6 +54,11 @@ export async function applicationGenerator(tree: Tree, schema: Schema) { dot: '.', tmpl: '', style: options.style, + projectRoot: options.appProjectRoot, + buildDirectory: joinPathFragments(`dist/${options.appProjectRoot}/.nuxt`), + nitroOutputDir: joinPathFragments( + `dist/${options.appProjectRoot}/.output` + ), } ); diff --git a/packages/nuxt/src/generators/application/files/nuxt.config.ts__tmpl__ b/packages/nuxt/src/generators/application/files/nuxt.config.ts__tmpl__ index 95112345a14813..2a1508b1f4c605 100644 --- a/packages/nuxt/src/generators/application/files/nuxt.config.ts__tmpl__ +++ b/packages/nuxt/src/generators/application/files/nuxt.config.ts__tmpl__ @@ -4,11 +4,21 @@ import { defineNuxtConfig } from 'nuxt/config'; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ srcDir: 'src', + buildDir: '<%= buildDirectory %>', devtools: { enabled: true }, devServer: { host: 'localhost', port: 4200, }, + typescript: { + typeCheck: true, + tsConfig: { + extends: '<%= projectRoot %>/tsconfig.app.json', + }, + }, + imports: { + autoImport: false, + }, <% if (style !== 'none') { %> css: ['~/assets/css/styles.<%= style %>'], <% } %> @@ -16,5 +26,12 @@ export default defineNuxtConfig({ plugins: [ nxViteTsPaths() ], - } + }, + nitro: { + output: { + dir: '<%= nitroOutputDir %>', + serverDir: '<%= nitroOutputDir %>/server', + publicDir: '<%= nitroOutputDir %>/public', + }, + }, }); diff --git a/packages/nuxt/src/generators/application/lib/add-targets.ts b/packages/nuxt/src/generators/application/lib/add-targets.ts index b095e16f34de8e..b8c68580e9ef4f 100644 --- a/packages/nuxt/src/generators/application/lib/add-targets.ts +++ b/packages/nuxt/src/generators/application/lib/add-targets.ts @@ -8,7 +8,7 @@ export function addServeTarget(tree: Tree, projectName: string) { const projectConfig = readProjectConfiguration(tree, projectName); projectConfig.targets['serve'] = { executor: '@nx/nuxt:serve', - outputs: ['{options.outputFile}'], + outputs: ['{options.outputPath}'], options: {}, }; updateProjectConfiguration(tree, projectName, projectConfig); @@ -22,7 +22,7 @@ export function addBuildTarget( const projectConfig = readProjectConfiguration(tree, projectName); projectConfig.targets['build'] = { executor: '@nx/nuxt:build', - outputs: ['{options.outputFile}'], + outputs: ['{options.outputPath}'], options: { outputPath: outputPath, }, diff --git a/packages/nuxt/src/utils/executor-utils.ts b/packages/nuxt/src/utils/executor-utils.ts new file mode 100644 index 00000000000000..329d6a04b10579 --- /dev/null +++ b/packages/nuxt/src/utils/executor-utils.ts @@ -0,0 +1,54 @@ +import type { NuxtOptions } from '@nuxt/schema'; +import { joinPathFragments } from '@nx/devkit'; + +// Required because nuxi is ESM package. +export function loadNuxiDynamicImport() { + return Function('return import("nuxi")')() as Promise; +} + +export function loadNuxtKitDynamicImport() { + return Function('return import("@nuxt/kit")')() as Promise< + typeof import('@nuxt/kit') + >; +} + +export function getCommonNuxtConfigOverrides( + config: NuxtOptions, + contextRoot: string, + projectRoot: string, + outputPath: string +): Record { + return { + workspaceDir: contextRoot, + buildDir: config?.buildDir + ? joinPathFragments( + contextRoot, + // By default, nuxt prepends rootDir (which is workspaceDir + projectRoot) + // to buildDir. So we need to remove it, in order to preserve the expected behaviour + // If you set `buildDir` in your nuxt.config.ts as `dist/my-app` you expect + // it to be at the workspace root, as is true with all our other executors. + config.buildDir.replace(config.rootDir, '') + ) + : joinPathFragments(contextRoot, outputPath, '.nuxt'), + nitro: { + output: { + dir: config?.nitro?.output?.dir + ? joinPathFragments(contextRoot, config.nitro.output.dir) + : joinPathFragments(contextRoot, outputPath, '.output'), + serverDir: config?.nitro?.output?.serverDir + ? joinPathFragments(contextRoot, config.nitro.output.serverDir) + : joinPathFragments(contextRoot, outputPath, '.output/server'), + publicDir: config?.nitro?.output?.publicDir + ? joinPathFragments(contextRoot, config.nitro.output.publicDir) + : joinPathFragments(contextRoot, outputPath, '.output/public'), + }, + }, + typescript: { + tsConfig: { + extends: config?.typescript?.tsConfig?.extends + ? joinPathFragments(contextRoot, config.typescript.tsConfig.extends) + : joinPathFragments(contextRoot, projectRoot, 'tsconfig.app.json'), + }, + }, + }; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddf796e977a2eb..2d58a56f2b8064 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -263,8 +263,11 @@ devDependencies: specifier: ~16.0.0 version: 16.0.0(@angular/core@17.0.0)(rxjs@7.8.1) '@nuxt/kit': - specifier: ^3.8.0 - version: 3.8.0(rollup@2.79.0) + specifier: ^3.8.1 + version: 3.8.1(rollup@2.79.0) + '@nuxt/schema': + specifier: ^3.8.1 + version: 3.8.1(rollup@2.79.0) '@nx/angular': specifier: 17.1.1 version: 17.1.1(@angular-devkit/build-angular@17.0.0)(@angular-devkit/core@17.0.0)(@angular-devkit/schematics@17.0.0)(@schematics/angular@17.0.0)(@swc-node/register@1.6.8)(@swc/core@1.3.86)(@types/node@18.16.9)(cypress@13.0.0)(esbuild@0.19.5)(eslint@8.46.0)(html-webpack-plugin@5.5.0)(nx@17.1.1)(rxjs@7.8.1)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.15.4) @@ -7288,18 +7291,18 @@ packages: - debug dev: true - /@nuxt/kit@3.8.0(rollup@2.79.0): - resolution: {integrity: sha512-oIthQxeMIVs4ESVP5FqLYn8tj0S1sLd+eYreh+dNYgnJ2pTi7+THR12ONBNHjk668jqEe7ErUJ8UlGwqBzgezg==} + /@nuxt/kit@3.8.1(rollup@2.79.0): + resolution: {integrity: sha512-DrhG1Z85iH68QOTkgfb0HVfM2g7+CfcMWrFWMDwck9ofyM2RXQUZyfmvMedwBnui1AjjpgpLO9078yZM+RqNUg==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/schema': 3.8.0(rollup@2.79.0) + '@nuxt/schema': 3.8.1(rollup@2.79.0) c12: 1.5.1 consola: 3.2.3 defu: 6.1.3 globby: 13.2.2 hash-sum: 2.0.0 ignore: 5.2.4 - jiti: 1.20.0 + jiti: 1.21.0 knitwork: 1.0.0 mlly: 1.4.2 pathe: 1.1.1 @@ -7315,8 +7318,8 @@ packages: - supports-color dev: true - /@nuxt/schema@3.8.0(rollup@2.79.0): - resolution: {integrity: sha512-VEDVeCjdVowhoY5vIBSz94+SSwmM204jN6TNe/ShBJ2d/vZiy9EtLbhOwqaPNFHwnN1fl/XFHThwJiexdB9D1w==} + /@nuxt/schema@3.8.1(rollup@2.79.0): + resolution: {integrity: sha512-fSaWRcI/2mUskfTZTGSnH6Ny0x05CRzylbVn6WFV0d6UEKIVy42Qd6n+h7yoFfp4cq4nji6u16PT4SqS1DEhsw==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: '@nuxt/ui-templates': 1.3.1 @@ -7325,7 +7328,6 @@ packages: hookable: 5.5.3 pathe: 1.1.1 pkg-types: 1.0.3 - postcss-import-resolver: 2.0.0 std-env: 3.4.3 ufo: 1.3.1 unimport: 3.5.0(rollup@2.79.0) @@ -13818,7 +13820,7 @@ packages: defu: 6.1.3 dotenv: 16.3.1 giget: 1.1.3 - jiti: 1.20.0 + jiti: 1.21.0 mlly: 1.4.2 ohash: 1.1.3 pathe: 1.1.1 @@ -14743,7 +14745,7 @@ packages: peerDependencies: webpack: ^5.1.0 dependencies: - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob-parent: 6.0.2 globby: 13.2.2 normalize-path: 3.0.0 @@ -15983,15 +15985,6 @@ packages: - utf-8-validate dev: true - /enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - dependencies: - graceful-fs: 4.2.11 - memory-fs: 0.5.0 - tapable: 1.1.3 - dev: true - /enhanced-resolve@5.10.0: resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} engines: {node: '>=10.13.0'} @@ -16052,6 +16045,7 @@ packages: requiresBuild: true dependencies: prr: 1.0.1 + optional: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -17888,7 +17882,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -19623,8 +19617,8 @@ packages: - ts-node dev: true - /jiti@1.20.0: - resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true dev: true @@ -20775,14 +20769,6 @@ packages: map-or-similar: 1.5.0 dev: true - /memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - dev: true - /meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -23296,12 +23282,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-import-resolver@2.0.0: - resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==} - dependencies: - enhanced-resolve: 4.5.0 - dev: true - /postcss-import@14.1.0(postcss@8.4.19): resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} @@ -23380,7 +23360,7 @@ packages: webpack: ^5.0.0 dependencies: cosmiconfig: 8.2.0 - jiti: 1.20.0 + jiti: 1.21.0 postcss: 8.4.31 semver: 7.5.3 webpack: 5.89.0(@swc/core@1.3.86)(esbuild@0.19.5) @@ -24326,6 +24306,7 @@ packages: /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} requiresBuild: true + optional: true /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -26766,11 +26747,6 @@ packages: transitivePeerDependencies: - ts-node - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: true - /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -27798,7 +27774,7 @@ packages: '@babel/standalone': 7.23.3 '@babel/types': 7.23.0 defu: 6.1.3 - jiti: 1.20.0 + jiti: 1.21.0 mri: 1.2.0 scule: 1.0.0 transitivePeerDependencies: