Fix npm install (#1407)

This commit is contained in:
Drew Powers 2021-09-21 13:58:47 -06:00 committed by Matthew Phillips
parent 91cb38f451
commit 15bef35226
5 changed files with 60 additions and 58 deletions

View file

@ -48,7 +48,7 @@
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.18.0",
"autoprefixer": "^10.2.6",
"cheerio": "^1.0.0-rc.6",
"cheerio": "^1.0.0-rc.10",
"cheerio-select-tmp": "^0.1.1",
"del": "^6.0.0",
"esbuild": "^0.11.17",

View file

@ -45,6 +45,7 @@
"@types/rimraf": "^3.0.2",
"@web/rollup-plugin-html": "^1.9.1",
"astring": "^1.7.5",
"cheerio": "^1.0.0-rc.10",
"ci-info": "^3.2.0",
"connect": "^3.7.0",
"es-module-lexer": "^0.7.1",

View file

@ -1,4 +1,4 @@
import '/@vite/client';
import '@vite/client';
if (import.meta.hot) {
const parser = new DOMParser();

View file

@ -169,66 +169,67 @@ export async function ssr({ astroConfig, filePath, logging, mode, origin, pathna
pageProps = { ...matchedStaticPath.props } || {};
}
// 3. render page
if (!browserHash && (viteServer as any)._optimizeDepsMetadata?.browserHash) browserHash = (viteServer as any)._optimizeDepsMetadata.browserHash; // note: this is "private" and may change over time
const fullURL = new URL(pathname, origin);
// 3. render page
if (!browserHash && (viteServer as any)._optimizeDepsMetadata?.browserHash) browserHash = (viteServer as any)._optimizeDepsMetadata.browserHash; // note: this is "private" and may change over time
const fullURL = new URL(pathname, origin);
const Component = await mod.default;
const ext = path.posix.extname(filePath.pathname);
if (!Component)
throw new Error(`Expected an exported Astro component but received typeof ${typeof Component}`);
if (!Component.isAstroComponentFactory) throw new Error(`Unable to SSR non-Astro component (${route?.component})`);
const Component = await mod.default;
const ext = path.posix.extname(filePath.pathname);
if (!Component) throw new Error(`Expected an exported Astro component but received typeof ${typeof Component}`);
const result = {
styles: new Set(),
scripts: new Set(),
/** This function returns the `Astro` faux-global */
createAstro: (props: any) => {
const site = new URL(origin);
const url = new URL('.' + pathname, site);
const canonicalURL = getCanonicalURL(pathname, astroConfig.buildOptions.site || origin)
const fetchContent = createFetchContent(fileURLToPath(filePath));
return {
isPage: true,
site,
request: { url, canonicalURL },
props,
fetchContent
if (!Component.isAstroComponentFactory) throw new Error(`Unable to SSR non-Astro component (${route?.component})`);
const result = {
styles: new Set(),
scripts: new Set(),
/** This function returns the `Astro` faux-global */
createAstro: (props: any) => {
const site = new URL(origin);
const url = new URL('.' + pathname, site);
const canonicalURL = getCanonicalURL(pathname, astroConfig.buildOptions.site || origin);
const fetchContent = createFetchContent(fileURLToPath(filePath));
return {
isPage: true,
site,
request: { url, canonicalURL },
props,
fetchContent,
};
},
_metadata: { importedModules, renderers },
};
const createFetchContent = (currentFilePath: string) => {
const fetchContentCache = new Map<string, any>();
return async (pattern: string) => {
const cwd = path.dirname(currentFilePath);
const cacheKey = `${cwd}:${pattern}`;
if (fetchContentCache.has(cacheKey)) {
return fetchContentCache.get(cacheKey);
}
const files = await glob(pattern, { cwd, absolute: true });
const contents = await Promise.all(
files.map(async (file) => {
const { metadata: astro = {}, frontmatter = {} } = (await viteServer.ssrLoadModule(file)) as any;
return { ...frontmatter, astro };
})
);
fetchContentCache.set(cacheKey, contents);
return contents;
};
},
_metadata: { importedModules, renderers },
}
};
const createFetchContent = (currentFilePath: string) => {
const fetchContentCache = new Map<string, any>();
return async (pattern: string) => {
const cwd = path.dirname(currentFilePath);
const cacheKey = `${cwd}:${pattern}`;
if (fetchContentCache.has(cacheKey)) {
return fetchContentCache.get(cacheKey);
}
const files = await glob(pattern, { cwd, absolute: true });
const contents = await Promise.all(files.map(async file => {
const { metadata: astro = {}, frontmatter = {} } = (await viteServer.ssrLoadModule(file)) as any;
return { ...frontmatter, astro };
}))
fetchContentCache.set(cacheKey, contents);
return contents;
let html = await renderPage(result, Component, {}, null);
// 4. modify response
if (mode === 'development') {
// inject Astro HMR code
html = injectAstroHMR(html);
// inject Vite HMR code
html = injectViteClient(html);
// replace client hydration scripts
html = resolveNpmImports(html);
}
}
let html = await renderPage(result, Component, {}, null);
// 4. modify response
if (mode === 'development') {
// inject Astro HMR code
html = injectAstroHMR(html);
// inject Vite HMR code
html = injectViteClient(html);
// replace client hydration scripts
html = resolveNpmImports(html);
}
// 5. finish
return html;

View file

@ -3389,7 +3389,7 @@ cheerio-select@^1.5.0:
domhandler "^4.2.0"
domutils "^2.7.0"
cheerio@^1.0.0-rc.6, cheerio@~1.0.0-rc.3:
cheerio@^1.0.0-rc.10, cheerio@~1.0.0-rc.3:
version "1.0.0-rc.10"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e"
integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==