astro 0.23.1 → 0.23.2
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/core/create-vite.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { builtinModules } from "module";
|
|
2
2
|
import { fileURLToPath } from "url";
|
|
3
|
+
import fs from "fs";
|
|
3
4
|
import * as vite from "vite";
|
|
4
5
|
import astroVitePlugin from "../vite-plugin-astro/index.js";
|
|
5
6
|
import astroViteServerPlugin from "../vite-plugin-astro-server/index.js";
|
|
@@ -25,6 +26,7 @@ const ALWAYS_NOEXTERNAL = new Set([
|
|
|
25
26
|
"astro"
|
|
26
27
|
]);
|
|
27
28
|
async function createVite(inlineConfig, { astroConfig, logging, mode }) {
|
|
29
|
+
const astroPackages = await getAstroPackages(astroConfig);
|
|
28
30
|
let viteConfig = {
|
|
29
31
|
cacheDir: fileURLToPath(new URL("./node_modules/.vite/", astroConfig.projectRoot)),
|
|
30
32
|
clearScreen: false,
|
|
@@ -51,7 +53,7 @@ async function createVite(inlineConfig, { astroConfig, logging, mode }) {
|
|
|
51
53
|
},
|
|
52
54
|
ssr: {
|
|
53
55
|
external: [...ALWAYS_EXTERNAL],
|
|
54
|
-
noExternal: [...ALWAYS_NOEXTERNAL]
|
|
56
|
+
noExternal: [...ALWAYS_NOEXTERNAL, ...astroPackages]
|
|
55
57
|
}
|
|
56
58
|
};
|
|
57
59
|
for (const name of astroConfig.renderers) {
|
|
@@ -73,7 +75,73 @@ async function createVite(inlineConfig, { astroConfig, logging, mode }) {
|
|
|
73
75
|
viteConfig = vite.mergeConfig(viteConfig, inlineConfig);
|
|
74
76
|
return viteConfig;
|
|
75
77
|
}
|
|
78
|
+
async function getAstroPackages({ projectRoot }) {
|
|
79
|
+
const pkgUrl = new URL("./package.json", projectRoot);
|
|
80
|
+
const pkgPath = fileURLToPath(pkgUrl);
|
|
81
|
+
if (!fs.existsSync(pkgPath))
|
|
82
|
+
return [];
|
|
83
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
84
|
+
const deps = [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})];
|
|
85
|
+
return deps.filter((dep) => {
|
|
86
|
+
if (isCommonNotAstro(dep))
|
|
87
|
+
return false;
|
|
88
|
+
if (/^astro\-/.test(dep))
|
|
89
|
+
return true;
|
|
90
|
+
const depPkgUrl = new URL(`./node_modules/${dep}/package.json`, projectRoot);
|
|
91
|
+
const depPkgPath = fileURLToPath(depPkgUrl);
|
|
92
|
+
if (!fs.existsSync(depPkgPath))
|
|
93
|
+
return false;
|
|
94
|
+
const { dependencies = {}, peerDependencies = {}, keywords = [] } = JSON.parse(fs.readFileSync(depPkgPath, "utf-8"));
|
|
95
|
+
if (peerDependencies.astro || dependencies.astro)
|
|
96
|
+
return true;
|
|
97
|
+
if (keywords.includes("astro") || keywords.includes("astro-component"))
|
|
98
|
+
return true;
|
|
99
|
+
return false;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
const COMMON_DEPENDENCIES_NOT_ASTRO = [
|
|
103
|
+
"autoprefixer",
|
|
104
|
+
"react",
|
|
105
|
+
"react-dom",
|
|
106
|
+
"preact",
|
|
107
|
+
"preact-render-to-string",
|
|
108
|
+
"vue",
|
|
109
|
+
"svelte",
|
|
110
|
+
"solid-js",
|
|
111
|
+
"lit",
|
|
112
|
+
"cookie",
|
|
113
|
+
"dotenv",
|
|
114
|
+
"esbuild",
|
|
115
|
+
"eslint",
|
|
116
|
+
"jest",
|
|
117
|
+
"postcss",
|
|
118
|
+
"prettier",
|
|
119
|
+
"astro",
|
|
120
|
+
"tslib",
|
|
121
|
+
"typescript",
|
|
122
|
+
"vite"
|
|
123
|
+
];
|
|
124
|
+
const COMMON_PREFIXES_NOT_ASTRO = [
|
|
125
|
+
"@webcomponents/",
|
|
126
|
+
"@fontsource/",
|
|
127
|
+
"@postcss-plugins/",
|
|
128
|
+
"@rollup/",
|
|
129
|
+
"@astrojs/renderer-",
|
|
130
|
+
"@types/",
|
|
131
|
+
"@typescript-eslint/",
|
|
132
|
+
"eslint-",
|
|
133
|
+
"jest-",
|
|
134
|
+
"postcss-plugin-",
|
|
135
|
+
"prettier-plugin-",
|
|
136
|
+
"remark-",
|
|
137
|
+
"rehype-",
|
|
138
|
+
"rollup-plugin-",
|
|
139
|
+
"vite-plugin-"
|
|
140
|
+
];
|
|
141
|
+
function isCommonNotAstro(dep) {
|
|
142
|
+
return COMMON_DEPENDENCIES_NOT_ASTRO.includes(dep) || COMMON_PREFIXES_NOT_ASTRO.some((prefix) => prefix.startsWith("@") ? dep.startsWith(prefix) : dep.substring(dep.lastIndexOf("/") + 1).startsWith(prefix));
|
|
143
|
+
}
|
|
76
144
|
export {
|
|
77
145
|
createVite
|
|
78
146
|
};
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvcmUvY3JlYXRlLXZpdGUudHMiXSwKICAibWFwcGluZ3MiOiAiQUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQSxNQUFNLGtCQUFrQixJQUFJLElBQUk7QUFBQSxFQUMvQixHQUFHLGVBQWUsSUFBSSxDQUFDLFNBQVMsUUFBUTtBQUFBLEVBQ3hDO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUVELE1BQU0sb0JBQW9CLElBQUksSUFBSTtBQUFBLEVBQ2pDO0FBQUE7QUFhRCwwQkFBaUMsY0FBaUMsRUFBRSxhQUFhLFNBQVMsUUFBdUQ7QUFFaEosUUFBTSxnQkFBZ0IsTUFBTSxpQkFBaUI7QUFHN0MsTUFBSSxhQUFnQztBQUFBLElBQ25DLFVBQVUsY0FBYyxJQUFJLElBQUkseUJBQXlCLFlBQVk7QUFBQSxJQUNyRSxhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsTUFDYixTQUFTLENBQUM7QUFBQTtBQUFBLElBRVgsU0FBUztBQUFBLE1BQ1Isc0JBQXNCLEVBQUUsUUFBUTtBQUFBLE1BQ2hDLGdCQUFnQixFQUFFLFFBQVEsYUFBYTtBQUFBLE1BR3ZDLFNBQVMsU0FBUyxzQkFBc0IsRUFBRSxRQUFRLGFBQWE7QUFBQSxNQUMvRCxjQUFjLEVBQUUsUUFBUTtBQUFBLE1BQ3hCLG1CQUFtQixFQUFFLFFBQVE7QUFBQSxNQUM3QixjQUFjLEVBQUUsUUFBUSxhQUFhO0FBQUEsTUFDckMsMkJBQTJCLEVBQUUsUUFBUTtBQUFBO0FBQUEsSUFFdEMsV0FBVyxjQUFjLFlBQVk7QUFBQSxJQUNyQyxNQUFNLGNBQWMsWUFBWTtBQUFBLElBQ2hDLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLEtBQUssUUFB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
|
|
@@ -150,7 +150,9 @@ export interface AstroUserConfig {
|
|
|
150
150
|
trailingSlash?: 'always' | 'never' | 'ignore';
|
|
151
151
|
};
|
|
152
152
|
/** Pass configuration options to Vite */
|
|
153
|
-
vite?: vite.InlineConfig
|
|
153
|
+
vite?: vite.InlineConfig & {
|
|
154
|
+
ssr?: vite.SSROptions;
|
|
155
|
+
};
|
|
154
156
|
}
|
|
155
157
|
/**
|
|
156
158
|
* Resolved Astro Config
|
|
@@ -2,10 +2,7 @@ import type { AstroConfig } from '../@types/astro';
|
|
|
2
2
|
import type { LogOptions } from './logger';
|
|
3
3
|
import * as vite from 'vite';
|
|
4
4
|
export declare type ViteConfigWithSSR = vite.InlineConfig & {
|
|
5
|
-
ssr?:
|
|
6
|
-
external?: string[];
|
|
7
|
-
noExternal?: string[];
|
|
8
|
-
};
|
|
5
|
+
ssr?: vite.SSROptions;
|
|
9
6
|
};
|
|
10
7
|
interface CreateViteOptions {
|
|
11
8
|
astroConfig: AstroConfig;
|
|
@@ -2,6 +2,12 @@ import fs from "fs";
|
|
|
2
2
|
import { fileURLToPath } from "url";
|
|
3
3
|
import { transform } from "@astrojs/compiler";
|
|
4
4
|
import { transformWithVite } from "./styles.js";
|
|
5
|
+
function createImportPlaceholder(spec) {
|
|
6
|
+
return `/*IMPORT:${spec}*/`;
|
|
7
|
+
}
|
|
8
|
+
function safelyReplaceImportPlaceholder(code) {
|
|
9
|
+
return code.replace(/\/\*IMPORT\:(.*?)\*\//g, `@import '$1';`);
|
|
10
|
+
}
|
|
5
11
|
const configCache = new WeakMap();
|
|
6
12
|
async function compile(config, filename, source, viteTransform, opts) {
|
|
7
13
|
const filenameURL = new URL(`file://${filename}`);
|
|
@@ -23,9 +29,13 @@ async function compile(config, filename, source, viteTransform, opts) {
|
|
|
23
29
|
const lang = `.${(attrs == null ? void 0 : attrs.lang) || "css"}`.toLowerCase();
|
|
24
30
|
try {
|
|
25
31
|
if (config.buildOptions.experimentalStaticBuild) {
|
|
26
|
-
value.replace(/(?:@import)\s(?:url\()?\s?["\'](.*?)["\']\s?\)?(?:[^;]*);?/gi, (match, spec) => {
|
|
32
|
+
value = value.replace(/(?:@import)\s(?:url\()?\s?["\'](.*?)["\']\s?\)?(?:[^;]*);?/gi, (match, spec) => {
|
|
27
33
|
rawCSSDeps.add(spec);
|
|
28
|
-
|
|
34
|
+
if (lang === ".css") {
|
|
35
|
+
return createImportPlaceholder(spec);
|
|
36
|
+
} else {
|
|
37
|
+
return match;
|
|
38
|
+
}
|
|
29
39
|
});
|
|
30
40
|
}
|
|
31
41
|
const result = await transformWithVite({
|
|
@@ -45,7 +55,7 @@ async function compile(config, filename, source, viteTransform, opts) {
|
|
|
45
55
|
map = result.map.toString();
|
|
46
56
|
}
|
|
47
57
|
}
|
|
48
|
-
const code = result.code;
|
|
58
|
+
const code = safelyReplaceImportPlaceholder(result.code);
|
|
49
59
|
return { code, map };
|
|
50
60
|
} catch (err) {
|
|
51
61
|
cssTransformError = err;
|
|
@@ -95,4 +105,4 @@ export {
|
|
|
95
105
|
invalidateCompilation,
|
|
96
106
|
isCached
|
|
97
107
|
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3ZpdGUtcGx1Z2luLWFzdHJvL2NvbXBpbGUudHMiXSwKICAibWFwcGluZ3MiOiAiQUFLQTtBQUNBO0FBQ0E7QUFDQTtBQWNBLGlDQUFpQyxNQUFjO0FBSTlDLFNBQU8sWUFBWTtBQUFBO0FBRXBCLHdDQUF3QyxNQUFjO0FBQ3JELFNBQU8sS0FBSyxRQUFRLDBCQUEwQjtBQUFBO0FBRy9DLE1BQU0sY0FBYyxJQUFJO0FBRXhCLHVCQUF1QixRQUFxQixVQUFrQixRQUFnQixlQUE4QixNQUFnRDtBQUczSixRQUFNLGNBQWMsSUFBSSxJQUFJLFVBQVU7QUFDdEMsUUFBTSxlQUFlLGNBQWM7QUFDbkMsUUFBTSxTQUFTLGFBQWEsV0FBVyxjQUFjLE9BQU8sV0FBVyxhQUFhLFdBQVcsY0FBYyxPQUFPO0FBQ3BILFFBQU0sV0FBVyxZQUFZLFNBQVMsT0FBTyxPQUFPLFlBQVksU0FBUyxTQUFTO0FBRWxGLE1BQUksYUFBYSxJQUFJO0FBQ3JCLE1BQUk7QUFLSixRQUFNLGtCQUFrQixNQUFNLFVBQVUsUUFBUTtBQUFBLElBQy9DLElBQUksU0FBUyxhQUFhO0FBQUEsSUFDMUI7QUFBQSxJQUNBLGFBQWEsT0FBTyxZQUFZO0FBQUEsSUFDaEMsTUFBTSxPQUFPLGFBQWE7QUFBQSxJQUMxQixZQUFZO0FBQUEsSUFDWixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYiw4QkFBOEIsT0FBTyxhQUFhO0FBQUEsSUFFbEQsaUJBQWlCLE9BQU8sT0FBZSxVQUFrQztBQUN4RSxZQUFNLE9BQU8sSUFBSSxnQ0FBTyxTQUFRLFFBQVE7QUFFeEMsVUFBSTtBQUVILFlBQUksT0FBTyxhQUFhLHlCQUF5QjtBQUNoRCxrQkFBUSxNQUFNLFFBQVEsZ0VBQWdFLENBQUMsT0FBTyxTQUFTO0FBQ3RHLHVCQUFXLElBQUk7QUFHZixnQkFBSSxTQUFTLFFBQVE7QUFDcEIscUJBQU8sd0JBQXdCO0FBQUEsbUJBQ3pCO0FBQ04scUJBQU87QUFBQTtBQUFBO0FBQUE7QUFLVixjQUFNLFNBQVMsTUFBTSxrQkFBa0I7QUFBQSxVQUN0QztBQUFBLFVBQ0E7QUFBQSxVQUNBLElBQUk7QUFBQSxVQUNKLGVBQWU7QUFBQSxVQUNmLEtBQUssS0FBSztBQUFBO0FBR1gsWUFBSTtBQUNKLFlBQUksQ0FBQztBQUFRLGlCQUFPO0FBQ3BCLFlBQUksT0FBTyxLQUFLO0FBQ2YsY0FBSSxPQUFPLE9BQU8sUUFBUSxVQUFVO0FBQ25DLGtCQUFNLE9BQU87QUFBQSxxQkFDSCxPQUFPLElBQUksVUFBVTtBQUMvQixrQkFBTSxPQUFPLElBQUk7QUFBQTtBQUFBO0FBR25CLGNBQU0sT0FBTywrQkFBK0IsT0FBTztBQUNuRCxlQUFPLEVBQUUsTUFBTTtBQUFBLGVBQ1AsS0FBUDtBQUVELDRCQUFvQjtBQUNwQixlQUFPO0FBQUE7QUFBQTtBQUFBO0FBTVYsTUFBSTtBQUFtQixVQUFNO0FBRTdCLFFBQU0sZ0JBQStCLE9BQU8sT0FBTyxpQkFBaUI7QUFBQSxJQUNuRSxZQUFZO0FBQUEsTUFDWCxPQUFPO0FBQUE7QUFBQTtBQUlULFNBQU87QUFBQTtBQUdELGtCQUFrQixRQUFxQixVQUFrQjtBQUMvRCxTQUFPLFlBQVksSUFBSSxXQUFXLFlBQVksSUFBSSxRQUFTLElBQUk7QUFBQTtBQUd6RCwrQkFBK0IsUUFBcUIsVUFBa0I7QUFDNUUsTUFBSSxZQUFZLElBQUksU0FBUztBQUM1QixVQUFNLFFBQVEsWUFBWSxJQUFJO0FBQzlCLFVBQU0sT0FBTztBQUFBO0FBQUE7QUFJZixpQ0FDQyxRQUNBLFVBQ0EsUUFDQSxlQUNBLE1BQ3lCO0FBQ3pCLE1BQUk7QUFDSixNQUFJLENBQUMsWUFBWSxJQUFJLFNBQVM7QUFDN0IsWUFBUSxJQUFJO0FBQ1osZ0JBQVksSUFBSSxRQUFRO0FBQUEsU0FDbEI7QUFDTixZQUFRLFlBQVksSUFBSTtBQUFBO0FBRXpCLE1BQUksTUFBTSxJQUFJLFdBQVc7QUFDeEIsV0FBTyxNQUFNLElBQUk7QUFBQTtBQUdsQixNQUFJLFdBQVcsTUFBTTtBQUNwQixVQUFNLFVBQVUsSUFBSSxJQUFJLFVBQVU7QUFDbEMsYUFBUyxNQUFNLEdBQUcsU0FBUyxTQUFTLFNBQVM7QUFBQTtBQUU5QyxRQUFNLGdCQUFnQixNQUFNLFFBQVEsUUFBUSxVQUFVLFFBQVEsZUFBZTtBQUM3RSxRQUFNLElBQUksVUFBVTtBQUNwQixTQUFPO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|