@nuxt/cli-nightly 3.29.4-20251009-171833-0915ec9 → 3.29.4-20251021-190716-bbf70fc
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/dist/_shared-C3vB2YLc.mjs +42 -0
- package/dist/_utils-DTrPahho.mjs +29 -0
- package/dist/add-BGMHIn5L.mjs +333 -0
- package/dist/add-CRBwIlDF.mjs +298 -0
- package/dist/add-hFFIzkcy.mjs +10 -0
- package/dist/analyze-CUKAi_IN.mjs +115 -0
- package/dist/banner-CqfM_0Qo.mjs +55 -0
- package/dist/build-BSxJLNs_.mjs +78 -0
- package/dist/build-KNIBU0AI.mjs +9 -0
- package/dist/cleanup-8GRakeLu.mjs +31 -0
- package/dist/dev/index.d.mts +87 -83
- package/dist/dev/index.mjs +7 -23
- package/dist/dev-Bs_0dzlh.mjs +591 -0
- package/dist/dev-CnQwDUaD.mjs +7 -0
- package/dist/dev-L7lhoThJ.mjs +438 -0
- package/dist/dev-child-CSiX6Uyv.mjs +37 -0
- package/dist/devtools-BLGzUSNU.mjs +44 -0
- package/dist/env-Dz4K_NkM.mjs +12 -0
- package/dist/fs-ewAp6tjM.mjs +40 -0
- package/dist/generate-CGy3-x2K.mjs +35 -0
- package/dist/index.d.mts +9 -18
- package/dist/index.mjs +129 -8
- package/dist/info-BDdsghj1.mjs +120 -0
- package/dist/init-_n9DXzzY.mjs +336 -0
- package/dist/kit-xFxVGu6d.mjs +37 -0
- package/dist/logger-Dk0gkCkX.mjs +7 -0
- package/dist/module-CqBrGD-s.mjs +17 -0
- package/dist/nuxt-Cc9ZTk7m.mjs +44 -0
- package/dist/packageManagers-DbVB5cXf.mjs +9 -0
- package/dist/prepare-B0KOhO-L.mjs +7 -0
- package/dist/prepare-xI978yFg.mjs +49 -0
- package/dist/preview-C5fNqrC6.mjs +109 -0
- package/dist/search-DCyXfxzn.mjs +113 -0
- package/dist/test-CBt1emEB.mjs +55 -0
- package/dist/typecheck-DCWe7Iej.mjs +102 -0
- package/dist/upgrade-BMSFcUWJ.mjs +184 -0
- package/dist/versions-CSy_3o_-.mjs +18 -0
- package/package.json +13 -13
- package/dist/chunks/add.mjs +0 -381
- package/dist/chunks/add2.mjs +0 -319
- package/dist/chunks/analyze.mjs +0 -139
- package/dist/chunks/build.mjs +0 -94
- package/dist/chunks/cleanup.mjs +0 -34
- package/dist/chunks/dev-child.mjs +0 -38
- package/dist/chunks/dev.mjs +0 -709
- package/dist/chunks/devtools.mjs +0 -46
- package/dist/chunks/generate.mjs +0 -45
- package/dist/chunks/index.mjs +0 -507
- package/dist/chunks/index2.mjs +0 -15
- package/dist/chunks/info.mjs +0 -150
- package/dist/chunks/init.mjs +0 -413
- package/dist/chunks/prepare.mjs +0 -57
- package/dist/chunks/preview.mjs +0 -131
- package/dist/chunks/search.mjs +0 -114
- package/dist/chunks/test.mjs +0 -62
- package/dist/chunks/typecheck.mjs +0 -85
- package/dist/chunks/upgrade.mjs +0 -214
- package/dist/dev/index.d.ts +0 -94
- package/dist/index.d.ts +0 -23
- package/dist/shared/cli-nightly.B9AmABr3.mjs +0 -5
- package/dist/shared/cli-nightly.BRlCc6aT.mjs +0 -204
- package/dist/shared/cli-nightly.BSm0_9Hr.mjs +0 -7
- package/dist/shared/cli-nightly.Bu_9IHj2.mjs +0 -51
- package/dist/shared/cli-nightly.Cr-OCgdO.mjs +0 -37
- package/dist/shared/cli-nightly.DHenkA1C.mjs +0 -14
- package/dist/shared/cli-nightly.DPmMxQ6h.mjs +0 -33
- package/dist/shared/cli-nightly.DS8guhZv.mjs +0 -52
- package/dist/shared/cli-nightly.DkO5RR_e.mjs +0 -14
- package/dist/shared/cli-nightly.qKvs7FJ2.mjs +0 -36
package/dist/chunks/preview.mjs
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { existsSync, promises } from 'node:fs';
|
|
2
|
-
import { dirname, relative } from 'node:path';
|
|
3
|
-
import process from 'node:process';
|
|
4
|
-
import { setupDotenv } from 'c12';
|
|
5
|
-
import { defineCommand } from 'citty';
|
|
6
|
-
import { box, colors } from 'consola/utils';
|
|
7
|
-
import { getArgs } from 'listhen/cli';
|
|
8
|
-
import { resolve } from 'pathe';
|
|
9
|
-
import { x } from 'tinyexec';
|
|
10
|
-
import { l as loadKit } from '../shared/cli-nightly.qKvs7FJ2.mjs';
|
|
11
|
-
import { l as logger } from '../shared/cli-nightly.B9AmABr3.mjs';
|
|
12
|
-
import { d as dotEnvArgs, l as legacyRootDirArgs, e as extendsArgs, b as envNameArgs, a as logLevelArgs, c as cwdArgs } from '../shared/cli-nightly.BRlCc6aT.mjs';
|
|
13
|
-
import 'node:url';
|
|
14
|
-
import 'exsolve';
|
|
15
|
-
import 'consola';
|
|
16
|
-
import 'std-env';
|
|
17
|
-
|
|
18
|
-
const command = defineCommand({
|
|
19
|
-
meta: {
|
|
20
|
-
name: "preview",
|
|
21
|
-
description: "Launches Nitro server for local testing after `nuxi build`."
|
|
22
|
-
},
|
|
23
|
-
args: {
|
|
24
|
-
...cwdArgs,
|
|
25
|
-
...logLevelArgs,
|
|
26
|
-
...envNameArgs,
|
|
27
|
-
...extendsArgs,
|
|
28
|
-
...legacyRootDirArgs,
|
|
29
|
-
port: { ...getArgs().port, alias: ["p"] },
|
|
30
|
-
...dotEnvArgs
|
|
31
|
-
},
|
|
32
|
-
async run(ctx) {
|
|
33
|
-
process.env.NODE_ENV = process.env.NODE_ENV || "production";
|
|
34
|
-
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
|
|
35
|
-
const { loadNuxt } = await loadKit(cwd);
|
|
36
|
-
const resolvedOutputDir = await new Promise((res) => {
|
|
37
|
-
loadNuxt({
|
|
38
|
-
cwd,
|
|
39
|
-
envName: ctx.args.envName,
|
|
40
|
-
// c12 will fall back to NODE_ENV
|
|
41
|
-
ready: true,
|
|
42
|
-
overrides: {
|
|
43
|
-
...ctx.args.extends && { extends: ctx.args.extends },
|
|
44
|
-
modules: [
|
|
45
|
-
function(_, nuxt) {
|
|
46
|
-
nuxt.hook("nitro:init", (nitro) => {
|
|
47
|
-
res(resolve(nuxt.options.srcDir || cwd, nitro.options.output.dir || ".output", "nitro.json"));
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
}).then((nuxt) => nuxt.close()).catch(() => "");
|
|
53
|
-
});
|
|
54
|
-
const defaultOutput = resolve(cwd, ".output", "nitro.json");
|
|
55
|
-
const nitroJSONPaths = [resolvedOutputDir, defaultOutput].filter(Boolean);
|
|
56
|
-
const nitroJSONPath = nitroJSONPaths.find((p) => existsSync(p));
|
|
57
|
-
if (!nitroJSONPath) {
|
|
58
|
-
logger.error(
|
|
59
|
-
"Cannot find `nitro.json`. Did you run `nuxi build` first? Search path:\n",
|
|
60
|
-
nitroJSONPaths
|
|
61
|
-
);
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
|
-
const outputPath = dirname(nitroJSONPath);
|
|
65
|
-
const nitroJSON = JSON.parse(await promises.readFile(nitroJSONPath, "utf-8"));
|
|
66
|
-
if (!nitroJSON.commands.preview) {
|
|
67
|
-
logger.error("Preview is not supported for this build.");
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
70
|
-
const info = [
|
|
71
|
-
["Node.js:", `v${process.versions.node}`],
|
|
72
|
-
["Nitro Preset:", nitroJSON.preset],
|
|
73
|
-
["Working directory:", relative(process.cwd(), outputPath)]
|
|
74
|
-
];
|
|
75
|
-
const _infoKeyLen = Math.max(...info.map(([label]) => label.length));
|
|
76
|
-
logger.log(
|
|
77
|
-
box(
|
|
78
|
-
[
|
|
79
|
-
"You are running Nuxt production build in preview mode.",
|
|
80
|
-
`For production deployments, please directly use ${colors.cyan(
|
|
81
|
-
nitroJSON.commands.preview
|
|
82
|
-
)} command.`,
|
|
83
|
-
"",
|
|
84
|
-
...info.map(
|
|
85
|
-
([label, value]) => `${label.padEnd(_infoKeyLen, " ")} ${colors.cyan(value)}`
|
|
86
|
-
)
|
|
87
|
-
].join("\n"),
|
|
88
|
-
{
|
|
89
|
-
title: colors.yellow("Preview Mode"),
|
|
90
|
-
style: {
|
|
91
|
-
borderColor: "yellow"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
)
|
|
95
|
-
);
|
|
96
|
-
const envFileName = ctx.args.dotenv || ".env";
|
|
97
|
-
const envExists = existsSync(resolve(cwd, envFileName));
|
|
98
|
-
if (envExists) {
|
|
99
|
-
logger.info(
|
|
100
|
-
`Loading \`${envFileName}\`. This will not be loaded when running the server in production.`
|
|
101
|
-
);
|
|
102
|
-
await setupDotenv({ cwd, fileName: envFileName });
|
|
103
|
-
} else if (ctx.args.dotenv) {
|
|
104
|
-
logger.error(`Cannot find \`${envFileName}\`.`);
|
|
105
|
-
}
|
|
106
|
-
const { port } = _resolveListenOptions(ctx.args);
|
|
107
|
-
logger.info(`Starting preview command: \`${nitroJSON.commands.preview}\``);
|
|
108
|
-
const [command2, ...commandArgs] = nitroJSON.commands.preview.split(" ");
|
|
109
|
-
logger.log("");
|
|
110
|
-
await x(command2, commandArgs, {
|
|
111
|
-
throwOnError: true,
|
|
112
|
-
nodeOptions: {
|
|
113
|
-
stdio: "inherit",
|
|
114
|
-
cwd: outputPath,
|
|
115
|
-
env: {
|
|
116
|
-
...process.env,
|
|
117
|
-
NUXT_PORT: port,
|
|
118
|
-
NITRO_PORT: port
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
function _resolveListenOptions(args) {
|
|
125
|
-
const _port = args.port ?? process.env.NUXT_PORT ?? process.env.NITRO_PORT ?? process.env.PORT;
|
|
126
|
-
return {
|
|
127
|
-
port: _port
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export { command as default };
|
package/dist/chunks/search.mjs
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from 'citty';
|
|
2
|
-
import { colors } from 'consola/utils';
|
|
3
|
-
import Fuse from 'fuse.js';
|
|
4
|
-
import { upperFirst, kebabCase } from 'scule';
|
|
5
|
-
import { l as logger } from '../shared/cli-nightly.B9AmABr3.mjs';
|
|
6
|
-
import { g as getNuxtVersion } from '../shared/cli-nightly.DHenkA1C.mjs';
|
|
7
|
-
import { c as cwdArgs } from '../shared/cli-nightly.BRlCc6aT.mjs';
|
|
8
|
-
import { f as fetchModules, c as checkNuxtCompatibility } from '../shared/cli-nightly.Cr-OCgdO.mjs';
|
|
9
|
-
import 'consola';
|
|
10
|
-
import 'pkg-types';
|
|
11
|
-
import 'semver';
|
|
12
|
-
import 'node:path';
|
|
13
|
-
import 'node:process';
|
|
14
|
-
import 'std-env';
|
|
15
|
-
import 'node:url';
|
|
16
|
-
import 'confbox';
|
|
17
|
-
import 'ofetch';
|
|
18
|
-
|
|
19
|
-
const { format: formatNumber } = Intl.NumberFormat("en-GB", {
|
|
20
|
-
notation: "compact",
|
|
21
|
-
maximumFractionDigits: 1
|
|
22
|
-
});
|
|
23
|
-
const search = defineCommand({
|
|
24
|
-
meta: {
|
|
25
|
-
name: "search",
|
|
26
|
-
description: "Search in Nuxt modules"
|
|
27
|
-
},
|
|
28
|
-
args: {
|
|
29
|
-
...cwdArgs,
|
|
30
|
-
query: {
|
|
31
|
-
type: "positional",
|
|
32
|
-
description: "keywords to search for",
|
|
33
|
-
required: true
|
|
34
|
-
},
|
|
35
|
-
nuxtVersion: {
|
|
36
|
-
type: "string",
|
|
37
|
-
description: "Filter by Nuxt version and list compatible modules only (auto detected by default)",
|
|
38
|
-
required: false,
|
|
39
|
-
valueHint: "2|3"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
async setup(ctx) {
|
|
43
|
-
const nuxtVersion = await getNuxtVersion(ctx.args.cwd);
|
|
44
|
-
return findModuleByKeywords(ctx.args._.join(" "), nuxtVersion);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
async function findModuleByKeywords(query, nuxtVersion) {
|
|
48
|
-
const allModules = await fetchModules();
|
|
49
|
-
const compatibleModules = allModules.filter(
|
|
50
|
-
(m) => checkNuxtCompatibility(m, nuxtVersion)
|
|
51
|
-
);
|
|
52
|
-
const fuse = new Fuse(compatibleModules, {
|
|
53
|
-
threshold: 0.1,
|
|
54
|
-
keys: [
|
|
55
|
-
{ name: "name", weight: 1 },
|
|
56
|
-
{ name: "npm", weight: 1 },
|
|
57
|
-
{ name: "repo", weight: 1 },
|
|
58
|
-
{ name: "tags", weight: 1 },
|
|
59
|
-
{ name: "category", weight: 1 },
|
|
60
|
-
{ name: "description", weight: 0.5 },
|
|
61
|
-
{ name: "maintainers.name", weight: 0.5 },
|
|
62
|
-
{ name: "maintainers.github", weight: 0.5 }
|
|
63
|
-
]
|
|
64
|
-
});
|
|
65
|
-
const { bold, green, magenta, cyan, gray, yellow } = colors;
|
|
66
|
-
const results = fuse.search(query).map((result) => {
|
|
67
|
-
const res = {
|
|
68
|
-
name: bold(result.item.name),
|
|
69
|
-
homepage: cyan(result.item.website),
|
|
70
|
-
compatibility: `nuxt: ${result.item.compatibility?.nuxt || "*"}`,
|
|
71
|
-
repository: gray(result.item.github),
|
|
72
|
-
description: gray(result.item.description),
|
|
73
|
-
package: gray(result.item.npm),
|
|
74
|
-
install: cyan(`npx nuxi module add ${result.item.name}`),
|
|
75
|
-
stars: yellow(formatNumber(result.item.stats.stars)),
|
|
76
|
-
monthlyDownloads: yellow(formatNumber(result.item.stats.downloads))
|
|
77
|
-
};
|
|
78
|
-
if (result.item.github === result.item.website) {
|
|
79
|
-
delete res.homepage;
|
|
80
|
-
}
|
|
81
|
-
if (result.item.name === result.item.npm) {
|
|
82
|
-
delete res.packageName;
|
|
83
|
-
}
|
|
84
|
-
return res;
|
|
85
|
-
});
|
|
86
|
-
if (!results.length) {
|
|
87
|
-
logger.info(
|
|
88
|
-
`No Nuxt modules found matching query ${magenta(query)} for Nuxt ${cyan(nuxtVersion)}`
|
|
89
|
-
);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
logger.success(
|
|
93
|
-
`Found ${results.length} Nuxt ${results.length > 1 ? "modules" : "module"} matching ${cyan(query)} ${nuxtVersion ? `for Nuxt ${cyan(nuxtVersion)}` : ""}:
|
|
94
|
-
`
|
|
95
|
-
);
|
|
96
|
-
for (const foundModule of results) {
|
|
97
|
-
let maxLength = 0;
|
|
98
|
-
const entries = Object.entries(foundModule).map(([key, val]) => {
|
|
99
|
-
const label = upperFirst(kebabCase(key)).replace(/-/g, " ");
|
|
100
|
-
if (label.length > maxLength) {
|
|
101
|
-
maxLength = label.length;
|
|
102
|
-
}
|
|
103
|
-
return [label, val || "-"];
|
|
104
|
-
});
|
|
105
|
-
let infoStr = "";
|
|
106
|
-
for (const [label, value] of entries) {
|
|
107
|
-
infoStr += `${bold(label === "Install" ? "\u2192 " : "- ") + green(label.padEnd(maxLength + 2)) + value}
|
|
108
|
-
`;
|
|
109
|
-
}
|
|
110
|
-
logger.log(infoStr);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export { search as default };
|
package/dist/chunks/test.mjs
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import process from 'node:process';
|
|
2
|
-
import { defineCommand } from 'citty';
|
|
3
|
-
import { resolve } from 'pathe';
|
|
4
|
-
import { l as logger } from '../shared/cli-nightly.B9AmABr3.mjs';
|
|
5
|
-
import { l as legacyRootDirArgs, a as logLevelArgs, c as cwdArgs } from '../shared/cli-nightly.BRlCc6aT.mjs';
|
|
6
|
-
import 'consola';
|
|
7
|
-
import 'node:path';
|
|
8
|
-
import 'std-env';
|
|
9
|
-
import 'node:url';
|
|
10
|
-
|
|
11
|
-
const test = defineCommand({
|
|
12
|
-
meta: {
|
|
13
|
-
name: "test",
|
|
14
|
-
description: "Run tests"
|
|
15
|
-
},
|
|
16
|
-
args: {
|
|
17
|
-
...cwdArgs,
|
|
18
|
-
...logLevelArgs,
|
|
19
|
-
...legacyRootDirArgs,
|
|
20
|
-
dev: {
|
|
21
|
-
type: "boolean",
|
|
22
|
-
description: "Run in dev mode"
|
|
23
|
-
},
|
|
24
|
-
watch: {
|
|
25
|
-
type: "boolean",
|
|
26
|
-
description: "Watch mode"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
async run(ctx) {
|
|
30
|
-
process.env.NODE_ENV = process.env.NODE_ENV || "test";
|
|
31
|
-
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
|
|
32
|
-
const { runTests } = await importTestUtils();
|
|
33
|
-
await runTests({
|
|
34
|
-
rootDir: cwd,
|
|
35
|
-
dev: ctx.args.dev,
|
|
36
|
-
watch: ctx.args.watch,
|
|
37
|
-
...{}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
async function importTestUtils() {
|
|
42
|
-
let err;
|
|
43
|
-
for (const pkg of [
|
|
44
|
-
"@nuxt/test-utils-nightly",
|
|
45
|
-
"@nuxt/test-utils-edge",
|
|
46
|
-
"@nuxt/test-utils"
|
|
47
|
-
]) {
|
|
48
|
-
try {
|
|
49
|
-
const exports = await import(pkg);
|
|
50
|
-
if (!exports.runTests) {
|
|
51
|
-
throw new Error("Invalid version of `@nuxt/test-utils` is installed!");
|
|
52
|
-
}
|
|
53
|
-
return exports;
|
|
54
|
-
} catch (_err) {
|
|
55
|
-
err = _err;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
logger.error(err);
|
|
59
|
-
throw new Error("`@nuxt/test-utils` seems missing. Run `npm i -D @nuxt/test-utils` or `yarn add -D @nuxt/test-utils` to install.");
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export { test as default };
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import process from 'node:process';
|
|
2
|
-
import { defineCommand } from 'citty';
|
|
3
|
-
import { resolveModulePath } from 'exsolve';
|
|
4
|
-
import { resolve } from 'pathe';
|
|
5
|
-
import { readTSConfig } from 'pkg-types';
|
|
6
|
-
import { isBun } from 'std-env';
|
|
7
|
-
import { x } from 'tinyexec';
|
|
8
|
-
import { l as loadKit } from '../shared/cli-nightly.qKvs7FJ2.mjs';
|
|
9
|
-
import { l as legacyRootDirArgs, e as extendsArgs, d as dotEnvArgs, a as logLevelArgs, c as cwdArgs } from '../shared/cli-nightly.BRlCc6aT.mjs';
|
|
10
|
-
import 'node:url';
|
|
11
|
-
import 'node:path';
|
|
12
|
-
import 'consola';
|
|
13
|
-
import '../shared/cli-nightly.B9AmABr3.mjs';
|
|
14
|
-
|
|
15
|
-
const typecheck = defineCommand({
|
|
16
|
-
meta: {
|
|
17
|
-
name: "typecheck",
|
|
18
|
-
description: "Runs `vue-tsc` to check types throughout your app."
|
|
19
|
-
},
|
|
20
|
-
args: {
|
|
21
|
-
...cwdArgs,
|
|
22
|
-
...logLevelArgs,
|
|
23
|
-
...dotEnvArgs,
|
|
24
|
-
...extendsArgs,
|
|
25
|
-
...legacyRootDirArgs
|
|
26
|
-
},
|
|
27
|
-
async run(ctx) {
|
|
28
|
-
process.env.NODE_ENV = process.env.NODE_ENV || "production";
|
|
29
|
-
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
|
|
30
|
-
const [supportsProjects, resolvedTypeScript, resolvedVueTsc] = await Promise.all([
|
|
31
|
-
readTSConfig(cwd).then((r) => !!r.references?.length),
|
|
32
|
-
// Prefer local install if possible
|
|
33
|
-
resolveModulePath("typescript", { try: true }),
|
|
34
|
-
resolveModulePath("vue-tsc/bin/vue-tsc.js", { try: true }),
|
|
35
|
-
writeTypes(cwd, ctx.args.dotenv, ctx.args.logLevel, {
|
|
36
|
-
...ctx.data?.overrides,
|
|
37
|
-
...ctx.args.extends && { extends: ctx.args.extends }
|
|
38
|
-
})
|
|
39
|
-
]);
|
|
40
|
-
const typeCheckArgs = supportsProjects ? ["-b", "--noEmit"] : ["--noEmit"];
|
|
41
|
-
if (resolvedTypeScript && resolvedVueTsc) {
|
|
42
|
-
return await x(resolvedVueTsc, typeCheckArgs, {
|
|
43
|
-
throwOnError: true,
|
|
44
|
-
nodeOptions: {
|
|
45
|
-
stdio: "inherit",
|
|
46
|
-
cwd
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
if (isBun) {
|
|
51
|
-
await x("bun", ["install", "typescript", "vue-tsc", "--global", "--silent"], {
|
|
52
|
-
throwOnError: true,
|
|
53
|
-
nodeOptions: { stdio: "inherit", cwd }
|
|
54
|
-
});
|
|
55
|
-
return await x("bunx", ["vue-tsc", ...typeCheckArgs], {
|
|
56
|
-
throwOnError: true,
|
|
57
|
-
nodeOptions: {
|
|
58
|
-
stdio: "inherit",
|
|
59
|
-
cwd
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
await x("npx", ["-p", "vue-tsc", "-p", "typescript", "vue-tsc", ...typeCheckArgs], {
|
|
64
|
-
throwOnError: true,
|
|
65
|
-
nodeOptions: { stdio: "inherit", cwd }
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
async function writeTypes(cwd, dotenv, logLevel, overrides) {
|
|
70
|
-
const { loadNuxt, buildNuxt, writeTypes: writeTypes2 } = await loadKit(cwd);
|
|
71
|
-
const nuxt = await loadNuxt({
|
|
72
|
-
cwd,
|
|
73
|
-
dotenv: { cwd, fileName: dotenv },
|
|
74
|
-
overrides: {
|
|
75
|
-
_prepare: true,
|
|
76
|
-
logLevel,
|
|
77
|
-
...overrides
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
await writeTypes2(nuxt);
|
|
81
|
-
await buildNuxt(nuxt);
|
|
82
|
-
await nuxt.close();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { typecheck as default };
|
package/dist/chunks/upgrade.mjs
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import process from 'node:process';
|
|
3
|
-
import { defineCommand } from 'citty';
|
|
4
|
-
import { colors } from 'consola/utils';
|
|
5
|
-
import { detectPackageManager, addDependency, dedupeDependencies } from 'nypm';
|
|
6
|
-
import { resolve } from 'pathe';
|
|
7
|
-
import { readPackageJSON } from 'pkg-types';
|
|
8
|
-
import { l as loadKit } from '../shared/cli-nightly.qKvs7FJ2.mjs';
|
|
9
|
-
import { l as logger } from '../shared/cli-nightly.B9AmABr3.mjs';
|
|
10
|
-
import { c as cleanupNuxtDirs, n as nuxtVersionToGitIdentifier } from '../shared/cli-nightly.Bu_9IHj2.mjs';
|
|
11
|
-
import { g as getPackageManagerVersion } from '../shared/cli-nightly.BSm0_9Hr.mjs';
|
|
12
|
-
import { g as getNuxtVersion } from '../shared/cli-nightly.DHenkA1C.mjs';
|
|
13
|
-
import { l as legacyRootDirArgs, a as logLevelArgs, c as cwdArgs } from '../shared/cli-nightly.BRlCc6aT.mjs';
|
|
14
|
-
import 'node:url';
|
|
15
|
-
import 'exsolve';
|
|
16
|
-
import 'consola';
|
|
17
|
-
import 'ohash';
|
|
18
|
-
import '../shared/cli-nightly.DPmMxQ6h.mjs';
|
|
19
|
-
import 'node:child_process';
|
|
20
|
-
import 'semver';
|
|
21
|
-
import 'node:path';
|
|
22
|
-
import 'std-env';
|
|
23
|
-
|
|
24
|
-
function checkNuxtDependencyType(pkg) {
|
|
25
|
-
if (pkg.dependencies?.nuxt) {
|
|
26
|
-
return "dependencies";
|
|
27
|
-
}
|
|
28
|
-
if (pkg.devDependencies?.nuxt) {
|
|
29
|
-
return "devDependencies";
|
|
30
|
-
}
|
|
31
|
-
return "dependencies";
|
|
32
|
-
}
|
|
33
|
-
const nuxtVersionTags = {
|
|
34
|
-
"3.x": "3x",
|
|
35
|
-
"4.x": "latest"
|
|
36
|
-
};
|
|
37
|
-
function getNightlyDependency(dep, nuxtVersion) {
|
|
38
|
-
return `${dep}@npm:${dep}-nightly@${nuxtVersionTags[nuxtVersion]}`;
|
|
39
|
-
}
|
|
40
|
-
async function getNightlyVersion(packageNames) {
|
|
41
|
-
const nuxtVersion = await logger.prompt(
|
|
42
|
-
"Which nightly Nuxt release channel do you want to install? (3.x or 4.x)",
|
|
43
|
-
{
|
|
44
|
-
type: "select",
|
|
45
|
-
options: ["3.x", "4.x"],
|
|
46
|
-
default: "4.x",
|
|
47
|
-
cancel: "reject"
|
|
48
|
-
}
|
|
49
|
-
).catch(() => process.exit(1));
|
|
50
|
-
const npmPackages = packageNames.map((p) => getNightlyDependency(p, nuxtVersion));
|
|
51
|
-
return { npmPackages, nuxtVersion };
|
|
52
|
-
}
|
|
53
|
-
async function getRequiredNewVersion(packageNames, channel) {
|
|
54
|
-
switch (channel) {
|
|
55
|
-
case "nightly":
|
|
56
|
-
return getNightlyVersion(packageNames);
|
|
57
|
-
case "v3":
|
|
58
|
-
return { npmPackages: packageNames.map((p) => `${p}@3`), nuxtVersion: "3.x" };
|
|
59
|
-
case "v3-nightly":
|
|
60
|
-
return { npmPackages: packageNames.map((p) => getNightlyDependency(p, "3.x")), nuxtVersion: "3.x" };
|
|
61
|
-
case "v4":
|
|
62
|
-
return { npmPackages: packageNames.map((p) => `${p}@4`), nuxtVersion: "4.x" };
|
|
63
|
-
case "v4-nightly":
|
|
64
|
-
return { npmPackages: packageNames.map((p) => getNightlyDependency(p, "4.x")), nuxtVersion: "4.x" };
|
|
65
|
-
case "stable":
|
|
66
|
-
default:
|
|
67
|
-
return { npmPackages: packageNames.map((p) => `${p}@latest`), nuxtVersion: "4.x" };
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
const upgrade = defineCommand({
|
|
71
|
-
meta: {
|
|
72
|
-
name: "upgrade",
|
|
73
|
-
description: "Upgrade Nuxt"
|
|
74
|
-
},
|
|
75
|
-
args: {
|
|
76
|
-
...cwdArgs,
|
|
77
|
-
...logLevelArgs,
|
|
78
|
-
...legacyRootDirArgs,
|
|
79
|
-
dedupe: {
|
|
80
|
-
type: "boolean",
|
|
81
|
-
description: "Dedupe dependencies after upgrading"
|
|
82
|
-
},
|
|
83
|
-
force: {
|
|
84
|
-
type: "boolean",
|
|
85
|
-
alias: "f",
|
|
86
|
-
description: "Force upgrade to recreate lockfile and node_modules"
|
|
87
|
-
},
|
|
88
|
-
channel: {
|
|
89
|
-
type: "string",
|
|
90
|
-
alias: "ch",
|
|
91
|
-
default: "stable",
|
|
92
|
-
description: "Specify a channel to install from (default: stable)",
|
|
93
|
-
valueHint: "stable|nightly|v3|v4|v4-nightly|v3-nightly"
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
async run(ctx) {
|
|
97
|
-
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
|
|
98
|
-
const packageManager = await detectPackageManager(cwd);
|
|
99
|
-
if (!packageManager) {
|
|
100
|
-
logger.error(
|
|
101
|
-
`Unable to determine the package manager used by this project.
|
|
102
|
-
|
|
103
|
-
No lock files found in \`${cwd}\`, and no \`packageManager\` field specified in \`package.json\`.
|
|
104
|
-
|
|
105
|
-
Please either add the \`packageManager\` field to \`package.json\` or execute the installation command for your package manager. For example, you can use \`pnpm i\`, \`npm i\`, \`bun i\`, or \`yarn i\`, and then try again.`
|
|
106
|
-
);
|
|
107
|
-
process.exit(1);
|
|
108
|
-
}
|
|
109
|
-
const { name: packageManagerName, lockFile: lockFileCandidates } = packageManager;
|
|
110
|
-
const packageManagerVersion = getPackageManagerVersion(packageManagerName);
|
|
111
|
-
logger.info("Package manager:", packageManagerName, packageManagerVersion);
|
|
112
|
-
const currentVersion = await getNuxtVersion(cwd, false) || "[unknown]";
|
|
113
|
-
logger.info("Current Nuxt version:", currentVersion);
|
|
114
|
-
const pkg = await readPackageJSON(cwd).catch(() => null);
|
|
115
|
-
const nuxtDependencyType = pkg ? checkNuxtDependencyType(pkg) : "dependencies";
|
|
116
|
-
const corePackages = ["@nuxt/kit", "@nuxt/schema", "@nuxt/vite-builder", "@nuxt/webpack-builder", "@nuxt/rspack-builder"];
|
|
117
|
-
const packagesToUpdate = pkg ? corePackages.filter((p) => pkg.dependencies?.[p] || pkg.devDependencies?.[p]) : [];
|
|
118
|
-
const { npmPackages, nuxtVersion } = await getRequiredNewVersion(["nuxt", ...packagesToUpdate], ctx.args.channel);
|
|
119
|
-
const toRemove = ["node_modules"];
|
|
120
|
-
const lockFile = normaliseLockFile(cwd, lockFileCandidates);
|
|
121
|
-
if (lockFile) {
|
|
122
|
-
toRemove.push(lockFile);
|
|
123
|
-
}
|
|
124
|
-
const forceRemovals = toRemove.map((p) => colors.cyan(p)).join(" and ");
|
|
125
|
-
let method = ctx.args.force ? "force" : ctx.args.dedupe ? "dedupe" : void 0;
|
|
126
|
-
method ||= await logger.prompt(
|
|
127
|
-
`Would you like to dedupe your lockfile (recommended) or recreate ${forceRemovals}? This can fix problems with hoisted dependency versions and ensure you have the most up-to-date dependencies.`,
|
|
128
|
-
{
|
|
129
|
-
type: "select",
|
|
130
|
-
initial: "dedupe",
|
|
131
|
-
cancel: "reject",
|
|
132
|
-
options: [
|
|
133
|
-
{
|
|
134
|
-
label: "dedupe lockfile",
|
|
135
|
-
value: "dedupe",
|
|
136
|
-
hint: "recommended"
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
label: `recreate ${forceRemovals}`,
|
|
140
|
-
value: "force"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
label: "skip",
|
|
144
|
-
value: "skip"
|
|
145
|
-
}
|
|
146
|
-
]
|
|
147
|
-
}
|
|
148
|
-
).catch(() => process.exit(1));
|
|
149
|
-
const versionType = ctx.args.channel === "nightly" ? "nightly" : `latest ${ctx.args.channel}`;
|
|
150
|
-
logger.info(`Installing ${versionType} Nuxt ${nuxtVersion} release...`);
|
|
151
|
-
await addDependency(npmPackages, {
|
|
152
|
-
cwd,
|
|
153
|
-
packageManager,
|
|
154
|
-
dev: nuxtDependencyType === "devDependencies"
|
|
155
|
-
});
|
|
156
|
-
if (method === "force") {
|
|
157
|
-
logger.info(
|
|
158
|
-
`Recreating ${forceRemovals}. If you encounter any issues, revert the changes and try with \`--no-force\``
|
|
159
|
-
);
|
|
160
|
-
await dedupeDependencies({ recreateLockfile: true });
|
|
161
|
-
}
|
|
162
|
-
if (method === "dedupe") {
|
|
163
|
-
logger.info("Try deduping dependencies...");
|
|
164
|
-
await dedupeDependencies();
|
|
165
|
-
}
|
|
166
|
-
let buildDir = ".nuxt";
|
|
167
|
-
try {
|
|
168
|
-
const { loadNuxtConfig } = await loadKit(cwd);
|
|
169
|
-
const nuxtOptions = await loadNuxtConfig({ cwd });
|
|
170
|
-
buildDir = nuxtOptions.buildDir;
|
|
171
|
-
} catch {
|
|
172
|
-
}
|
|
173
|
-
await cleanupNuxtDirs(cwd, buildDir);
|
|
174
|
-
const upgradedVersion = await getNuxtVersion(cwd, false) || "[unknown]";
|
|
175
|
-
logger.info("Upgraded Nuxt version:", upgradedVersion);
|
|
176
|
-
if (upgradedVersion === "[unknown]") {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
if (upgradedVersion === currentVersion) {
|
|
180
|
-
logger.success("You're using the latest version of Nuxt.");
|
|
181
|
-
} else {
|
|
182
|
-
logger.success(
|
|
183
|
-
"Successfully upgraded Nuxt from",
|
|
184
|
-
currentVersion,
|
|
185
|
-
"to",
|
|
186
|
-
upgradedVersion
|
|
187
|
-
);
|
|
188
|
-
if (currentVersion === "[unknown]") {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
const commitA = nuxtVersionToGitIdentifier(currentVersion);
|
|
192
|
-
const commitB = nuxtVersionToGitIdentifier(upgradedVersion);
|
|
193
|
-
if (commitA && commitB) {
|
|
194
|
-
logger.info(
|
|
195
|
-
"Changelog:",
|
|
196
|
-
`https://github.com/nuxt/nuxt/compare/${commitA}...${commitB}`
|
|
197
|
-
);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
function normaliseLockFile(cwd, lockFiles) {
|
|
203
|
-
if (typeof lockFiles === "string") {
|
|
204
|
-
lockFiles = [lockFiles];
|
|
205
|
-
}
|
|
206
|
-
const lockFile = lockFiles?.find((file) => existsSync(resolve(cwd, file)));
|
|
207
|
-
if (lockFile === void 0) {
|
|
208
|
-
logger.error(`Unable to find any lock files in ${cwd}`);
|
|
209
|
-
return void 0;
|
|
210
|
-
}
|
|
211
|
-
return lockFile;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
export { upgrade as default };
|
package/dist/dev/index.d.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import * as net from 'net';
|
|
2
|
-
import * as listhen from 'listhen';
|
|
3
|
-
import { ListenURL, HTTPSOptions, Listener, ListenOptions } from 'listhen';
|
|
4
|
-
import { NuxtConfig } from '@nuxt/schema';
|
|
5
|
-
import { DotenvOptions } from 'c12';
|
|
6
|
-
import { RequestListener, IncomingMessage, ServerResponse } from 'node:http';
|
|
7
|
-
import { AddressInfo } from 'node:net';
|
|
8
|
-
import EventEmitter from 'node:events';
|
|
9
|
-
|
|
10
|
-
interface NuxtDevContext {
|
|
11
|
-
cwd: string;
|
|
12
|
-
public?: boolean;
|
|
13
|
-
hostname?: string;
|
|
14
|
-
publicURLs?: string[];
|
|
15
|
-
args: {
|
|
16
|
-
clear: boolean;
|
|
17
|
-
logLevel: string;
|
|
18
|
-
dotenv: string;
|
|
19
|
-
envName: string;
|
|
20
|
-
extends?: string;
|
|
21
|
-
};
|
|
22
|
-
proxy?: {
|
|
23
|
-
url?: string;
|
|
24
|
-
urls?: ListenURL[];
|
|
25
|
-
https?: boolean | HTTPSOptions;
|
|
26
|
-
addr?: AddressInfo;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
interface NuxtDevServerOptions {
|
|
30
|
-
cwd: string;
|
|
31
|
-
logLevel?: 'silent' | 'info' | 'verbose';
|
|
32
|
-
dotenv: DotenvOptions;
|
|
33
|
-
envName?: string;
|
|
34
|
-
clear?: boolean;
|
|
35
|
-
defaults: NuxtConfig;
|
|
36
|
-
overrides: NuxtConfig;
|
|
37
|
-
loadingTemplate?: ({ loading }: {
|
|
38
|
-
loading: string;
|
|
39
|
-
}) => string;
|
|
40
|
-
devContext: Pick<NuxtDevContext, 'proxy'>;
|
|
41
|
-
}
|
|
42
|
-
interface DevServerEventMap {
|
|
43
|
-
'loading:error': [error: Error];
|
|
44
|
-
'loading': [loadingMessage: string];
|
|
45
|
-
'ready': [address: string];
|
|
46
|
-
'restart': [];
|
|
47
|
-
}
|
|
48
|
-
declare class NuxtDevServer extends EventEmitter<DevServerEventMap> {
|
|
49
|
-
private options;
|
|
50
|
-
private _handler?;
|
|
51
|
-
private _distWatcher?;
|
|
52
|
-
private _configWatcher?;
|
|
53
|
-
private _currentNuxt?;
|
|
54
|
-
private _loadingMessage?;
|
|
55
|
-
private _loadingError?;
|
|
56
|
-
private _fileChangeTracker;
|
|
57
|
-
private cwd;
|
|
58
|
-
loadDebounced: (reload?: boolean, reason?: string) => void;
|
|
59
|
-
handler: RequestListener;
|
|
60
|
-
listener: Pick<Listener, 'server' | 'getURLs' | 'https' | 'url' | 'close'> & {
|
|
61
|
-
_url?: string;
|
|
62
|
-
address: Omit<AddressInfo, 'family'> & {
|
|
63
|
-
socketPath: string;
|
|
64
|
-
} | AddressInfo;
|
|
65
|
-
};
|
|
66
|
-
constructor(options: NuxtDevServerOptions);
|
|
67
|
-
_renderError(req: IncomingMessage, res: ServerResponse): void;
|
|
68
|
-
_renderLoadingScreen(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
69
|
-
init(): Promise<void>;
|
|
70
|
-
closeWatchers(): void;
|
|
71
|
-
load(reload?: boolean, reason?: string): Promise<void>;
|
|
72
|
-
close(): Promise<void>;
|
|
73
|
-
_load(reload?: boolean, reason?: string): Promise<void>;
|
|
74
|
-
_watchConfig(): void;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
interface InitializeOptions {
|
|
78
|
-
data?: {
|
|
79
|
-
overrides?: NuxtConfig;
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
declare function initialize(devContext: NuxtDevContext, ctx?: InitializeOptions, _listenOptions?: true | Partial<ListenOptions>): Promise<{
|
|
83
|
-
listener: Pick<listhen.Listener, "https" | "server" | "url" | "getURLs" | "close"> & {
|
|
84
|
-
_url?: string;
|
|
85
|
-
address: (Omit<net.AddressInfo, "family"> & {
|
|
86
|
-
socketPath: string;
|
|
87
|
-
}) | net.AddressInfo;
|
|
88
|
-
};
|
|
89
|
-
close: () => Promise<void>;
|
|
90
|
-
onReady: (callback: (address: string) => void) => void;
|
|
91
|
-
onRestart: (callback: (devServer: NuxtDevServer) => void) => void;
|
|
92
|
-
}>;
|
|
93
|
-
|
|
94
|
-
export { initialize };
|