vite-node 0.32.4 → 0.34.0
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/chunk-hmr.cjs +50 -45
- package/dist/chunk-hmr.mjs +50 -45
- package/dist/cli.cjs +27 -6
- package/dist/cli.d.ts +3 -1
- package/dist/cli.mjs +25 -4
- package/dist/client.cjs +32 -30
- package/dist/client.d.ts +1 -1
- package/dist/client.mjs +31 -29
- package/dist/constants.cjs +41 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.mjs +35 -0
- package/dist/hmr.cjs +5 -0
- package/dist/hmr.d.ts +6 -3
- package/dist/hmr.mjs +5 -0
- package/dist/index.d.ts +1 -1
- package/dist/server.cjs +13 -34
- package/dist/server.d.ts +1 -1
- package/dist/server.mjs +14 -35
- package/dist/{types-516036fa.d.ts → types-e8623e9c.d.ts} +8 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.cjs +55 -16
- package/dist/utils.d.ts +4 -2
- package/dist/utils.mjs +55 -18
- package/package.json +8 -2
package/dist/chunk-hmr.cjs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var node_events = require('node:events');
|
|
4
4
|
var c = require('picocolors');
|
|
5
5
|
var createDebug = require('debug');
|
|
6
|
+
var utils = require('./utils.cjs');
|
|
6
7
|
|
|
7
8
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
9
|
|
|
@@ -17,6 +18,18 @@ function viteNodeHmrPlugin() {
|
|
|
17
18
|
const emitter = createHmrEmitter();
|
|
18
19
|
return {
|
|
19
20
|
name: "vite-node:hmr",
|
|
21
|
+
config() {
|
|
22
|
+
if (process.platform === "darwin" && process.env.VITE_TEST_WATCHER_DEBUG) {
|
|
23
|
+
return {
|
|
24
|
+
server: {
|
|
25
|
+
watch: {
|
|
26
|
+
useFsEvents: false,
|
|
27
|
+
usePolling: false
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
},
|
|
20
33
|
configureServer(server) {
|
|
21
34
|
const _send = server.ws.send;
|
|
22
35
|
server.emitter = emitter;
|
|
@@ -24,6 +37,11 @@ function viteNodeHmrPlugin() {
|
|
|
24
37
|
_send(payload);
|
|
25
38
|
emitter.emit("message", payload);
|
|
26
39
|
};
|
|
40
|
+
if (process.env.VITE_TEST_WATCHER_DEBUG) {
|
|
41
|
+
server.watcher.on("ready", () => {
|
|
42
|
+
console.log("[debug] watcher is ready");
|
|
43
|
+
});
|
|
44
|
+
}
|
|
27
45
|
}
|
|
28
46
|
};
|
|
29
47
|
}
|
|
@@ -59,11 +77,11 @@ async function reload(runner, files) {
|
|
|
59
77
|
});
|
|
60
78
|
return Promise.all(files.map((file) => runner.executeId(file)));
|
|
61
79
|
}
|
|
62
|
-
function notifyListeners(runner, event, data) {
|
|
80
|
+
async function notifyListeners(runner, event, data) {
|
|
63
81
|
const maps = getCache(runner);
|
|
64
82
|
const cbs = maps.customListenersMap.get(event);
|
|
65
83
|
if (cbs)
|
|
66
|
-
cbs.
|
|
84
|
+
await Promise.all(cbs.map((cb) => cb(data)));
|
|
67
85
|
}
|
|
68
86
|
async function queueUpdate(runner, p) {
|
|
69
87
|
const maps = getCache(runner);
|
|
@@ -78,43 +96,31 @@ async function queueUpdate(runner, p) {
|
|
|
78
96
|
}
|
|
79
97
|
}
|
|
80
98
|
async function fetchUpdate(runner, { path, acceptedPath }) {
|
|
99
|
+
path = utils.normalizeRequestId(path);
|
|
100
|
+
acceptedPath = utils.normalizeRequestId(acceptedPath);
|
|
81
101
|
const maps = getCache(runner);
|
|
82
102
|
const mod = maps.hotModulesMap.get(path);
|
|
83
103
|
if (!mod) {
|
|
84
104
|
return;
|
|
85
105
|
}
|
|
86
|
-
const moduleMap = /* @__PURE__ */ new Map();
|
|
87
106
|
const isSelfUpdate = path === acceptedPath;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
107
|
+
let fetchedModule;
|
|
108
|
+
const qualifiedCallbacks = mod.callbacks.filter(
|
|
109
|
+
({ deps }) => deps.includes(acceptedPath)
|
|
110
|
+
);
|
|
111
|
+
if (isSelfUpdate || qualifiedCallbacks.length > 0) {
|
|
112
|
+
const disposer = maps.disposeMap.get(acceptedPath);
|
|
113
|
+
if (disposer)
|
|
114
|
+
await disposer(maps.dataMap.get(acceptedPath));
|
|
115
|
+
try {
|
|
116
|
+
[fetchedModule] = await reload(runner, [acceptedPath]);
|
|
117
|
+
} catch (e) {
|
|
118
|
+
warnFailedFetch(e, acceptedPath);
|
|
97
119
|
}
|
|
98
120
|
}
|
|
99
|
-
const qualifiedCallbacks = mod.callbacks.filter(({ deps }) => {
|
|
100
|
-
return deps.some((dep) => modulesToUpdate.has(dep));
|
|
101
|
-
});
|
|
102
|
-
await Promise.all(
|
|
103
|
-
Array.from(modulesToUpdate).map(async (dep) => {
|
|
104
|
-
const disposer = maps.disposeMap.get(dep);
|
|
105
|
-
if (disposer)
|
|
106
|
-
await disposer(maps.dataMap.get(dep));
|
|
107
|
-
try {
|
|
108
|
-
const newMod = await reload(runner, [dep]);
|
|
109
|
-
moduleMap.set(dep, newMod);
|
|
110
|
-
} catch (e) {
|
|
111
|
-
warnFailedFetch(e, dep);
|
|
112
|
-
}
|
|
113
|
-
})
|
|
114
|
-
);
|
|
115
121
|
return () => {
|
|
116
122
|
for (const { deps, fn } of qualifiedCallbacks)
|
|
117
|
-
fn(deps.map((dep) =>
|
|
123
|
+
fn(deps.map((dep) => dep === acceptedPath ? fetchedModule : void 0));
|
|
118
124
|
const loggedPath = isSelfUpdate ? path : `${acceptedPath} via ${path}`;
|
|
119
125
|
console.log(`${c__default["default"].cyan("[vite-node]")} hot updated: ${loggedPath}`);
|
|
120
126
|
};
|
|
@@ -133,26 +139,25 @@ async function handleMessage(runner, emitter, files, payload) {
|
|
|
133
139
|
sendMessageBuffer(runner, emitter);
|
|
134
140
|
break;
|
|
135
141
|
case "update":
|
|
136
|
-
notifyListeners(runner, "vite:beforeUpdate", payload);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
} else {
|
|
145
|
-
console.error(`${c__default["default"].cyan("[vite-node]")} no support css hmr.}`);
|
|
146
|
-
}
|
|
147
|
-
});
|
|
142
|
+
await notifyListeners(runner, "vite:beforeUpdate", payload);
|
|
143
|
+
await Promise.all(payload.updates.map((update) => {
|
|
144
|
+
if (update.type === "js-update")
|
|
145
|
+
return queueUpdate(runner, fetchUpdate(runner, update));
|
|
146
|
+
console.error(`${c__default["default"].cyan("[vite-node]")} no support css hmr.}`);
|
|
147
|
+
return null;
|
|
148
|
+
}));
|
|
149
|
+
await notifyListeners(runner, "vite:afterUpdate", payload);
|
|
148
150
|
break;
|
|
149
151
|
case "full-reload":
|
|
150
|
-
notifyListeners(runner, "vite:beforeFullReload", payload);
|
|
152
|
+
await notifyListeners(runner, "vite:beforeFullReload", payload);
|
|
151
153
|
maps.customListenersMap.delete("vite:beforeFullReload");
|
|
152
|
-
reload(runner, files);
|
|
154
|
+
await reload(runner, files);
|
|
155
|
+
break;
|
|
156
|
+
case "custom":
|
|
157
|
+
await notifyListeners(runner, payload.event, payload.data);
|
|
153
158
|
break;
|
|
154
159
|
case "prune":
|
|
155
|
-
notifyListeners(runner, "vite:beforePrune", payload);
|
|
160
|
+
await notifyListeners(runner, "vite:beforePrune", payload);
|
|
156
161
|
payload.paths.forEach((path) => {
|
|
157
162
|
const fn = maps.pruneMap.get(path);
|
|
158
163
|
if (fn)
|
|
@@ -160,7 +165,7 @@ async function handleMessage(runner, emitter, files, payload) {
|
|
|
160
165
|
});
|
|
161
166
|
break;
|
|
162
167
|
case "error": {
|
|
163
|
-
notifyListeners(runner, "vite:error", payload);
|
|
168
|
+
await notifyListeners(runner, "vite:error", payload);
|
|
164
169
|
const err = payload.err;
|
|
165
170
|
console.error(`${c__default["default"].cyan("[vite-node]")} Internal Server Error
|
|
166
171
|
${err.message}
|
package/dist/chunk-hmr.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import c from 'picocolors';
|
|
3
3
|
import createDebug from 'debug';
|
|
4
|
+
import { normalizeRequestId } from './utils.mjs';
|
|
4
5
|
|
|
5
6
|
function createHmrEmitter() {
|
|
6
7
|
const emitter = new EventEmitter();
|
|
@@ -10,6 +11,18 @@ function viteNodeHmrPlugin() {
|
|
|
10
11
|
const emitter = createHmrEmitter();
|
|
11
12
|
return {
|
|
12
13
|
name: "vite-node:hmr",
|
|
14
|
+
config() {
|
|
15
|
+
if (process.platform === "darwin" && process.env.VITE_TEST_WATCHER_DEBUG) {
|
|
16
|
+
return {
|
|
17
|
+
server: {
|
|
18
|
+
watch: {
|
|
19
|
+
useFsEvents: false,
|
|
20
|
+
usePolling: false
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
},
|
|
13
26
|
configureServer(server) {
|
|
14
27
|
const _send = server.ws.send;
|
|
15
28
|
server.emitter = emitter;
|
|
@@ -17,6 +30,11 @@ function viteNodeHmrPlugin() {
|
|
|
17
30
|
_send(payload);
|
|
18
31
|
emitter.emit("message", payload);
|
|
19
32
|
};
|
|
33
|
+
if (process.env.VITE_TEST_WATCHER_DEBUG) {
|
|
34
|
+
server.watcher.on("ready", () => {
|
|
35
|
+
console.log("[debug] watcher is ready");
|
|
36
|
+
});
|
|
37
|
+
}
|
|
20
38
|
}
|
|
21
39
|
};
|
|
22
40
|
}
|
|
@@ -52,11 +70,11 @@ async function reload(runner, files) {
|
|
|
52
70
|
});
|
|
53
71
|
return Promise.all(files.map((file) => runner.executeId(file)));
|
|
54
72
|
}
|
|
55
|
-
function notifyListeners(runner, event, data) {
|
|
73
|
+
async function notifyListeners(runner, event, data) {
|
|
56
74
|
const maps = getCache(runner);
|
|
57
75
|
const cbs = maps.customListenersMap.get(event);
|
|
58
76
|
if (cbs)
|
|
59
|
-
cbs.
|
|
77
|
+
await Promise.all(cbs.map((cb) => cb(data)));
|
|
60
78
|
}
|
|
61
79
|
async function queueUpdate(runner, p) {
|
|
62
80
|
const maps = getCache(runner);
|
|
@@ -71,43 +89,31 @@ async function queueUpdate(runner, p) {
|
|
|
71
89
|
}
|
|
72
90
|
}
|
|
73
91
|
async function fetchUpdate(runner, { path, acceptedPath }) {
|
|
92
|
+
path = normalizeRequestId(path);
|
|
93
|
+
acceptedPath = normalizeRequestId(acceptedPath);
|
|
74
94
|
const maps = getCache(runner);
|
|
75
95
|
const mod = maps.hotModulesMap.get(path);
|
|
76
96
|
if (!mod) {
|
|
77
97
|
return;
|
|
78
98
|
}
|
|
79
|
-
const moduleMap = /* @__PURE__ */ new Map();
|
|
80
99
|
const isSelfUpdate = path === acceptedPath;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
100
|
+
let fetchedModule;
|
|
101
|
+
const qualifiedCallbacks = mod.callbacks.filter(
|
|
102
|
+
({ deps }) => deps.includes(acceptedPath)
|
|
103
|
+
);
|
|
104
|
+
if (isSelfUpdate || qualifiedCallbacks.length > 0) {
|
|
105
|
+
const disposer = maps.disposeMap.get(acceptedPath);
|
|
106
|
+
if (disposer)
|
|
107
|
+
await disposer(maps.dataMap.get(acceptedPath));
|
|
108
|
+
try {
|
|
109
|
+
[fetchedModule] = await reload(runner, [acceptedPath]);
|
|
110
|
+
} catch (e) {
|
|
111
|
+
warnFailedFetch(e, acceptedPath);
|
|
90
112
|
}
|
|
91
113
|
}
|
|
92
|
-
const qualifiedCallbacks = mod.callbacks.filter(({ deps }) => {
|
|
93
|
-
return deps.some((dep) => modulesToUpdate.has(dep));
|
|
94
|
-
});
|
|
95
|
-
await Promise.all(
|
|
96
|
-
Array.from(modulesToUpdate).map(async (dep) => {
|
|
97
|
-
const disposer = maps.disposeMap.get(dep);
|
|
98
|
-
if (disposer)
|
|
99
|
-
await disposer(maps.dataMap.get(dep));
|
|
100
|
-
try {
|
|
101
|
-
const newMod = await reload(runner, [dep]);
|
|
102
|
-
moduleMap.set(dep, newMod);
|
|
103
|
-
} catch (e) {
|
|
104
|
-
warnFailedFetch(e, dep);
|
|
105
|
-
}
|
|
106
|
-
})
|
|
107
|
-
);
|
|
108
114
|
return () => {
|
|
109
115
|
for (const { deps, fn } of qualifiedCallbacks)
|
|
110
|
-
fn(deps.map((dep) =>
|
|
116
|
+
fn(deps.map((dep) => dep === acceptedPath ? fetchedModule : void 0));
|
|
111
117
|
const loggedPath = isSelfUpdate ? path : `${acceptedPath} via ${path}`;
|
|
112
118
|
console.log(`${c.cyan("[vite-node]")} hot updated: ${loggedPath}`);
|
|
113
119
|
};
|
|
@@ -126,26 +132,25 @@ async function handleMessage(runner, emitter, files, payload) {
|
|
|
126
132
|
sendMessageBuffer(runner, emitter);
|
|
127
133
|
break;
|
|
128
134
|
case "update":
|
|
129
|
-
notifyListeners(runner, "vite:beforeUpdate", payload);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
} else {
|
|
138
|
-
console.error(`${c.cyan("[vite-node]")} no support css hmr.}`);
|
|
139
|
-
}
|
|
140
|
-
});
|
|
135
|
+
await notifyListeners(runner, "vite:beforeUpdate", payload);
|
|
136
|
+
await Promise.all(payload.updates.map((update) => {
|
|
137
|
+
if (update.type === "js-update")
|
|
138
|
+
return queueUpdate(runner, fetchUpdate(runner, update));
|
|
139
|
+
console.error(`${c.cyan("[vite-node]")} no support css hmr.}`);
|
|
140
|
+
return null;
|
|
141
|
+
}));
|
|
142
|
+
await notifyListeners(runner, "vite:afterUpdate", payload);
|
|
141
143
|
break;
|
|
142
144
|
case "full-reload":
|
|
143
|
-
notifyListeners(runner, "vite:beforeFullReload", payload);
|
|
145
|
+
await notifyListeners(runner, "vite:beforeFullReload", payload);
|
|
144
146
|
maps.customListenersMap.delete("vite:beforeFullReload");
|
|
145
|
-
reload(runner, files);
|
|
147
|
+
await reload(runner, files);
|
|
148
|
+
break;
|
|
149
|
+
case "custom":
|
|
150
|
+
await notifyListeners(runner, payload.event, payload.data);
|
|
146
151
|
break;
|
|
147
152
|
case "prune":
|
|
148
|
-
notifyListeners(runner, "vite:beforePrune", payload);
|
|
153
|
+
await notifyListeners(runner, "vite:beforePrune", payload);
|
|
149
154
|
payload.paths.forEach((path) => {
|
|
150
155
|
const fn = maps.pruneMap.get(path);
|
|
151
156
|
if (fn)
|
|
@@ -153,7 +158,7 @@ async function handleMessage(runner, emitter, files, payload) {
|
|
|
153
158
|
});
|
|
154
159
|
break;
|
|
155
160
|
case "error": {
|
|
156
|
-
notifyListeners(runner, "vite:error", payload);
|
|
161
|
+
await notifyListeners(runner, "vite:error", payload);
|
|
157
162
|
const err = payload.err;
|
|
158
163
|
console.error(`${c.cyan("[vite-node]")} Internal Server Error
|
|
159
164
|
${err.message}
|
package/dist/cli.cjs
CHANGED
|
@@ -6,17 +6,18 @@ var vite = require('vite');
|
|
|
6
6
|
var server = require('./server.cjs');
|
|
7
7
|
var client = require('./client.cjs');
|
|
8
8
|
var utils = require('./utils.cjs');
|
|
9
|
-
var hmr = require('./chunk-hmr.cjs');
|
|
10
9
|
var sourceMap = require('./source-map.cjs');
|
|
10
|
+
var hmr = require('./chunk-hmr.cjs');
|
|
11
11
|
require('perf_hooks');
|
|
12
12
|
require('fs');
|
|
13
13
|
require('pathe');
|
|
14
14
|
require('debug');
|
|
15
15
|
require('mlly');
|
|
16
|
+
require('./constants.cjs');
|
|
16
17
|
require('node:url');
|
|
17
18
|
require('module');
|
|
18
19
|
require('path');
|
|
19
|
-
require('vm');
|
|
20
|
+
require('node:vm');
|
|
20
21
|
require('node:events');
|
|
21
22
|
|
|
22
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -24,12 +25,20 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
24
25
|
var cac__default = /*#__PURE__*/_interopDefaultLegacy(cac);
|
|
25
26
|
var c__default = /*#__PURE__*/_interopDefaultLegacy(c);
|
|
26
27
|
|
|
27
|
-
var version = "0.
|
|
28
|
+
var version = "0.34.0";
|
|
28
29
|
|
|
29
30
|
const cli = cac__default["default"]("vite-node");
|
|
30
|
-
cli.
|
|
31
|
+
cli.option("-r, --root <path>", "Use specified root directory").option("-c, --config <path>", "Use specified config file").option("-m, --mode <mode>", "Set env mode").option("-w, --watch", 'Restart on file changes, similar to "nodemon"').option("--script", "Use vite-node as a script runner").option("--options <options>", "Use specified Vite server options").option("-v, --version", "Output the version number").option("-h, --help", "Display help for command");
|
|
31
32
|
cli.command("[...files]").allowUnknownOptions().action(run);
|
|
32
|
-
cli.parse();
|
|
33
|
+
cli.parse(process.argv, { run: false });
|
|
34
|
+
if (cli.args.length === 0) {
|
|
35
|
+
cli.runMatchedCommand();
|
|
36
|
+
} else {
|
|
37
|
+
const i = cli.rawArgs.indexOf(cli.args[0]) + 1;
|
|
38
|
+
const scriptArgs = cli.rawArgs.slice(i).filter((it) => it !== "--");
|
|
39
|
+
const executeArgs = [...cli.rawArgs.slice(0, i), "--", ...scriptArgs];
|
|
40
|
+
cli.parse(executeArgs);
|
|
41
|
+
}
|
|
33
42
|
async function run(files, options = {}) {
|
|
34
43
|
var _a;
|
|
35
44
|
if (options.script) {
|
|
@@ -39,9 +48,18 @@ async function run(files, options = {}) {
|
|
|
39
48
|
} else {
|
|
40
49
|
process.argv = [...process.argv.slice(0, 2), ...options["--"] || []];
|
|
41
50
|
}
|
|
51
|
+
if (options.version) {
|
|
52
|
+
cli.version(version);
|
|
53
|
+
cli.outputVersion();
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
if (options.help) {
|
|
57
|
+
cli.version(version).outputHelp();
|
|
58
|
+
process.exit(0);
|
|
59
|
+
}
|
|
42
60
|
if (!files.length) {
|
|
43
61
|
console.error(c__default["default"].red("No files specified."));
|
|
44
|
-
cli.outputHelp();
|
|
62
|
+
cli.version(version).outputHelp();
|
|
45
63
|
process.exit(1);
|
|
46
64
|
}
|
|
47
65
|
const serverOptions = options.options ? parseServerOptions(options.options) : {};
|
|
@@ -50,6 +68,9 @@ async function run(files, options = {}) {
|
|
|
50
68
|
configFile: options.config,
|
|
51
69
|
root: options.root,
|
|
52
70
|
mode: options.mode,
|
|
71
|
+
server: {
|
|
72
|
+
hmr: !!options.watch
|
|
73
|
+
},
|
|
53
74
|
plugins: [
|
|
54
75
|
options.watch && hmr.viteNodeHmrPlugin()
|
|
55
76
|
]
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as ViteNodeServerOptions } from './types-
|
|
1
|
+
import { f as ViteNodeServerOptions } from './types-e8623e9c.js';
|
|
2
2
|
import 'vite/types/hot';
|
|
3
3
|
import './types.d-7442d07f.js';
|
|
4
4
|
|
|
@@ -9,6 +9,8 @@ interface CliOptions {
|
|
|
9
9
|
mode?: string;
|
|
10
10
|
watch?: boolean;
|
|
11
11
|
options?: ViteNodeServerOptionsCLI;
|
|
12
|
+
version?: boolean;
|
|
13
|
+
help?: boolean;
|
|
12
14
|
'--'?: string[];
|
|
13
15
|
}
|
|
14
16
|
type Optional<T> = T | undefined;
|
package/dist/cli.mjs
CHANGED
|
@@ -11,18 +11,27 @@ import 'node:fs';
|
|
|
11
11
|
import 'pathe';
|
|
12
12
|
import 'debug';
|
|
13
13
|
import 'mlly';
|
|
14
|
+
import './constants.mjs';
|
|
14
15
|
import 'node:url';
|
|
15
16
|
import 'node:module';
|
|
16
17
|
import 'node:path';
|
|
17
18
|
import 'node:vm';
|
|
18
19
|
import 'node:events';
|
|
19
20
|
|
|
20
|
-
var version = "0.
|
|
21
|
+
var version = "0.34.0";
|
|
21
22
|
|
|
22
23
|
const cli = cac("vite-node");
|
|
23
|
-
cli.
|
|
24
|
+
cli.option("-r, --root <path>", "Use specified root directory").option("-c, --config <path>", "Use specified config file").option("-m, --mode <mode>", "Set env mode").option("-w, --watch", 'Restart on file changes, similar to "nodemon"').option("--script", "Use vite-node as a script runner").option("--options <options>", "Use specified Vite server options").option("-v, --version", "Output the version number").option("-h, --help", "Display help for command");
|
|
24
25
|
cli.command("[...files]").allowUnknownOptions().action(run);
|
|
25
|
-
cli.parse();
|
|
26
|
+
cli.parse(process.argv, { run: false });
|
|
27
|
+
if (cli.args.length === 0) {
|
|
28
|
+
cli.runMatchedCommand();
|
|
29
|
+
} else {
|
|
30
|
+
const i = cli.rawArgs.indexOf(cli.args[0]) + 1;
|
|
31
|
+
const scriptArgs = cli.rawArgs.slice(i).filter((it) => it !== "--");
|
|
32
|
+
const executeArgs = [...cli.rawArgs.slice(0, i), "--", ...scriptArgs];
|
|
33
|
+
cli.parse(executeArgs);
|
|
34
|
+
}
|
|
26
35
|
async function run(files, options = {}) {
|
|
27
36
|
var _a;
|
|
28
37
|
if (options.script) {
|
|
@@ -32,9 +41,18 @@ async function run(files, options = {}) {
|
|
|
32
41
|
} else {
|
|
33
42
|
process.argv = [...process.argv.slice(0, 2), ...options["--"] || []];
|
|
34
43
|
}
|
|
44
|
+
if (options.version) {
|
|
45
|
+
cli.version(version);
|
|
46
|
+
cli.outputVersion();
|
|
47
|
+
process.exit(0);
|
|
48
|
+
}
|
|
49
|
+
if (options.help) {
|
|
50
|
+
cli.version(version).outputHelp();
|
|
51
|
+
process.exit(0);
|
|
52
|
+
}
|
|
35
53
|
if (!files.length) {
|
|
36
54
|
console.error(c.red("No files specified."));
|
|
37
|
-
cli.outputHelp();
|
|
55
|
+
cli.version(version).outputHelp();
|
|
38
56
|
process.exit(1);
|
|
39
57
|
}
|
|
40
58
|
const serverOptions = options.options ? parseServerOptions(options.options) : {};
|
|
@@ -43,6 +61,9 @@ async function run(files, options = {}) {
|
|
|
43
61
|
configFile: options.config,
|
|
44
62
|
root: options.root,
|
|
45
63
|
mode: options.mode,
|
|
64
|
+
server: {
|
|
65
|
+
hmr: !!options.watch
|
|
66
|
+
},
|
|
46
67
|
plugins: [
|
|
47
68
|
options.watch && viteNodeHmrPlugin()
|
|
48
69
|
]
|
package/dist/client.cjs
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var module$1 = require('module');
|
|
6
6
|
var path = require('path');
|
|
7
7
|
var node_url = require('node:url');
|
|
8
|
-
var vm = require('vm');
|
|
8
|
+
var vm = require('node:vm');
|
|
9
9
|
var pathe = require('pathe');
|
|
10
10
|
var createDebug = require('debug');
|
|
11
11
|
var utils = require('./utils.cjs');
|
|
@@ -40,7 +40,7 @@ const debugExecute = createDebug__default["default"]("vite-node:client:execute")
|
|
|
40
40
|
const debugNative = createDebug__default["default"]("vite-node:client:native");
|
|
41
41
|
const clientStub = {
|
|
42
42
|
injectQuery: (id) => id,
|
|
43
|
-
createHotContext() {
|
|
43
|
+
createHotContext: () => {
|
|
44
44
|
return {
|
|
45
45
|
accept: () => {
|
|
46
46
|
},
|
|
@@ -58,18 +58,9 @@ const clientStub = {
|
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
},
|
|
61
|
-
updateStyle(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const element = document.getElementById(id);
|
|
65
|
-
if (element)
|
|
66
|
-
element.remove();
|
|
67
|
-
const head = document.querySelector("head");
|
|
68
|
-
const style = document.createElement("style");
|
|
69
|
-
style.setAttribute("type", "text/css");
|
|
70
|
-
style.id = id;
|
|
71
|
-
style.innerHTML = css;
|
|
72
|
-
head == null ? void 0 : head.appendChild(style);
|
|
61
|
+
updateStyle: () => {
|
|
62
|
+
},
|
|
63
|
+
removeStyle: () => {
|
|
73
64
|
}
|
|
74
65
|
};
|
|
75
66
|
const DEFAULT_REQUEST_STUBS = {
|
|
@@ -281,29 +272,30 @@ ${getStack()}`), 2e3);
|
|
|
281
272
|
}
|
|
282
273
|
if (transformed == null)
|
|
283
274
|
throw new Error(`[vite-node] Failed to load "${id}" imported from ${callstack[callstack.length - 2]}`);
|
|
275
|
+
const { Object: Object2, Reflect: Reflect2, Symbol: Symbol2 } = this.getContextPrimitives();
|
|
284
276
|
const modulePath = utils.cleanUrl(moduleId);
|
|
285
277
|
const href = node_url.pathToFileURL(modulePath).href;
|
|
286
278
|
const meta = { url: href };
|
|
287
|
-
const exports =
|
|
288
|
-
|
|
279
|
+
const exports = Object2.create(null);
|
|
280
|
+
Object2.defineProperty(exports, Symbol2.toStringTag, {
|
|
289
281
|
value: "Module",
|
|
290
282
|
enumerable: false,
|
|
291
283
|
configurable: false
|
|
292
284
|
});
|
|
293
285
|
const cjsExports = new Proxy(exports, {
|
|
294
286
|
get: (target, p, receiver) => {
|
|
295
|
-
if (
|
|
296
|
-
return
|
|
297
|
-
return
|
|
287
|
+
if (Reflect2.has(target, p))
|
|
288
|
+
return Reflect2.get(target, p, receiver);
|
|
289
|
+
return Reflect2.get(Object2.prototype, p, receiver);
|
|
298
290
|
},
|
|
299
|
-
getPrototypeOf: () =>
|
|
291
|
+
getPrototypeOf: () => Object2.prototype,
|
|
300
292
|
set: (_, p, value) => {
|
|
301
293
|
if (p === "default" && this.shouldInterop(modulePath, { default: value }) && cjsExports !== value) {
|
|
302
294
|
exportAll(cjsExports, value);
|
|
303
295
|
exports.default = value;
|
|
304
296
|
return true;
|
|
305
297
|
}
|
|
306
|
-
if (!
|
|
298
|
+
if (!Reflect2.has(exports, "default"))
|
|
307
299
|
exports.default = {};
|
|
308
300
|
if (utils.isPrimitive(exports.default)) {
|
|
309
301
|
defineExport(exports, p, () => void 0);
|
|
@@ -315,7 +307,7 @@ ${getStack()}`), 2e3);
|
|
|
315
307
|
return true;
|
|
316
308
|
}
|
|
317
309
|
});
|
|
318
|
-
|
|
310
|
+
Object2.assign(mod, { code: transformed, exports });
|
|
319
311
|
const __filename = node_url.fileURLToPath(href);
|
|
320
312
|
const moduleProxy = {
|
|
321
313
|
set exports(value) {
|
|
@@ -328,11 +320,11 @@ ${getStack()}`), 2e3);
|
|
|
328
320
|
};
|
|
329
321
|
let hotContext;
|
|
330
322
|
if (this.options.createHotContext) {
|
|
331
|
-
|
|
323
|
+
Object2.defineProperty(meta, "hot", {
|
|
332
324
|
enumerable: true,
|
|
333
325
|
get: () => {
|
|
334
326
|
var _a, _b;
|
|
335
|
-
hotContext || (hotContext = (_b = (_a = this.options).createHotContext) == null ? void 0 : _b.call(_a, this,
|
|
327
|
+
hotContext || (hotContext = (_b = (_a = this.options).createHotContext) == null ? void 0 : _b.call(_a, this, moduleId));
|
|
336
328
|
return hotContext;
|
|
337
329
|
},
|
|
338
330
|
set: (value) => {
|
|
@@ -357,16 +349,23 @@ ${getStack()}`), 2e3);
|
|
|
357
349
|
debugExecute(__filename);
|
|
358
350
|
if (transformed[0] === "#")
|
|
359
351
|
transformed = transformed.replace(/^\#\!.*/, (s) => " ".repeat(s.length));
|
|
352
|
+
await this.runModule(context, transformed);
|
|
353
|
+
return exports;
|
|
354
|
+
}
|
|
355
|
+
getContextPrimitives() {
|
|
356
|
+
return { Object, Reflect, Symbol };
|
|
357
|
+
}
|
|
358
|
+
async runModule(context, transformed) {
|
|
360
359
|
const codeDefinition = `'use strict';async (${Object.keys(context).join(",")})=>{{`;
|
|
361
360
|
const code = `${codeDefinition}${transformed}
|
|
362
361
|
}}`;
|
|
363
|
-
const
|
|
364
|
-
filename: __filename,
|
|
362
|
+
const options = {
|
|
363
|
+
filename: context.__filename,
|
|
365
364
|
lineOffset: 0,
|
|
366
365
|
columnOffset: -codeDefinition.length
|
|
367
|
-
}
|
|
366
|
+
};
|
|
367
|
+
const fn = vm__default["default"].runInThisContext(code, options);
|
|
368
368
|
await fn(...Object.values(context));
|
|
369
|
-
return exports;
|
|
370
369
|
}
|
|
371
370
|
prepareContext(context) {
|
|
372
371
|
return context;
|
|
@@ -380,11 +379,14 @@ ${getStack()}`), 2e3);
|
|
|
380
379
|
return false;
|
|
381
380
|
return !path.endsWith(".mjs") && "default" in mod;
|
|
382
381
|
}
|
|
382
|
+
importExternalModule(path) {
|
|
383
|
+
return (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(path);
|
|
384
|
+
}
|
|
383
385
|
/**
|
|
384
386
|
* Import a module and interop it
|
|
385
387
|
*/
|
|
386
388
|
async interopedImport(path) {
|
|
387
|
-
const importedModule = await
|
|
389
|
+
const importedModule = await this.importExternalModule(path);
|
|
388
390
|
if (!this.shouldInterop(path, importedModule))
|
|
389
391
|
return importedModule;
|
|
390
392
|
const { mod, defaultExport } = interopModule(importedModule);
|
|
@@ -439,7 +441,7 @@ function defineExport(exports, key, value) {
|
|
|
439
441
|
function exportAll(exports, sourceModule) {
|
|
440
442
|
if (exports === sourceModule)
|
|
441
443
|
return;
|
|
442
|
-
if (utils.isPrimitive(sourceModule) || Array.isArray(sourceModule))
|
|
444
|
+
if (utils.isPrimitive(sourceModule) || Array.isArray(sourceModule) || sourceModule instanceof Promise)
|
|
443
445
|
return;
|
|
444
446
|
for (const key in sourceModule) {
|
|
445
447
|
if (key !== "default") {
|
package/dist/client.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './types.d-7442d07f.js';
|
|
2
|
-
export { i as DEFAULT_REQUEST_STUBS, M as ModuleCacheMap, h as ViteNodeRunner } from './types-
|
|
2
|
+
export { i as DEFAULT_REQUEST_STUBS, M as ModuleCacheMap, h as ViteNodeRunner } from './types-e8623e9c.js';
|
|
3
3
|
import 'vite/types/hot';
|