@marko/vite 2.2.5 → 2.2.8
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/index.js +31 -34
- package/dist/index.mjs +31 -34
- package/dist/render-assets-transform.js +1 -1
- package/dist/render-assets-transform.mjs +1 -1
- package/package.json +30 -22
package/dist/index.js
CHANGED
|
@@ -55,6 +55,7 @@ var import_url = require("url");
|
|
|
55
55
|
var import_server_entry_template = __toESM(require("./server-entry-template"));
|
|
56
56
|
var import_manifest_generator = require("./manifest-generator");
|
|
57
57
|
const import_meta = {};
|
|
58
|
+
const normalizePath = import_path.default.sep === "\\" ? (id) => id.replace(/\\/g, "/") : (id) => id;
|
|
58
59
|
const virtualFiles = /* @__PURE__ */ new Map();
|
|
59
60
|
const queryReg = /\?marko-.+$/;
|
|
60
61
|
const browserEntryQuery = "?marko-browser-entry";
|
|
@@ -89,8 +90,8 @@ function markoPlugin(opts = {}) {
|
|
|
89
90
|
});
|
|
90
91
|
const domConfig = __spreadProps(__spreadValues({}, baseConfig), {
|
|
91
92
|
resolveVirtualDependency(from, dep) {
|
|
92
|
-
const query = `${virtualFileQuery}&id=${dep.virtualPath}`;
|
|
93
|
-
const id = from + query;
|
|
93
|
+
const query = `${virtualFileQuery}&id=${encodeURIComponent(dep.virtualPath)}`;
|
|
94
|
+
const id = normalizePath(from) + query;
|
|
94
95
|
if (devServer) {
|
|
95
96
|
const prev = virtualFiles.get(id);
|
|
96
97
|
if (prev && prev.code !== dep.code) {
|
|
@@ -106,6 +107,7 @@ function markoPlugin(opts = {}) {
|
|
|
106
107
|
output: "hydrate"
|
|
107
108
|
});
|
|
108
109
|
let root;
|
|
110
|
+
let devEntryFile;
|
|
109
111
|
let isBuild = false;
|
|
110
112
|
let isSSRBuild = false;
|
|
111
113
|
let devServer;
|
|
@@ -119,12 +121,13 @@ function markoPlugin(opts = {}) {
|
|
|
119
121
|
enforce: "pre",
|
|
120
122
|
async config(config, env) {
|
|
121
123
|
compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
|
|
122
|
-
root = config.root || process.cwd();
|
|
124
|
+
root = normalizePath(config.root || process.cwd());
|
|
125
|
+
devEntryFile = import_path.default.join(root, "index.html");
|
|
123
126
|
isBuild = env.command === "build";
|
|
124
127
|
isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
|
|
125
128
|
if (!registeredTag) {
|
|
126
129
|
const transformer = import_path.default.resolve(thisFile, "../render-assets-transform");
|
|
127
|
-
registeredTag = import_path.default.resolve(thisFile, "../components", isBuild ? "vite.marko" : "vite-watch.marko");
|
|
130
|
+
registeredTag = normalizePath(import_path.default.resolve(thisFile, "../components", isBuild ? "vite.marko" : "vite-watch.marko"));
|
|
128
131
|
compiler.taglib.register("@marko/vite", {
|
|
129
132
|
"<_vite>": { template: registeredTag },
|
|
130
133
|
"<head>": { transformer },
|
|
@@ -210,14 +213,14 @@ function markoPlugin(opts = {}) {
|
|
|
210
213
|
let importeeQuery = getMarkoQuery(importee);
|
|
211
214
|
if (importeeQuery) {
|
|
212
215
|
importee = importee.slice(0, -importeeQuery.length);
|
|
213
|
-
} else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
216
|
+
} else if (ssr && linked && importer && importer !== devEntryFile && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
214
217
|
importeeQuery = serverEntryQuery;
|
|
215
218
|
} else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
|
|
216
219
|
importeeQuery = browserEntryQuery;
|
|
217
220
|
}
|
|
218
221
|
if (importeeQuery) {
|
|
219
222
|
const resolved = importee[0] === "." ? {
|
|
220
|
-
id: importer ? import_path.default.resolve(importer, "..", importee) : import_path.default.resolve(root, importee)
|
|
223
|
+
id: normalizePath(importer ? import_path.default.resolve(importer, "..", importee) : import_path.default.resolve(root, importee))
|
|
221
224
|
} : await this.resolve(importee, importer, resolveOpts);
|
|
222
225
|
if (resolved) {
|
|
223
226
|
resolved.id += importeeQuery;
|
|
@@ -227,36 +230,30 @@ function markoPlugin(opts = {}) {
|
|
|
227
230
|
return null;
|
|
228
231
|
},
|
|
229
232
|
async load(id) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
const relativeFileName = import_path.default.relative(root, fileName);
|
|
241
|
-
const entryId = toEntryId(relativeFileName);
|
|
242
|
-
serverManifest ?? (serverManifest = {
|
|
243
|
-
entries: {},
|
|
244
|
-
chunksNeedingAssets: []
|
|
245
|
-
});
|
|
246
|
-
serverManifest.entries[entryId] = relativeFileName;
|
|
247
|
-
entryData = JSON.stringify(entryId);
|
|
248
|
-
} else {
|
|
249
|
-
entryData = JSON.stringify(await (0, import_manifest_generator.generateDocManifest)(await devServer.transformIndexHtml("/", (0, import_manifest_generator.generateInputDoc)(fileNameToURL(fileName, root)))));
|
|
250
|
-
}
|
|
251
|
-
return (0, import_server_entry_template.default)({
|
|
252
|
-
fileName,
|
|
253
|
-
entryData,
|
|
254
|
-
runtimeId
|
|
233
|
+
switch (getMarkoQuery(id)) {
|
|
234
|
+
case serverEntryQuery: {
|
|
235
|
+
const fileName = id.slice(0, -serverEntryQuery.length);
|
|
236
|
+
let entryData;
|
|
237
|
+
if (isBuild) {
|
|
238
|
+
const relativeFileName = import_path.default.posix.relative(root, fileName);
|
|
239
|
+
const entryId = toEntryId(relativeFileName);
|
|
240
|
+
serverManifest ?? (serverManifest = {
|
|
241
|
+
entries: {},
|
|
242
|
+
chunksNeedingAssets: []
|
|
255
243
|
});
|
|
244
|
+
serverManifest.entries[entryId] = relativeFileName;
|
|
245
|
+
entryData = JSON.stringify(entryId);
|
|
246
|
+
} else {
|
|
247
|
+
entryData = JSON.stringify(await (0, import_manifest_generator.generateDocManifest)(await devServer.transformIndexHtml("/", (0, import_manifest_generator.generateInputDoc)(fileNameToURL(fileName, root)))));
|
|
256
248
|
}
|
|
257
|
-
|
|
258
|
-
|
|
249
|
+
return (0, import_server_entry_template.default)({
|
|
250
|
+
fileName,
|
|
251
|
+
entryData,
|
|
252
|
+
runtimeId
|
|
253
|
+
});
|
|
259
254
|
}
|
|
255
|
+
case browserEntryQuery:
|
|
256
|
+
return import_fs.default.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
|
|
260
257
|
}
|
|
261
258
|
return virtualFiles.get(id) || null;
|
|
262
259
|
},
|
|
@@ -362,7 +359,7 @@ function isMarkoFile(id) {
|
|
|
362
359
|
function toHTMLEntries(root, serverEntries) {
|
|
363
360
|
const result = [];
|
|
364
361
|
for (const id in serverEntries) {
|
|
365
|
-
const markoFile = import_path.default.join(root, serverEntries[id]);
|
|
362
|
+
const markoFile = import_path.default.posix.join(root, serverEntries[id]);
|
|
366
363
|
const htmlFile = markoFile + htmlExt;
|
|
367
364
|
virtualFiles.set(htmlFile, {
|
|
368
365
|
code: (0, import_manifest_generator.generateInputDoc)(markoFile)
|
package/dist/index.mjs
CHANGED
|
@@ -18,6 +18,7 @@ import path from "path";
|
|
|
18
18
|
import crypto from "crypto";
|
|
19
19
|
import anyMatch from "anymatch";
|
|
20
20
|
import { pathToFileURL, fileURLToPath } from "url";
|
|
21
|
+
var normalizePath = path.sep === "\\" ? (id) => id.replace(/\\/g, "/") : (id) => id;
|
|
21
22
|
var virtualFiles = /* @__PURE__ */ new Map();
|
|
22
23
|
var queryReg = /\?marko-.+$/;
|
|
23
24
|
var browserEntryQuery = "?marko-browser-entry";
|
|
@@ -52,8 +53,8 @@ function markoPlugin(opts = {}) {
|
|
|
52
53
|
});
|
|
53
54
|
const domConfig = __spreadProps(__spreadValues({}, baseConfig), {
|
|
54
55
|
resolveVirtualDependency(from, dep) {
|
|
55
|
-
const query = `${virtualFileQuery}&id=${dep.virtualPath}`;
|
|
56
|
-
const id = from + query;
|
|
56
|
+
const query = `${virtualFileQuery}&id=${encodeURIComponent(dep.virtualPath)}`;
|
|
57
|
+
const id = normalizePath(from) + query;
|
|
57
58
|
if (devServer) {
|
|
58
59
|
const prev = virtualFiles.get(id);
|
|
59
60
|
if (prev && prev.code !== dep.code) {
|
|
@@ -69,6 +70,7 @@ function markoPlugin(opts = {}) {
|
|
|
69
70
|
output: "hydrate"
|
|
70
71
|
});
|
|
71
72
|
let root;
|
|
73
|
+
let devEntryFile;
|
|
72
74
|
let isBuild = false;
|
|
73
75
|
let isSSRBuild = false;
|
|
74
76
|
let devServer;
|
|
@@ -82,12 +84,13 @@ function markoPlugin(opts = {}) {
|
|
|
82
84
|
enforce: "pre",
|
|
83
85
|
async config(config, env) {
|
|
84
86
|
compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
|
|
85
|
-
root = config.root || process.cwd();
|
|
87
|
+
root = normalizePath(config.root || process.cwd());
|
|
88
|
+
devEntryFile = path.join(root, "index.html");
|
|
86
89
|
isBuild = env.command === "build";
|
|
87
90
|
isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
|
|
88
91
|
if (!registeredTag) {
|
|
89
92
|
const transformer = path.resolve(thisFile, "../render-assets-transform");
|
|
90
|
-
registeredTag = path.resolve(thisFile, "../components", isBuild ? "vite.marko" : "vite-watch.marko");
|
|
93
|
+
registeredTag = normalizePath(path.resolve(thisFile, "../components", isBuild ? "vite.marko" : "vite-watch.marko"));
|
|
91
94
|
compiler.taglib.register("@marko/vite", {
|
|
92
95
|
"<_vite>": { template: registeredTag },
|
|
93
96
|
"<head>": { transformer },
|
|
@@ -173,14 +176,14 @@ function markoPlugin(opts = {}) {
|
|
|
173
176
|
let importeeQuery = getMarkoQuery(importee);
|
|
174
177
|
if (importeeQuery) {
|
|
175
178
|
importee = importee.slice(0, -importeeQuery.length);
|
|
176
|
-
} else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
179
|
+
} else if (ssr && linked && importer && importer !== devEntryFile && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
177
180
|
importeeQuery = serverEntryQuery;
|
|
178
181
|
} else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
|
|
179
182
|
importeeQuery = browserEntryQuery;
|
|
180
183
|
}
|
|
181
184
|
if (importeeQuery) {
|
|
182
185
|
const resolved = importee[0] === "." ? {
|
|
183
|
-
id: importer ? path.resolve(importer, "..", importee) : path.resolve(root, importee)
|
|
186
|
+
id: normalizePath(importer ? path.resolve(importer, "..", importee) : path.resolve(root, importee))
|
|
184
187
|
} : await this.resolve(importee, importer, resolveOpts);
|
|
185
188
|
if (resolved) {
|
|
186
189
|
resolved.id += importeeQuery;
|
|
@@ -190,36 +193,30 @@ function markoPlugin(opts = {}) {
|
|
|
190
193
|
return null;
|
|
191
194
|
},
|
|
192
195
|
async load(id) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const relativeFileName = path.relative(root, fileName);
|
|
204
|
-
const entryId = toEntryId(relativeFileName);
|
|
205
|
-
serverManifest ?? (serverManifest = {
|
|
206
|
-
entries: {},
|
|
207
|
-
chunksNeedingAssets: []
|
|
208
|
-
});
|
|
209
|
-
serverManifest.entries[entryId] = relativeFileName;
|
|
210
|
-
entryData = JSON.stringify(entryId);
|
|
211
|
-
} else {
|
|
212
|
-
entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)))));
|
|
213
|
-
}
|
|
214
|
-
return server_entry_template_default({
|
|
215
|
-
fileName,
|
|
216
|
-
entryData,
|
|
217
|
-
runtimeId
|
|
196
|
+
switch (getMarkoQuery(id)) {
|
|
197
|
+
case serverEntryQuery: {
|
|
198
|
+
const fileName = id.slice(0, -serverEntryQuery.length);
|
|
199
|
+
let entryData;
|
|
200
|
+
if (isBuild) {
|
|
201
|
+
const relativeFileName = path.posix.relative(root, fileName);
|
|
202
|
+
const entryId = toEntryId(relativeFileName);
|
|
203
|
+
serverManifest ?? (serverManifest = {
|
|
204
|
+
entries: {},
|
|
205
|
+
chunksNeedingAssets: []
|
|
218
206
|
});
|
|
207
|
+
serverManifest.entries[entryId] = relativeFileName;
|
|
208
|
+
entryData = JSON.stringify(entryId);
|
|
209
|
+
} else {
|
|
210
|
+
entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)))));
|
|
219
211
|
}
|
|
220
|
-
|
|
221
|
-
|
|
212
|
+
return server_entry_template_default({
|
|
213
|
+
fileName,
|
|
214
|
+
entryData,
|
|
215
|
+
runtimeId
|
|
216
|
+
});
|
|
222
217
|
}
|
|
218
|
+
case browserEntryQuery:
|
|
219
|
+
return fs.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
|
|
223
220
|
}
|
|
224
221
|
return virtualFiles.get(id) || null;
|
|
225
222
|
},
|
|
@@ -325,7 +322,7 @@ function isMarkoFile(id) {
|
|
|
325
322
|
function toHTMLEntries(root, serverEntries) {
|
|
326
323
|
const result = [];
|
|
327
324
|
for (const id in serverEntries) {
|
|
328
|
-
const markoFile = path.join(root, serverEntries[id]);
|
|
325
|
+
const markoFile = path.posix.join(root, serverEntries[id]);
|
|
329
326
|
const htmlFile = markoFile + htmlExt;
|
|
330
327
|
virtualFiles.set(htmlFile, {
|
|
331
328
|
code: generateInputDoc(markoFile)
|
|
@@ -31,7 +31,7 @@ var render_assets_transform_default = (tag, t) => {
|
|
|
31
31
|
body.pushContainer("body", renderAssetsCall(t, tagName));
|
|
32
32
|
};
|
|
33
33
|
function renderAssetsCall(t, slot) {
|
|
34
|
-
return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]);
|
|
34
|
+
return t.expressionStatement(t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]));
|
|
35
35
|
}
|
|
36
36
|
module.exports = __toCommonJS(render_assets_transform_exports);
|
|
37
37
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -8,7 +8,7 @@ var render_assets_transform_default = (tag, t) => {
|
|
|
8
8
|
body.pushContainer("body", renderAssetsCall(t, tagName));
|
|
9
9
|
};
|
|
10
10
|
function renderAssetsCall(t, slot) {
|
|
11
|
-
return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]);
|
|
11
|
+
return t.expressionStatement(t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]));
|
|
12
12
|
}
|
|
13
13
|
export {
|
|
14
14
|
render_assets_transform_default as default
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/vite",
|
|
3
3
|
"description": "A Marko plugin for Vite",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.8",
|
|
5
5
|
"author": "Dylan Piercey <dpiercey@ebay.com>",
|
|
6
6
|
"bugs": "https://github.com/marko-js/vite/issues",
|
|
7
7
|
"dependencies": {
|
|
@@ -11,29 +11,37 @@
|
|
|
11
11
|
"htmlparser2": "^7.2.0"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@commitlint/cli": "^16.
|
|
15
|
-
"@commitlint/config-conventional": "^16.
|
|
16
|
-
"@marko/compiler": "^5.
|
|
17
|
-
"@
|
|
18
|
-
"@
|
|
19
|
-
"@
|
|
20
|
-
"@
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"eslint": "^
|
|
24
|
-
"eslint
|
|
25
|
-
"
|
|
14
|
+
"@commitlint/cli": "^16.2.1",
|
|
15
|
+
"@commitlint/config-conventional": "^16.2.1",
|
|
16
|
+
"@marko/compiler": "^5.19.1",
|
|
17
|
+
"@marko/fixture-snapshots": "^2.1.6",
|
|
18
|
+
"@marko/testing-library": "^6.0.0",
|
|
19
|
+
"@types/jsdom": "^16.2.14",
|
|
20
|
+
"@types/mocha": "^9.1.0",
|
|
21
|
+
"@types/node": "^17.0.21",
|
|
22
|
+
"@types/serve-handler": "^6.1.1",
|
|
23
|
+
"@typescript-eslint/eslint-plugin": "^5.14.0",
|
|
24
|
+
"@typescript-eslint/parser": "^5.14.0",
|
|
25
|
+
"cross-env": "^7.0.3",
|
|
26
|
+
"esbuild": "^0.14.25",
|
|
27
|
+
"esbuild-register": "^3.3.2",
|
|
28
|
+
"eslint": "^8.10.0",
|
|
29
|
+
"eslint-config-prettier": "^8.5.0",
|
|
30
|
+
"fast-glob": "^3.2.11",
|
|
26
31
|
"fixpack": "^4.0.0",
|
|
27
32
|
"husky": "^7.0.4",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"mocha
|
|
33
|
+
"jsdom": "^19.0.0",
|
|
34
|
+
"lint-staged": "^12.3.5",
|
|
35
|
+
"marko": "^5.19.0",
|
|
36
|
+
"mocha": "^9.2.1",
|
|
37
|
+
"mocha-snap": "^4.3.0",
|
|
32
38
|
"nyc": "^15.1.0",
|
|
39
|
+
"playwright": "^1.19.2",
|
|
33
40
|
"prettier": "^2.5.1",
|
|
34
|
-
"semantic-release": "^
|
|
35
|
-
"
|
|
36
|
-
"
|
|
41
|
+
"semantic-release": "^19.0.2",
|
|
42
|
+
"serve-handler": "^6.1.3",
|
|
43
|
+
"typescript": "^4.6.2",
|
|
44
|
+
"vite": "^2.8.6"
|
|
37
45
|
},
|
|
38
46
|
"exports": {
|
|
39
47
|
".": {
|
|
@@ -73,8 +81,8 @@
|
|
|
73
81
|
"format": "npm run lint:eslint -- --fix && npm run lint:prettier -- --write && (fixpack || true)",
|
|
74
82
|
"lint": "tsc -b && npm run lint:eslint && npm run lint:prettier -- -l && fixpack",
|
|
75
83
|
"lint:eslint": "eslint -f visualstudio .",
|
|
76
|
-
"lint:prettier": "prettier
|
|
77
|
-
"mocha": "NODE_ENV=test mocha
|
|
84
|
+
"lint:prettier": "prettier \"./**/*{.ts,.js,.json,.md,.yml,rc}\"",
|
|
85
|
+
"mocha": "cross-env NODE_ENV=test mocha \"./src/**/__tests__/*.test.ts\"",
|
|
78
86
|
"prepare": "husky install",
|
|
79
87
|
"prepublishOnly": "npm run build",
|
|
80
88
|
"release": "semantic-release",
|