Skip to content

Commit a6af096

Browse files
committed
update vite
1 parent dc16ad6 commit a6af096

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@
120120
"svelte": "^3.37.0",
121121
"ts-node": "^10.0.0",
122122
"typescript": "^4.5.2",
123-
"vite": "~2.6.12",
124123
"vite-plugin-svelte-md": "^0.1.3",
125124
"vue-eslint-editor": "^1.1.0",
126125
"vue-eslint-parser": "^8.0.0",

svelte.config.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
/* !! This project can't be ESM yet, so hack it to get sveltekit to work. !! */
44
const esbuild = require("esbuild")
55
const path = require("path")
6+
const babelCore = require("@babel/core")
7+
const pirates = require("pirates")
68

9+
/* Build config */
710
esbuild.buildSync({
811
entryPoints: [require.resolve("./svelte.config.esm.mjs")],
912
outfile: path.join(__dirname, "./svelte.config-dist.js"),
@@ -16,12 +19,70 @@ esbuild.buildSync({
1619
"./docs-svelte-kit/build-system/build.js",
1720
],
1821
})
22+
23+
/* transpile */
1924
const { register } = require("esbuild-register/dist/node")
2025
register({
2126
format: "cjs",
2227
extensions: [".js", ".mjs", ".cjs", ".ts"],
2328
})
2429

30+
/** transform '@sveltejs/kit/ssr' path */
31+
pirates.addHook(transformImportSsr, {
32+
exts: [".js", ".mjs"],
33+
})
34+
35+
function transformImportSsr(code, _filename) {
36+
if (code.includes("@sveltejs/kit/ssr")) {
37+
const resolvedPath = require.resolve(
38+
"./node_modules/@sveltejs/kit/dist/ssr",
39+
)
40+
let transformed = false
41+
const newCode = babelCore.transformSync(code, {
42+
babelrc: false,
43+
plugins: [
44+
{
45+
visitor: {
46+
CallExpression(path) {
47+
const callee = path.get("callee")
48+
if (
49+
callee.type !== "Identifier" ||
50+
callee.node.name !== "require"
51+
) {
52+
return
53+
}
54+
const args = path.get("arguments")
55+
if (args.length !== 1) {
56+
return
57+
}
58+
const arg = args[0]
59+
if (
60+
arg.type === "StringLiteral" &&
61+
arg.node.value === "@sveltejs/kit/ssr"
62+
) {
63+
arg.node.value = resolvedPath
64+
transformed = true
65+
}
66+
},
67+
ImportDeclaration(path) {
68+
if (path.node.source.value === "@sveltejs/kit/ssr") {
69+
path.node.source.value = resolvedPath
70+
transformed = true
71+
}
72+
},
73+
},
74+
},
75+
],
76+
})
77+
if (!transformed) {
78+
return code
79+
}
80+
return `${newCode.code}`
81+
}
82+
83+
return code
84+
}
85+
2586
/* eslint node/no-missing-require: 0 -- ignore */
2687
const config = require("./svelte.config-dist.js").default
2788

0 commit comments

Comments
 (0)