Fix astro check failure on first try (#8287)

This commit is contained in:
Matthew Phillips 2023-08-30 10:08:06 -04:00 committed by GitHub
parent a0955f769f
commit 1d2389cb6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 24 deletions

View file

@ -0,0 +1,7 @@
---
'astro': patch
---
Prevent astro check cache issues
`astro check` hits cache issues in 3.0 causing it never to work on the first try.

View file

@ -159,6 +159,7 @@
"preferred-pm": "^3.0.3",
"prompts": "^2.4.2",
"rehype": "^12.0.1",
"resolve": "^1.22.4",
"semver": "^7.5.4",
"server-destroy": "^1.0.1",
"sharp": "^0.32.5",
@ -195,6 +196,7 @@
"@types/mime": "^3.0.1",
"@types/mocha": "^10.0.1",
"@types/prompts": "^2.4.4",
"@types/resolve": "^1.20.2",
"@types/send": "^0.17.1",
"@types/server-destroy": "^1.0.1",
"@types/unist": "^2.0.7",

View file

@ -1,9 +1,9 @@
import boxen from 'boxen';
import { execa } from 'execa';
import { bold, cyan, dim, magenta } from 'kleur/colors';
import { createRequire } from 'node:module';
import ora from 'ora';
import prompts from 'prompts';
import resolvePackage from 'resolve';
import whichPm from 'which-pm';
import { type Logger } from '../core/logger/core.js';
@ -18,11 +18,9 @@ export async function getPackage<T>(
options: GetPackageOptions,
otherDeps: string[] = []
): Promise<T | undefined> {
const require = createRequire(options.cwd ?? process.cwd());
let packageImport;
try {
require.resolve(packageName, { paths: [options.cwd ?? process.cwd()] });
await tryResolve(packageName, options.cwd ?? process.cwd());
// The `require.resolve` is required as to avoid Node caching the failed `import`
packageImport = await import(packageName);
@ -43,6 +41,20 @@ export async function getPackage<T>(
return packageImport as T;
}
function tryResolve(packageName: string, cwd: string) {
return new Promise((resolve, reject) => {
resolvePackage(packageName, {
basedir: cwd,
}, (err) => {
if(err) {
reject(err);
} else {
resolve(0);
}
});
});
}
function getInstallCommand(packages: string[], packageManager: string) {
switch (packageManager) {
case 'npm':

View file

@ -602,6 +602,9 @@ importers:
rehype:
specifier: ^12.0.1
version: 12.0.1
resolve:
specifier: ^1.22.4
version: 1.22.4
semver:
specifier: ^7.5.4
version: 7.5.4
@ -705,6 +708,9 @@ importers:
'@types/prompts':
specifier: ^2.4.4
version: 2.4.4
'@types/resolve':
specifier: ^1.20.2
version: 1.20.2
'@types/send':
specifier: ^0.17.1
version: 0.17.1
@ -8364,7 +8370,7 @@ packages:
babel-plugin-transform-hook-names: 1.0.2
debug: 4.3.4(supports-color@8.1.1)
kolorist: 1.8.0
resolve: 1.22.2
resolve: 1.22.4
transitivePeerDependencies:
- preact
- supports-color
@ -12470,16 +12476,10 @@ packages:
ci-info: 3.8.0
dev: true
/is-core-module@2.12.0:
resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
dependencies:
has: 1.0.3
/is-core-module@2.13.0:
resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
dependencies:
has: 1.0.3
dev: false
/is-date-object@1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
@ -14286,7 +14286,7 @@ packages:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
hosted-git-info: 2.8.9
resolve: 1.22.2
resolve: 1.22.4
semver: 5.7.2
validate-npm-package-license: 3.0.4
dev: true
@ -14888,7 +14888,7 @@ packages:
postcss: 8.4.28
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.2
resolve: 1.22.4
/postcss-initial@4.0.1(postcss@8.4.28):
resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==}
@ -15705,14 +15705,6 @@ packages:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
/resolve@1.22.2:
resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
hasBin: true
dependencies:
is-core-module: 2.12.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
/resolve@1.22.4:
resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==}
hasBin: true
@ -15720,7 +15712,6 @@ packages:
is-core-module: 2.13.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: false
/restore-cursor@4.0.0:
resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
@ -16603,7 +16594,7 @@ packages:
postcss-load-config: 4.0.1(postcss@8.4.28)
postcss-nested: 6.0.1(postcss@8.4.28)
postcss-selector-parser: 6.0.13
resolve: 1.22.2
resolve: 1.22.4
sucrase: 3.32.0
transitivePeerDependencies:
- ts-node
@ -16830,7 +16821,7 @@ packages:
'@types/json5': 0.0.30
'@types/resolve': 1.20.2
json5: 2.2.3
resolve: 1.22.2
resolve: 1.22.4
strip-bom: 4.0.0
type-fest: 3.0.0