@modern-js/app-tools 2.49.1 → 2.49.3-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +1 -1
  2. package/dist/cjs/config/default.js +11 -1
  3. package/dist/cjs/index.js +4 -2
  4. package/dist/cjs/locale/en.js +2 -1
  5. package/dist/cjs/locale/zh.js +2 -1
  6. package/dist/cjs/plugins/deploy/dependencies.js +256 -0
  7. package/dist/cjs/plugins/deploy/entrys/netlify.js +95 -0
  8. package/dist/cjs/plugins/deploy/entrys/node.js +88 -0
  9. package/dist/cjs/plugins/deploy/entrys/vercel.js +94 -0
  10. package/dist/cjs/plugins/deploy/index.js +186 -0
  11. package/dist/cjs/plugins/deploy/utils.js +150 -0
  12. package/dist/cjs/utils/register.js +1 -1
  13. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +2 -2
  14. package/dist/esm/config/default.js +11 -1
  15. package/dist/esm/index.js +4 -2
  16. package/dist/esm/locale/en.js +2 -1
  17. package/dist/esm/locale/zh.js +2 -1
  18. package/dist/esm/plugins/deploy/dependencies.js +725 -0
  19. package/dist/esm/plugins/deploy/entrys/netlify.js +41 -0
  20. package/dist/esm/plugins/deploy/entrys/node.js +39 -0
  21. package/dist/esm/plugins/deploy/entrys/vercel.js +40 -0
  22. package/dist/esm/plugins/deploy/index.js +297 -0
  23. package/dist/esm/plugins/deploy/utils.js +244 -0
  24. package/dist/esm/utils/register.js +1 -1
  25. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +2 -2
  26. package/dist/esm-node/config/default.js +11 -1
  27. package/dist/esm-node/index.js +4 -2
  28. package/dist/esm-node/locale/en.js +2 -1
  29. package/dist/esm-node/locale/zh.js +2 -1
  30. package/dist/esm-node/plugins/deploy/dependencies.js +222 -0
  31. package/dist/esm-node/plugins/deploy/entrys/netlify.js +71 -0
  32. package/dist/esm-node/plugins/deploy/entrys/node.js +64 -0
  33. package/dist/esm-node/plugins/deploy/entrys/vercel.js +70 -0
  34. package/dist/esm-node/plugins/deploy/index.js +156 -0
  35. package/dist/esm-node/plugins/deploy/utils.js +109 -0
  36. package/dist/esm-node/utils/register.js +1 -1
  37. package/dist/types/locale/en.d.ts +1 -0
  38. package/dist/types/locale/index.d.ts +2 -0
  39. package/dist/types/locale/zh.d.ts +1 -0
  40. package/dist/types/plugins/deploy/dependencies.d.ts +1 -0
  41. package/dist/types/plugins/deploy/entrys/netlify.d.ts +5 -0
  42. package/dist/types/plugins/deploy/entrys/node.d.ts +5 -0
  43. package/dist/types/plugins/deploy/entrys/vercel.d.ts +5 -0
  44. package/dist/types/plugins/deploy/index.d.ts +4 -0
  45. package/dist/types/plugins/deploy/utils.d.ts +27 -0
  46. package/dist/types/utils/types.d.ts +1 -0
  47. package/package.json +26 -22
@@ -0,0 +1,41 @@
1
+ import { ROUTE_SPEC_FILE, DEFAULT_SERVER_CONFIG } from "@modern-js/utils";
2
+ import { genPluginImportsCode, getPluginsCode, severAppContextTemplate } from "../utils";
3
+ function genNetlifyEntry() {
4
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, config = _ref.config, plugins = _ref.plugins, appContext = _ref.appContext;
5
+ var defaultConfig = {
6
+ server: {
7
+ port: 8080
8
+ },
9
+ output: {
10
+ path: "."
11
+ }
12
+ };
13
+ return "\n\n const fs = require('node:fs/promises');\n const path = require('node:path');\n const { createNetlifyFunction } = require('@modern-js/prod-server/netlify');\n ".concat(genPluginImportsCode(plugins || []), `
14
+
15
+ let requestHandler = null;
16
+
17
+ if(!process.env.NODE_ENV){
18
+ process.env.NODE_ENV = 'production';
19
+ }
20
+
21
+ async function createHandler() {
22
+ try {
23
+ let routes = [];
24
+ const routeFilepath = path.join(__dirname, "`).concat(ROUTE_SPEC_FILE, `");
25
+ try {
26
+ await fs.access(routeFilepath);
27
+ const content = await fs.readFile(routeFilepath, "utf-8");
28
+ const routeSpec = JSON.parse(content);
29
+ routes = routeSpec.routes;
30
+ } catch (error) {
31
+ console.warn('route.json not found, continuing with empty routes.');
32
+ }
33
+
34
+ const prodServerOptions = {
35
+ pwd: __dirname,
36
+ routes,
37
+ config: `).concat(JSON.stringify(config || defaultConfig), ",\n serverConfigFile: '").concat(DEFAULT_SERVER_CONFIG, "',\n plugins: ").concat(getPluginsCode(plugins || []), ",\n appContext: ").concat(appContext ? severAppContextTemplate(appContext) : "undefined", ",\n disableCustomHook: true\n }\n\n requestHandler = await createNetlifyFunction(prodServerOptions)\n\n return requestHandler\n } catch(error) {\n console.error(error);\n process.exit(1);\n }\n }\n\n createHandler();\n\n const handleRequest = async(request, context) => {\n if(typeof requestHandler !== 'function'){\n await createHandler();\n }\n return requestHandler(request, context);\n }\n\n export default handleRequest;\n ");
38
+ }
39
+ export {
40
+ genNetlifyEntry
41
+ };
@@ -0,0 +1,39 @@
1
+ import { ROUTE_SPEC_FILE, DEFAULT_SERVER_CONFIG } from "@modern-js/utils";
2
+ import { genPluginImportsCode, getPluginsCode, severAppContextTemplate } from "../utils";
3
+ function genNodeEntry() {
4
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, config = _ref.config, plugins = _ref.plugins, appContext = _ref.appContext;
5
+ var defaultConfig = {
6
+ server: {
7
+ port: 8080
8
+ },
9
+ output: {
10
+ path: "."
11
+ }
12
+ };
13
+ return "\n\n const fs = require('node:fs/promises');\n const path = require('node:path');\n const { createProdServer } = require('@modern-js/prod-server');\n ".concat(genPluginImportsCode(plugins || []), `
14
+
15
+ if(!process.env.NODE_ENV){
16
+ process.env.NODE_ENV = 'production';
17
+ }
18
+
19
+ async function main() {
20
+ try {
21
+ let routes = [];
22
+ const routeFilepath = path.join(__dirname, "`).concat(ROUTE_SPEC_FILE, `");
23
+ try {
24
+ await fs.access(routeFilepath);
25
+ const content = await fs.readFile(routeFilepath, "utf-8");
26
+ const routeSpec = JSON.parse(content);
27
+ routes = routeSpec.routes;
28
+ } catch (error) {
29
+ console.warn('route.json not found, continuing with empty routes.');
30
+ }
31
+
32
+ const prodServerOptions = {
33
+ pwd: __dirname,
34
+ routes,
35
+ config: `).concat(JSON.stringify(config || defaultConfig), ",\n serverConfigFile: '").concat(DEFAULT_SERVER_CONFIG, "',\n plugins: ").concat(getPluginsCode(plugins || []), ",\n appContext: ").concat(appContext ? severAppContextTemplate(appContext) : "undefined", ",\n disableCustomHook: true\n }\n\n const app = await createProdServer(prodServerOptions)\n\n const port = process.env.PORT || 3000;\n\n app.listen(port, () => {\n console.log('\\x1b[32mServer is listening on port', port, '\\x1b[0m');\n });\n } catch(error) {\n console.error(error);\n process.exit(1);\n }\n }\n\n main();\n ");
36
+ }
37
+ export {
38
+ genNodeEntry
39
+ };
@@ -0,0 +1,40 @@
1
+ import { ROUTE_SPEC_FILE, DEFAULT_SERVER_CONFIG } from "@modern-js/utils";
2
+ import { genPluginImportsCode, getPluginsCode, severAppContextTemplate } from "../utils";
3
+ function genVercelEntry() {
4
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, config = _ref.config, plugins = _ref.plugins, appContext = _ref.appContext;
5
+ var defaultConfig = {
6
+ server: {
7
+ port: 8080
8
+ },
9
+ output: {
10
+ path: "."
11
+ }
12
+ };
13
+ return "\n\n const fs = require('node:fs/promises');\n const path = require('node:path');\n const { createProdServer } = require('@modern-js/prod-server');\n ".concat(genPluginImportsCode(plugins || []), `
14
+
15
+ if(!process.env.NODE_ENV){
16
+ process.env.NODE_ENV = 'production';
17
+ }
18
+
19
+ let requestHandler = null;
20
+ async function createHandler() {
21
+ try {
22
+ let routes = [];
23
+ const routeFilepath = path.join(__dirname, "`).concat(ROUTE_SPEC_FILE, `");
24
+ try {
25
+ await fs.access(routeFilepath);
26
+ const content = await fs.readFile(routeFilepath, "utf-8");
27
+ const routeSpec = JSON.parse(content);
28
+ routes = routeSpec.routes;
29
+ } catch (error) {
30
+ console.warn('route.json not found, continuing with empty routes.');
31
+ }
32
+
33
+ const prodServerOptions = {
34
+ pwd: __dirname,
35
+ routes,
36
+ config: `).concat(JSON.stringify(config || defaultConfig), ",\n serverConfigFile: '").concat(DEFAULT_SERVER_CONFIG, "',\n plugins: ").concat(getPluginsCode(plugins || []), ",\n appContext: ").concat(appContext ? severAppContextTemplate(appContext) : "undefined", ",\n disableCustomHook: true\n }\n\n const app = await createProdServer(prodServerOptions)\n\n requestHandler = app.getRequestListener();\n\n return requestHandler;\n } catch(error) {\n console.error(error);\n process.exit(1);\n }\n }\n\n createHandler();\n\n module.exports = async(req, res) => {\n if(typeof requestHandler !== 'function'){\n await createHandler();\n }\n return requestHandler(req, res);\n }\n ");
37
+ }
38
+ export {
39
+ genVercelEntry
40
+ };
@@ -0,0 +1,297 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import { fs as fse, getInternalPlugins } from "@modern-js/utils";
5
+ import { provider } from "std-env";
6
+ import { getProjectUsage } from "./utils";
7
+ import { handleDependencies } from "./dependencies";
8
+ function deploy_default() {
9
+ return {
10
+ name: "@modern-js/plugin-deploy",
11
+ pre: [
12
+ "@modern-js/plugin-bff",
13
+ "@modern-js/plugin-server"
14
+ ],
15
+ setup: function(api) {
16
+ var deployTarget = process.env.MODERNJS_DEPLOY || provider || "node";
17
+ return {
18
+ beforeDeploy: function beforeDeploy(options) {
19
+ return _async_to_generator(function() {
20
+ var outputPath, appContext, appDirectory, distDirectory, serverInternalPlugins, sharedDirectory, apiDirectory, lambdaDirectory, metaName, entrypoints, _getProjectUsage, useSSR, useAPI, useWebServer, needModernServer, configContext, outputDirectory, funcsDirectory, staticDirectory, vercelOutput, config, destHtmlDirectory, outputHtmlDirectory, bff, config1, plugins, serverAppContext, code, genNodeEntry, genVercelEntry, genNetlifyEntry, entryFilePath;
21
+ return _ts_generator(this, function(_state) {
22
+ switch (_state.label) {
23
+ case 0:
24
+ outputPath = options.output;
25
+ appContext = api.useAppContext();
26
+ appDirectory = appContext.appDirectory, distDirectory = appContext.distDirectory, serverInternalPlugins = appContext.serverInternalPlugins, sharedDirectory = appContext.sharedDirectory, apiDirectory = appContext.apiDirectory, lambdaDirectory = appContext.lambdaDirectory, metaName = appContext.metaName, entrypoints = appContext.entrypoints;
27
+ _getProjectUsage = getProjectUsage(appDirectory, distDirectory), useSSR = _getProjectUsage.useSSR, useAPI = _getProjectUsage.useAPI, useWebServer = _getProjectUsage.useWebServer;
28
+ needModernServer = useSSR || useAPI || useWebServer;
29
+ configContext = api.useResolvedConfigContext();
30
+ outputDirectory = path.resolve(appDirectory, ".output");
31
+ if (outputPath) {
32
+ outputDirectory = path.isAbsolute(outputPath) ? outputPath : path.resolve(outputPath);
33
+ }
34
+ funcsDirectory = outputDirectory;
35
+ staticDirectory = path.join(outputDirectory, "static");
36
+ if (!(deployTarget === "node"))
37
+ return [
38
+ 3,
39
+ 3
40
+ ];
41
+ return [
42
+ 4,
43
+ fse.remove(outputDirectory)
44
+ ];
45
+ case 1:
46
+ _state.sent();
47
+ return [
48
+ 4,
49
+ fse.copy(distDirectory, outputDirectory)
50
+ ];
51
+ case 2:
52
+ _state.sent();
53
+ _state.label = 3;
54
+ case 3:
55
+ if (!(deployTarget === "vercel"))
56
+ return [
57
+ 3,
58
+ 13
59
+ ];
60
+ vercelOutput = path.join(appDirectory, ".vercel");
61
+ return [
62
+ 4,
63
+ fse.remove(vercelOutput)
64
+ ];
65
+ case 4:
66
+ _state.sent();
67
+ outputDirectory = path.join(vercelOutput, "output");
68
+ config = {
69
+ version: 3,
70
+ routes: [
71
+ {
72
+ src: "/static/(.*)",
73
+ headers: {
74
+ "cache-control": "s-maxage=31536000, immutable"
75
+ },
76
+ continue: true
77
+ },
78
+ {
79
+ handle: "filesystem"
80
+ }
81
+ ]
82
+ };
83
+ if (!needModernServer) {
84
+ entrypoints.forEach(function(entry) {
85
+ config.routes.push({
86
+ src: "/".concat(entry.entryName, "(?:/.*)?"),
87
+ headers: {
88
+ "cache-control": "s-maxage=0"
89
+ },
90
+ dest: "/html/".concat(entry.entryName, "/index.html")
91
+ });
92
+ });
93
+ } else {
94
+ config.routes.push({
95
+ src: "/(.*)",
96
+ dest: "/index"
97
+ });
98
+ }
99
+ return [
100
+ 4,
101
+ fse.ensureDir(outputDirectory)
102
+ ];
103
+ case 5:
104
+ _state.sent();
105
+ return [
106
+ 4,
107
+ fse.writeJSON(path.join(outputDirectory, "config.json"), config, {
108
+ spaces: 2
109
+ })
110
+ ];
111
+ case 6:
112
+ _state.sent();
113
+ staticDirectory = path.join(outputDirectory, "static/static");
114
+ return [
115
+ 4,
116
+ fse.copy(path.join(distDirectory, "static"), staticDirectory)
117
+ ];
118
+ case 7:
119
+ _state.sent();
120
+ if (!!needModernServer)
121
+ return [
122
+ 3,
123
+ 9
124
+ ];
125
+ destHtmlDirectory = path.join(distDirectory, "html");
126
+ outputHtmlDirectory = path.join(path.join(outputDirectory, "static"), "html");
127
+ return [
128
+ 4,
129
+ fse.copy(destHtmlDirectory, outputHtmlDirectory)
130
+ ];
131
+ case 8:
132
+ _state.sent();
133
+ return [
134
+ 3,
135
+ 13
136
+ ];
137
+ case 9:
138
+ funcsDirectory = path.join(outputDirectory, "functions", "index.func");
139
+ return [
140
+ 4,
141
+ fse.ensureDir(funcsDirectory)
142
+ ];
143
+ case 10:
144
+ _state.sent();
145
+ return [
146
+ 4,
147
+ fse.copy(distDirectory, funcsDirectory, {
148
+ filter: function(src) {
149
+ var distStaticDirectory = path.join(distDirectory, "static");
150
+ return !src.includes(distStaticDirectory);
151
+ }
152
+ })
153
+ ];
154
+ case 11:
155
+ _state.sent();
156
+ return [
157
+ 4,
158
+ fse.writeJSON(path.join(funcsDirectory, ".vc-config.json"), {
159
+ runtime: "nodejs16.x",
160
+ handler: "index.js",
161
+ launcherType: "Nodejs",
162
+ shouldAddHelpers: false,
163
+ supportsResponseStreaming: true
164
+ })
165
+ ];
166
+ case 12:
167
+ _state.sent();
168
+ _state.label = 13;
169
+ case 13:
170
+ bff = configContext.bff;
171
+ config1 = {
172
+ output: {
173
+ path: "."
174
+ },
175
+ bff
176
+ };
177
+ plugins = getInternalPlugins(appDirectory, serverInternalPlugins);
178
+ serverAppContext = {
179
+ sharedDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, sharedDirectory), '")'),
180
+ apiDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, apiDirectory), '")'),
181
+ lambdaDirectory: 'path.join(__dirname, "'.concat(path.relative(appDirectory, lambdaDirectory), '")'),
182
+ metaName
183
+ };
184
+ code = "";
185
+ console.log("deployTarget111111111", deployTarget);
186
+ switch (deployTarget) {
187
+ case "node":
188
+ return [
189
+ 3,
190
+ 14
191
+ ];
192
+ case "vercel":
193
+ return [
194
+ 3,
195
+ 16
196
+ ];
197
+ case "netlify":
198
+ return [
199
+ 3,
200
+ 18
201
+ ];
202
+ }
203
+ return [
204
+ 3,
205
+ 20
206
+ ];
207
+ case 14:
208
+ return [
209
+ 4,
210
+ import("./entrys/node")
211
+ ];
212
+ case 15:
213
+ genNodeEntry = _state.sent().genNodeEntry;
214
+ code = genNodeEntry({
215
+ plugins,
216
+ config: config1,
217
+ appContext: serverAppContext
218
+ });
219
+ return [
220
+ 3,
221
+ 21
222
+ ];
223
+ case 16:
224
+ return [
225
+ 4,
226
+ import("./entrys/vercel")
227
+ ];
228
+ case 17:
229
+ genVercelEntry = _state.sent().genVercelEntry;
230
+ code = genVercelEntry({
231
+ plugins,
232
+ config: config1,
233
+ appContext: serverAppContext
234
+ });
235
+ return [
236
+ 3,
237
+ 21
238
+ ];
239
+ case 18:
240
+ return [
241
+ 4,
242
+ import("./entrys/netlify")
243
+ ];
244
+ case 19:
245
+ genNetlifyEntry = _state.sent().genNetlifyEntry;
246
+ code = genNetlifyEntry({
247
+ plugins,
248
+ config: config1,
249
+ appContext: serverAppContext
250
+ });
251
+ return [
252
+ 3,
253
+ 21
254
+ ];
255
+ case 20:
256
+ {
257
+ code = 'throw new Error("unknown deploy target, MODERNJS_DEPLOY should be set");';
258
+ }
259
+ _state.label = 21;
260
+ case 21:
261
+ entryFilePath = path.join(funcsDirectory, "index.js");
262
+ if (!needModernServer)
263
+ return [
264
+ 3,
265
+ 24
266
+ ];
267
+ return [
268
+ 4,
269
+ fse.writeFile(entryFilePath, code)
270
+ ];
271
+ case 22:
272
+ _state.sent();
273
+ return [
274
+ 4,
275
+ handleDependencies(appDirectory, funcsDirectory, [
276
+ "@modern-js/prod-server"
277
+ ])
278
+ ];
279
+ case 23:
280
+ _state.sent();
281
+ _state.label = 24;
282
+ case 24:
283
+ return [
284
+ 2
285
+ ];
286
+ }
287
+ });
288
+ })();
289
+ }
290
+ };
291
+ }
292
+ };
293
+ }
294
+ ;
295
+ export {
296
+ deploy_default as default
297
+ };
@@ -0,0 +1,244 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import os from "node:os";
5
+ import { ROUTE_SPEC_FILE, fs as fse, isDepExists } from "@modern-js/utils";
6
+ import { parseNodeModulePath } from "mlly";
7
+ var severAppContextTemplate = function(serverAppContext) {
8
+ return "{\n sharedDirectory: ".concat(serverAppContext.sharedDirectory, ",\n apiDirectory: ").concat(serverAppContext.apiDirectory, ",\n lambdaDirectory: ").concat(serverAppContext.lambdaDirectory, ",\n }");
9
+ };
10
+ var getPluginsCode = function(plugins) {
11
+ return "[".concat(plugins.map(function(_, index) {
12
+ return "plugin_".concat(index, "()");
13
+ }).join(","), "]");
14
+ };
15
+ var genPluginImportsCode = function(plugins) {
16
+ return plugins.map(function(plugin, index) {
17
+ return "\n let plugin_".concat(index, " = require('").concat(plugin, "')\n plugin_").concat(index, " = plugin_").concat(index, ".default || plugin_").concat(index, "\n ");
18
+ }).join(";\n");
19
+ };
20
+ var getProjectUsage = function(appDirectory, distDirectory) {
21
+ var routeJSON = path.join(distDirectory, ROUTE_SPEC_FILE);
22
+ var routes = fse.readJSONSync(routeJSON).routes;
23
+ var useSSR = false;
24
+ var useAPI = false;
25
+ routes.forEach(function(route) {
26
+ if (route.isSSR) {
27
+ useSSR = true;
28
+ }
29
+ if (route.isApi) {
30
+ useAPI = true;
31
+ }
32
+ });
33
+ var useWebServer = isDepExists(appDirectory, "@modern-js/plugin-server");
34
+ return {
35
+ useSSR,
36
+ useAPI,
37
+ useWebServer
38
+ };
39
+ };
40
+ function applyProductionCondition(exports) {
41
+ if (!exports || typeof exports === "string") {
42
+ return;
43
+ }
44
+ if (exports.production) {
45
+ if (typeof exports.production === "string") {
46
+ exports.default = exports.production;
47
+ } else {
48
+ Object.assign(exports, exports.production);
49
+ }
50
+ }
51
+ for (var key in exports) {
52
+ applyProductionCondition(exports[key]);
53
+ }
54
+ }
55
+ function applyPublicCondition(pkg) {
56
+ var _pkg_publishConfig;
57
+ if (pkg === null || pkg === void 0 ? void 0 : (_pkg_publishConfig = pkg.publishConfig) === null || _pkg_publishConfig === void 0 ? void 0 : _pkg_publishConfig.exports) {
58
+ var _pkg_publishConfig1;
59
+ pkg.exports = pkg === null || pkg === void 0 ? void 0 : (_pkg_publishConfig1 = pkg.publishConfig) === null || _pkg_publishConfig1 === void 0 ? void 0 : _pkg_publishConfig1.exports;
60
+ }
61
+ }
62
+ var writePackage = function() {
63
+ var _ref = _async_to_generator(function(pkg, version, projectDir, _pkgPath) {
64
+ var pkgPath, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, src, subpath, dest, dirname, subpath1, dest1, dirname1, err, pkgJSON, packageJsonPath;
65
+ return _ts_generator(this, function(_state) {
66
+ switch (_state.label) {
67
+ case 0:
68
+ pkgPath = _pkgPath || pkg.name;
69
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
70
+ _state.label = 1;
71
+ case 1:
72
+ _state.trys.push([
73
+ 1,
74
+ 10,
75
+ 11,
76
+ 12
77
+ ]);
78
+ _iterator = pkg.versions[version].files[Symbol.iterator]();
79
+ _state.label = 2;
80
+ case 2:
81
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done))
82
+ return [
83
+ 3,
84
+ 9
85
+ ];
86
+ src = _step.value;
87
+ if (!src.includes("node_modules"))
88
+ return [
89
+ 3,
90
+ 5
91
+ ];
92
+ subpath = parseNodeModulePath(src).subpath;
93
+ dest = path.join(projectDir, "node_modules", pkgPath, subpath);
94
+ dirname = path.dirname(dest);
95
+ return [
96
+ 4,
97
+ fse.ensureDir(dirname)
98
+ ];
99
+ case 3:
100
+ _state.sent();
101
+ return [
102
+ 4,
103
+ fse.copyFile(src, dest)
104
+ ];
105
+ case 4:
106
+ _state.sent();
107
+ return [
108
+ 3,
109
+ 8
110
+ ];
111
+ case 5:
112
+ subpath1 = path.relative(pkg.versions[version].path, src);
113
+ dest1 = path.join(projectDir, "node_modules", pkgPath, subpath1);
114
+ dirname1 = path.dirname(dest1);
115
+ return [
116
+ 4,
117
+ fse.ensureDir(dirname1)
118
+ ];
119
+ case 6:
120
+ _state.sent();
121
+ return [
122
+ 4,
123
+ fse.copyFile(src, dest1)
124
+ ];
125
+ case 7:
126
+ _state.sent();
127
+ _state.label = 8;
128
+ case 8:
129
+ _iteratorNormalCompletion = true;
130
+ return [
131
+ 3,
132
+ 2
133
+ ];
134
+ case 9:
135
+ return [
136
+ 3,
137
+ 12
138
+ ];
139
+ case 10:
140
+ err = _state.sent();
141
+ _didIteratorError = true;
142
+ _iteratorError = err;
143
+ return [
144
+ 3,
145
+ 12
146
+ ];
147
+ case 11:
148
+ try {
149
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
150
+ _iterator.return();
151
+ }
152
+ } finally {
153
+ if (_didIteratorError) {
154
+ throw _iteratorError;
155
+ }
156
+ }
157
+ return [
158
+ 7
159
+ ];
160
+ case 12:
161
+ pkgJSON = pkg.versions[version].pkgJSON;
162
+ applyPublicCondition(pkgJSON);
163
+ packageJsonPath = path.join(projectDir, "node_modules", pkgPath, "package.json");
164
+ return [
165
+ 4,
166
+ fse.ensureDir(path.dirname(packageJsonPath))
167
+ ];
168
+ case 13:
169
+ _state.sent();
170
+ return [
171
+ 4,
172
+ fse.writeFile(packageJsonPath, JSON.stringify(pkgJSON, null, 2))
173
+ ];
174
+ case 14:
175
+ _state.sent();
176
+ return [
177
+ 2
178
+ ];
179
+ }
180
+ });
181
+ });
182
+ return function writePackage2(pkg, version, projectDir, _pkgPath) {
183
+ return _ref.apply(this, arguments);
184
+ };
185
+ }();
186
+ var isWindows = os.platform() === "win32";
187
+ var linkPackage = function() {
188
+ var _ref = _async_to_generator(function(from, to, projectRootDir) {
189
+ var src, dest, dstStat, exists;
190
+ return _ts_generator(this, function(_state) {
191
+ switch (_state.label) {
192
+ case 0:
193
+ src = path.join(projectRootDir, "node_modules", from);
194
+ dest = path.join(projectRootDir, "node_modules", to);
195
+ return [
196
+ 4,
197
+ fse.lstat(dest).catch(function() {
198
+ return null;
199
+ })
200
+ ];
201
+ case 1:
202
+ dstStat = _state.sent();
203
+ exists = dstStat === null || dstStat === void 0 ? void 0 : dstStat.isSymbolicLink();
204
+ if (exists) {
205
+ return [
206
+ 2
207
+ ];
208
+ }
209
+ return [
210
+ 4,
211
+ fse.mkdir(path.dirname(dest), {
212
+ recursive: true
213
+ })
214
+ ];
215
+ case 2:
216
+ _state.sent();
217
+ return [
218
+ 4,
219
+ fse.symlink(path.relative(path.dirname(dest), src), dest, isWindows ? "junction" : "dir").catch(function(error) {
220
+ console.error("Cannot link", from, "to", to, error);
221
+ })
222
+ ];
223
+ case 3:
224
+ _state.sent();
225
+ return [
226
+ 2
227
+ ];
228
+ }
229
+ });
230
+ });
231
+ return function linkPackage2(from, to, projectRootDir) {
232
+ return _ref.apply(this, arguments);
233
+ };
234
+ }();
235
+ export {
236
+ applyProductionCondition,
237
+ applyPublicCondition,
238
+ genPluginImportsCode,
239
+ getPluginsCode,
240
+ getProjectUsage,
241
+ linkPackage,
242
+ severAppContextTemplate,
243
+ writePackage
244
+ };
@@ -66,7 +66,7 @@ var registerCompiler = function() {
66
66
  transpileOnly: true,
67
67
  ignore: [
68
68
  "(?:^|/)node_modules/",
69
- "(?:^|/)".concat(distDir, "/")
69
+ "(?:^|/)".concat(path.relative(appDir, distDir), "/")
70
70
  ]
71
71
  }, tsNodeOptions));
72
72
  }
@@ -1,7 +1,7 @@
1
1
  import * as path from "path";
2
2
  import { isHtmlDisabled } from "@rsbuild/shared";
3
3
  import { mergeRsbuildConfig } from "@rsbuild/core";
4
- import { isSSR, fs } from "@modern-js/utils";
4
+ import { fs, isUseSSRBundle } from "@modern-js/utils";
5
5
  import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
6
6
  import { getServerCombinedModueFile } from "../../../analyze/utils";
7
7
  const builderPluginAdapterSSR = (options) => ({
@@ -24,7 +24,7 @@ const builderPluginAdapterSSR = (options) => ({
24
24
  const builderConfig = api.getNormalizedConfig();
25
25
  const { normalizedConfig: normalizedConfig2 } = options;
26
26
  applyRouterPlugin(chain, "route-plugin", options, HtmlBundlerPlugin);
27
- if (isSSR(normalizedConfig2)) {
27
+ if (isUseSSRBundle(normalizedConfig2)) {
28
28
  await applySSRLoaderEntry(chain, options, isServer);
29
29
  applySSRDataLoader(chain, options);
30
30
  }