@bleedingdev/modern-js-app-tools 3.2.0-ultramodern.12 → 3.2.0-ultramodern.120
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/bin/modern.js +0 -0
- package/dist/cjs/baseline.js +51 -5
- package/dist/cjs/builder/builder-rspack/index.js +9 -5
- package/dist/cjs/builder/generator/adapterCopy.js +9 -5
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +9 -5
- package/dist/cjs/builder/generator/createCopyPattern.js +9 -5
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +199 -12
- package/dist/cjs/builder/generator/index.js +9 -5
- package/dist/cjs/builder/index.js +9 -5
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +50 -10
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +10 -6
- package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +9 -5
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +12 -6
- package/dist/cjs/builder/shared/builderPlugins/builderHooks.js +12 -8
- package/dist/cjs/builder/shared/builderPlugins/index.js +9 -5
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +9 -5
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +12 -8
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +9 -5
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +9 -5
- package/dist/cjs/builder/shared/createCopyInfo.js +9 -5
- package/dist/cjs/builder/shared/index.js +9 -5
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +12 -8
- package/dist/cjs/commands/build.js +9 -5
- package/dist/cjs/commands/deploy.js +9 -5
- package/dist/cjs/commands/dev.js +9 -5
- package/dist/cjs/commands/index.js +9 -5
- package/dist/cjs/commands/info.js +9 -5
- package/dist/cjs/commands/inspect.js +12 -8
- package/dist/cjs/commands/runtime.js +15 -11
- package/dist/cjs/commands/serve.js +9 -5
- package/dist/cjs/compat/hooks.js +9 -5
- package/dist/cjs/compat/index.js +9 -5
- package/dist/cjs/compat/utils.js +9 -5
- package/dist/cjs/config/default.js +9 -5
- package/dist/cjs/config/index.js +9 -5
- package/dist/cjs/config/initialize/index.js +9 -5
- package/dist/cjs/config/initialize/inits.js +9 -5
- package/dist/cjs/constants.js +13 -9
- package/dist/cjs/defineConfig.js +12 -8
- package/dist/cjs/esm/register-esm.js +12 -8
- package/dist/cjs/esm/ts-paths-loader.js +9 -5
- package/dist/cjs/index.js +21 -16
- package/dist/cjs/locale/en.js +12 -8
- package/dist/cjs/locale/index.js +9 -5
- package/dist/cjs/locale/zh.js +12 -8
- package/dist/cjs/plugins/analyze/constants.js +14 -10
- package/dist/cjs/plugins/analyze/getBundleEntry.js +9 -5
- package/dist/cjs/plugins/analyze/getFileSystemEntry.js +9 -5
- package/dist/cjs/plugins/analyze/getHtmlTemplate.js +9 -5
- package/dist/cjs/plugins/analyze/getServerRoutes.js +9 -5
- package/dist/cjs/plugins/analyze/index.js +9 -5
- package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +9 -5
- package/dist/cjs/plugins/analyze/templates.js +12 -8
- package/dist/cjs/plugins/analyze/utils.js +9 -5
- package/dist/cjs/plugins/deploy/index.js +26 -11
- package/dist/cjs/plugins/deploy/platforms/cloudflare.js +384 -0
- package/dist/cjs/plugins/deploy/platforms/gh-pages.js +9 -5
- package/dist/cjs/plugins/deploy/platforms/netlify.js +9 -5
- package/dist/cjs/plugins/deploy/platforms/node.js +9 -5
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.mjs +502 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
- package/dist/cjs/plugins/deploy/platforms/vercel.js +9 -5
- package/dist/cjs/plugins/deploy/utils/generator.js +9 -5
- package/dist/cjs/plugins/deploy/utils/index.js +9 -5
- package/dist/cjs/plugins/initialize/index.js +9 -5
- package/dist/cjs/plugins/serverBuild.js +9 -5
- package/dist/cjs/plugins/serverRuntime.js +12 -8
- package/dist/cjs/presetUltramodern.js +9 -5
- package/dist/cjs/rsbuild.js +12 -5
- package/dist/cjs/run/index.js +9 -5
- package/dist/cjs/types/config/index.js +9 -5
- package/dist/cjs/types/index.js +9 -5
- package/dist/cjs/ultramodern/designSystem.js +16 -12
- package/dist/cjs/utils/config.js +9 -5
- package/dist/cjs/utils/createServer.js +14 -10
- package/dist/cjs/utils/env.js +9 -5
- package/dist/cjs/utils/generateWatchFiles.js +9 -5
- package/dist/cjs/utils/getConfigFile.js +9 -5
- package/dist/cjs/utils/getSelectedEntries.js +9 -5
- package/dist/cjs/utils/initAppContext.js +9 -5
- package/dist/cjs/utils/loadPlugins.js +9 -5
- package/dist/cjs/utils/printInstructions.js +9 -5
- package/dist/cjs/utils/register.js +9 -5
- package/dist/cjs/utils/restart.js +9 -5
- package/dist/cjs/utils/routes.js +9 -5
- package/dist/esm/baseline.mjs +33 -1
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +180 -8
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.mjs +41 -5
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.mjs +1 -1
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +3 -1
- package/dist/esm/plugins/deploy/index.mjs +10 -4
- package/dist/esm/plugins/deploy/platforms/cloudflare.mjs +336 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.mjs +502 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
- package/dist/esm/rsbuild.mjs +5 -2
- package/dist/esm-node/baseline.mjs +33 -1
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +185 -9
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +41 -5
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.mjs +1 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +3 -1
- package/dist/esm-node/plugins/deploy/index.mjs +10 -4
- package/dist/esm-node/plugins/deploy/platforms/cloudflare.mjs +337 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.mjs +502 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +7 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +185 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +59 -0
- package/dist/esm-node/rsbuild.mjs +5 -2
- package/dist/types/builder/builder-rspack/index.d.ts +1 -1
- package/dist/types/builder/generator/index.d.ts +1 -1
- package/dist/types/builder/shared/createCopyInfo.d.ts +1 -1
- package/dist/types/commands/inspect.d.ts +1 -1
- package/dist/types/locale/en.d.ts +1 -1
- package/dist/types/locale/index.d.ts +89 -2
- package/dist/types/locale/zh.d.ts +1 -1
- package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +2 -2
- package/dist/types/plugins/analyze/utils.d.ts +1 -1
- package/dist/types/plugins/deploy/index.d.ts +4 -1
- package/dist/types/plugins/deploy/platforms/cloudflare.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.d.mts +4 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.d.mts +5 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.d.mts +48 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-path.d.mts +21 -0
- package/dist/types/plugins/deploy/utils/generator.d.ts +2 -2
- package/dist/types/plugins/deploy/utils/index.d.ts +1 -1
- package/dist/types/rsbuild.d.ts +1 -1
- package/dist/types/run/index.d.ts +1 -1
- package/dist/types/types/config/deploy.d.ts +56 -0
- package/dist/types/utils/getConfigFile.d.ts +1 -1
- package/dist/types/utils/loadPlugins.d.ts +2 -2
- package/package.json +22 -21
package/bin/modern.js
CHANGED
|
File without changes
|
package/dist/cjs/baseline.js
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
6
|
+
__webpack_require__.d(getter, {
|
|
7
|
+
a: getter
|
|
8
8
|
});
|
|
9
|
+
return getter;
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
9
22
|
};
|
|
10
23
|
})();
|
|
11
24
|
(()=>{
|
|
@@ -27,7 +40,37 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
27
40
|
createAppBaselineConfig: ()=>createAppBaselineConfig,
|
|
28
41
|
withAppBaseline: ()=>withAppBaseline
|
|
29
42
|
});
|
|
43
|
+
const external_node_module_namespaceObject = require("node:module");
|
|
44
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
45
|
+
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
30
46
|
const cli_namespaceObject = require("@modern-js/plugin/cli");
|
|
47
|
+
const resolveReactRouterPackageDir = ()=>{
|
|
48
|
+
const localRequire = (0, external_node_module_namespaceObject.createRequire)(external_node_path_default().join(process.cwd(), 'package.json'));
|
|
49
|
+
try {
|
|
50
|
+
const reactRouterDomPackageJson = localRequire.resolve('react-router-dom/package.json', {
|
|
51
|
+
paths: [
|
|
52
|
+
process.cwd()
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
const reactRouterPackageJson = localRequire.resolve('react-router/package.json', {
|
|
56
|
+
paths: [
|
|
57
|
+
external_node_path_default().dirname(reactRouterDomPackageJson)
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
return external_node_path_default().dirname(reactRouterPackageJson);
|
|
61
|
+
} catch {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const setReactRouterBridgeSafeAliases = (chain)=>{
|
|
66
|
+
const reactRouterPackageDir = resolveReactRouterPackageDir();
|
|
67
|
+
if (!reactRouterPackageDir) return;
|
|
68
|
+
const productionEntry = external_node_path_default().join(reactRouterPackageDir, 'dist/production/index.mjs');
|
|
69
|
+
const developmentEntry = external_node_path_default().join(reactRouterPackageDir, 'dist/development/index.mjs');
|
|
70
|
+
chain.resolve.alias.set('react-router$', productionEntry);
|
|
71
|
+
chain.resolve.alias.set('react-router/dist/production/index.js', productionEntry);
|
|
72
|
+
chain.resolve.alias.set('react-router/dist/development/index.js', developmentEntry);
|
|
73
|
+
};
|
|
31
74
|
const createAppBaselineConfig = (options = {})=>{
|
|
32
75
|
const { appId = 'app', enableBffRequestId = true, enableTelemetry = true, enableTelemetryExporters = true, otlpEndpoint = process.env.MODERN_TELEMETRY_OTLP_ENDPOINT || 'http://127.0.0.1:4318/v1/logs', victoriaMetricsEndpoint = process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT || 'http://127.0.0.1:8428/api/v1/import/prometheus', telemetryFailLoudStartup = true, enableModuleFederationSSR = true } = options;
|
|
33
76
|
const server = {};
|
|
@@ -61,7 +104,10 @@ const createAppBaselineConfig = (options = {})=>{
|
|
|
61
104
|
disableClientServer: true
|
|
62
105
|
}
|
|
63
106
|
},
|
|
64
|
-
server
|
|
107
|
+
server,
|
|
108
|
+
tools: {
|
|
109
|
+
bundlerChain: setReactRouterBridgeSafeAliases
|
|
110
|
+
}
|
|
65
111
|
};
|
|
66
112
|
if (enableBffRequestId) baselineConfig.bff = {
|
|
67
113
|
requestId: appId
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
6
|
+
__webpack_require__.d(getter, {
|
|
7
|
+
a: getter
|
|
8
8
|
});
|
|
9
|
+
return getter;
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
9
22
|
};
|
|
10
23
|
})();
|
|
11
24
|
(()=>{
|
|
@@ -26,8 +39,74 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26
39
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
40
|
getBuilderEnvironments: ()=>getBuilderEnvironments
|
|
28
41
|
});
|
|
42
|
+
const external_node_fs_namespaceObject = require("node:fs");
|
|
43
|
+
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
44
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
45
|
+
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
29
46
|
const builder_namespaceObject = require("@modern-js/builder");
|
|
30
47
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
48
|
+
const BFF_EFFECT_WORKER_ENTRY_NAME = '__modern_bff_effect';
|
|
49
|
+
const BFF_EFFECT_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
|
|
50
|
+
const JS_OR_TS_EXTS = [
|
|
51
|
+
'.ts',
|
|
52
|
+
'.tsx',
|
|
53
|
+
'.js',
|
|
54
|
+
'.jsx',
|
|
55
|
+
'.mjs',
|
|
56
|
+
'.cjs'
|
|
57
|
+
];
|
|
58
|
+
const CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR = external_node_path_default().resolve(__dirname, '../../plugins/deploy/platforms/templates');
|
|
59
|
+
function findExistingFile(candidates) {
|
|
60
|
+
return candidates.find((candidate)=>external_node_fs_default().existsSync(candidate));
|
|
61
|
+
}
|
|
62
|
+
function resolvePackageEntry(packageName, paths) {
|
|
63
|
+
try {
|
|
64
|
+
return external_node_fs_default().realpathSync(require.resolve(packageName, {
|
|
65
|
+
paths
|
|
66
|
+
}));
|
|
67
|
+
} catch {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function resolvePackageFile(packageName, filePath, paths) {
|
|
72
|
+
try {
|
|
73
|
+
return external_node_fs_default().realpathSync(require.resolve(`${packageName}/${filePath}`, {
|
|
74
|
+
paths
|
|
75
|
+
}));
|
|
76
|
+
} catch {
|
|
77
|
+
const packageEntry = resolvePackageEntry(packageName, paths);
|
|
78
|
+
if (!packageEntry) return;
|
|
79
|
+
const packageRoot = findPackageRoot(packageEntry, packageName);
|
|
80
|
+
const packageFile = packageRoot ? external_node_path_default().join(packageRoot, filePath) : void 0;
|
|
81
|
+
return packageFile && external_node_fs_default().existsSync(packageFile) ? external_node_fs_default().realpathSync(packageFile) : void 0;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function findPackageRoot(entryFile, packageName) {
|
|
85
|
+
let directory = external_node_path_default().dirname(entryFile);
|
|
86
|
+
while(directory !== external_node_path_default().dirname(directory)){
|
|
87
|
+
const packageJsonPath = external_node_path_default().join(directory, 'package.json');
|
|
88
|
+
try {
|
|
89
|
+
const packageJson = JSON.parse(external_node_fs_default().readFileSync(packageJsonPath, 'utf-8'));
|
|
90
|
+
if (packageJson.name === packageName) return directory;
|
|
91
|
+
} catch {}
|
|
92
|
+
directory = external_node_path_default().dirname(directory);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function setAliasIfPresent(alias, name, value) {
|
|
96
|
+
if (value) alias.set(name, value);
|
|
97
|
+
}
|
|
98
|
+
function getCloudflareWorkerCompatFile(file) {
|
|
99
|
+
return external_node_path_default().join(CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR, file);
|
|
100
|
+
}
|
|
101
|
+
function getEffectBffEntry(normalizedConfig, appContext) {
|
|
102
|
+
if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
|
|
103
|
+
const configuredEntry = normalizedConfig.bff.effect?.entry;
|
|
104
|
+
const entryWithoutExtension = configuredEntry ? external_node_path_default().isAbsolute(configuredEntry) ? configuredEntry : external_node_path_default().resolve(appContext.appDirectory, configuredEntry) : external_node_path_default().resolve(appContext.apiDirectory, 'effect', 'index');
|
|
105
|
+
return findExistingFile(JS_OR_TS_EXTS.map((extension)=>`${entryWithoutExtension}${extension}`));
|
|
106
|
+
}
|
|
107
|
+
function isCloudflareWorkerDeploy(normalizedConfig) {
|
|
108
|
+
return normalizedConfig.deploy?.target === 'cloudflare' || 'cloudflare' === process.env.MODERNJS_DEPLOY;
|
|
109
|
+
}
|
|
31
110
|
function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig) {
|
|
32
111
|
const entries = {};
|
|
33
112
|
const { entrypoints = [], checkedEntries } = appContext;
|
|
@@ -44,6 +123,11 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
|
|
|
44
123
|
const v = entries[entry];
|
|
45
124
|
serverEntries[entry] = v.map((entry)=>entry.replace('index.jsx', 'index.server.jsx')).map((entry)=>entry.replace('bootstrap.jsx', 'bootstrap.server.jsx'));
|
|
46
125
|
}
|
|
126
|
+
const cloudflareWorkerServerEntries = {};
|
|
127
|
+
for(const entry in entries){
|
|
128
|
+
const v = entries[entry];
|
|
129
|
+
cloudflareWorkerServerEntries[entry] = v.map((entry)=>entry.replace('index.jsx', 'index.server.jsx')).map((entry)=>entry.replace('bootstrap.jsx', 'index.server.jsx'));
|
|
130
|
+
}
|
|
47
131
|
const environments = {
|
|
48
132
|
client: {
|
|
49
133
|
output: {
|
|
@@ -68,14 +152,117 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
|
|
|
68
152
|
}
|
|
69
153
|
};
|
|
70
154
|
const useWorkerTarget = (0, utils_namespaceObject.isServiceWorker)(normalizedConfig);
|
|
71
|
-
if (useWorkerTarget)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
155
|
+
if (useWorkerTarget) {
|
|
156
|
+
const useCloudflareModuleWorker = isCloudflareWorkerDeploy(normalizedConfig);
|
|
157
|
+
const effectBffEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
|
|
158
|
+
const tanstackRouterSsrServerFile = useCloudflareModuleWorker ? resolvePackageFile('@tanstack/router-core', 'dist/esm/ssr/ssr-server.js', [
|
|
159
|
+
appContext.appDirectory,
|
|
160
|
+
process.cwd()
|
|
161
|
+
]) : void 0;
|
|
162
|
+
const runtimeRscWorkerFile = useCloudflareModuleWorker ? resolvePackageFile('@modern-js/runtime', 'dist/esm/rsc/server.worker.mjs', [
|
|
163
|
+
appContext.appDirectory,
|
|
164
|
+
process.cwd()
|
|
165
|
+
]) : void 0;
|
|
166
|
+
const renderRscWorkerFile = useCloudflareModuleWorker ? resolvePackageFile('@modern-js/render', 'dist/esm/rscWorker.mjs', [
|
|
167
|
+
appContext.appDirectory,
|
|
168
|
+
process.cwd()
|
|
169
|
+
]) : void 0;
|
|
170
|
+
const reactFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'index.js', [
|
|
171
|
+
appContext.appDirectory,
|
|
172
|
+
process.cwd()
|
|
173
|
+
]) : void 0;
|
|
174
|
+
const reactJsxRuntimeFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'jsx-runtime.js', [
|
|
175
|
+
appContext.appDirectory,
|
|
176
|
+
process.cwd()
|
|
177
|
+
]) : void 0;
|
|
178
|
+
const reactJsxDevRuntimeFile = useCloudflareModuleWorker ? resolvePackageFile('react', 'jsx-dev-runtime.js', [
|
|
179
|
+
appContext.appDirectory,
|
|
180
|
+
process.cwd()
|
|
181
|
+
]) : void 0;
|
|
182
|
+
const reactDomFile = useCloudflareModuleWorker ? resolvePackageFile('react-dom', 'index.js', [
|
|
183
|
+
appContext.appDirectory,
|
|
184
|
+
process.cwd()
|
|
185
|
+
]) : void 0;
|
|
186
|
+
const reactDomServerEdgeFile = useCloudflareModuleWorker ? resolvePackageFile('react-dom', 'server.edge.js', [
|
|
187
|
+
appContext.appDirectory,
|
|
188
|
+
process.cwd()
|
|
189
|
+
]) : void 0;
|
|
190
|
+
const loadableComponentFile = useCloudflareModuleWorker ? resolvePackageFile('@loadable/component', 'dist/esm/loadable.esm.mjs', [
|
|
191
|
+
appContext.appDirectory,
|
|
192
|
+
process.cwd(),
|
|
193
|
+
CLOUDFLARE_WORKER_COMPAT_TEMPLATE_DIR
|
|
194
|
+
]) : void 0;
|
|
195
|
+
const loadableServerWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-loadable-server.mjs') : void 0;
|
|
196
|
+
const fsPromisesWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-fs-promises.mjs') : void 0;
|
|
197
|
+
const pathWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-path.mjs') : void 0;
|
|
198
|
+
const baseWorkerEntries = useCloudflareModuleWorker ? cloudflareWorkerServerEntries : serverEntries;
|
|
199
|
+
const workerEntries = effectBffEntry ? {
|
|
200
|
+
...baseWorkerEntries,
|
|
201
|
+
[BFF_EFFECT_WORKER_ENTRY_NAME]: [
|
|
202
|
+
`${effectBffEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
|
|
203
|
+
]
|
|
204
|
+
} : baseWorkerEntries;
|
|
205
|
+
environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] = {
|
|
206
|
+
output: {
|
|
207
|
+
target: useCloudflareModuleWorker ? 'web' : 'web-worker',
|
|
208
|
+
...useCloudflareModuleWorker ? {
|
|
209
|
+
module: true
|
|
210
|
+
} : {}
|
|
211
|
+
},
|
|
212
|
+
source: {
|
|
213
|
+
entry: workerEntries
|
|
214
|
+
},
|
|
215
|
+
tools: {
|
|
216
|
+
htmlPlugin: false,
|
|
217
|
+
...useCloudflareModuleWorker ? {
|
|
218
|
+
bundlerChain: (chain)=>{
|
|
219
|
+
chain.merge({
|
|
220
|
+
experiments: {
|
|
221
|
+
outputModule: true
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
chain.output.module(true).library({
|
|
225
|
+
type: 'module'
|
|
226
|
+
}).chunkFormat('module').chunkLoading('import').workerChunkLoading('import');
|
|
227
|
+
chain.target('webworker');
|
|
228
|
+
chain.plugins.delete('plugin-module-federation');
|
|
229
|
+
if (tanstackRouterSsrServerFile) {
|
|
230
|
+
chain.resolve.alias.set('@tanstack/router-core/ssr/server$', tanstackRouterSsrServerFile);
|
|
231
|
+
chain.resolve.alias.set('@tanstack/router-core/ssr/server', tanstackRouterSsrServerFile);
|
|
232
|
+
}
|
|
233
|
+
if (runtimeRscWorkerFile) {
|
|
234
|
+
chain.resolve.alias.set('@modern-js/runtime/rsc/server$', runtimeRscWorkerFile);
|
|
235
|
+
chain.resolve.alias.set('@modern-js/runtime/rsc/server', runtimeRscWorkerFile);
|
|
236
|
+
}
|
|
237
|
+
if (renderRscWorkerFile) {
|
|
238
|
+
chain.resolve.alias.set('@modern-js/render/rsc$', renderRscWorkerFile);
|
|
239
|
+
chain.resolve.alias.set('@modern-js/render/rsc', renderRscWorkerFile);
|
|
240
|
+
chain.resolve.alias.set('@modern-js/render/rsc-worker$', renderRscWorkerFile);
|
|
241
|
+
}
|
|
242
|
+
setAliasIfPresent(chain.resolve.alias, 'react$', reactFile);
|
|
243
|
+
setAliasIfPresent(chain.resolve.alias, 'react/jsx-runtime$', reactJsxRuntimeFile);
|
|
244
|
+
setAliasIfPresent(chain.resolve.alias, 'react/jsx-dev-runtime$', reactJsxDevRuntimeFile);
|
|
245
|
+
setAliasIfPresent(chain.resolve.alias, 'react-dom$', reactDomFile);
|
|
246
|
+
setAliasIfPresent(chain.resolve.alias, 'react-dom/server.edge$', reactDomServerEdgeFile);
|
|
247
|
+
setAliasIfPresent(chain.resolve.alias, '@loadable/component$', loadableComponentFile);
|
|
248
|
+
setAliasIfPresent(chain.resolve.alias, '@loadable/server$', loadableServerWorkerFile);
|
|
249
|
+
setAliasIfPresent(chain.resolve.alias, 'fs/promises$', fsPromisesWorkerFile);
|
|
250
|
+
setAliasIfPresent(chain.resolve.alias, 'node:fs/promises$', fsPromisesWorkerFile);
|
|
251
|
+
setAliasIfPresent(chain.resolve.alias, 'path$', pathWorkerFile);
|
|
252
|
+
setAliasIfPresent(chain.resolve.alias, 'node:path$', pathWorkerFile);
|
|
253
|
+
chain.resolve.alias.set('react-server-dom-rspack/server.node$', 'react-server-dom-rspack/server.edge');
|
|
254
|
+
chain.resolve.alias.set('react-server-dom-rspack/server.node', 'react-server-dom-rspack/server.edge');
|
|
255
|
+
chain.resolve.alias.set('react-server-dom-rspack/client.node$', 'react-server-dom-rspack/client.edge');
|
|
256
|
+
chain.resolve.alias.set('react-server-dom-rspack/client.node', 'react-server-dom-rspack/client.edge');
|
|
257
|
+
chain.resolve.fallback.set('async_hooks', false);
|
|
258
|
+
chain.resolve.fallback.set('node:async_hooks', false);
|
|
259
|
+
chain.resolve.fallback.set('fs', false);
|
|
260
|
+
chain.resolve.fallback.set('node:fs', false);
|
|
261
|
+
}
|
|
262
|
+
} : {}
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
}
|
|
79
266
|
return {
|
|
80
267
|
environments,
|
|
81
268
|
builderConfig: tempBuilderConfig
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -43,8 +47,11 @@ const builderPluginAdapterBasic = (options)=>({
|
|
|
43
47
|
setup (api) {
|
|
44
48
|
api.modifyBundlerChain((chain, { target, CHAIN_ID, environment })=>{
|
|
45
49
|
const isServiceWorker = environment.name === builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME;
|
|
46
|
-
|
|
47
|
-
if ('
|
|
50
|
+
const isWebTargetServiceWorker = isServiceWorker && 'web' === target;
|
|
51
|
+
if ('node' === target || isServiceWorker) applyNodeCompat(isServiceWorker, chain, {
|
|
52
|
+
includeNodeExtensions: !isWebTargetServiceWorker
|
|
53
|
+
});
|
|
54
|
+
if ('web' === target && !isServiceWorker) {
|
|
48
55
|
const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
|
|
49
56
|
const depExt = 'js';
|
|
50
57
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
|
|
@@ -60,8 +67,40 @@ const builderPluginAdapterBasic = (options)=>({
|
|
|
60
67
|
});
|
|
61
68
|
api.modifyRspackConfig((config, { target, environment })=>{
|
|
62
69
|
const isServiceWorker = environment.name === builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME;
|
|
70
|
+
const isWebTargetServiceWorker = isServiceWorker && 'web' === target;
|
|
63
71
|
if ('node' === target || isServiceWorker) {
|
|
64
|
-
const extensionAlias = {
|
|
72
|
+
const extensionAlias = isWebTargetServiceWorker ? {
|
|
73
|
+
'.js': [
|
|
74
|
+
'.worker.js',
|
|
75
|
+
'.server.js',
|
|
76
|
+
'.js'
|
|
77
|
+
],
|
|
78
|
+
'.jsx': [
|
|
79
|
+
'.worker.jsx',
|
|
80
|
+
'.server.jsx',
|
|
81
|
+
'.jsx'
|
|
82
|
+
],
|
|
83
|
+
'.ts': [
|
|
84
|
+
'.worker.ts',
|
|
85
|
+
'.server.ts',
|
|
86
|
+
'.ts'
|
|
87
|
+
],
|
|
88
|
+
'.tsx': [
|
|
89
|
+
'.worker.tsx',
|
|
90
|
+
'.server.tsx',
|
|
91
|
+
'.tsx'
|
|
92
|
+
],
|
|
93
|
+
'.mjs': [
|
|
94
|
+
'.worker.mjs',
|
|
95
|
+
'.server.mjs',
|
|
96
|
+
'.mjs'
|
|
97
|
+
],
|
|
98
|
+
'.json': [
|
|
99
|
+
'.worker.json',
|
|
100
|
+
'.server.json',
|
|
101
|
+
'.json'
|
|
102
|
+
]
|
|
103
|
+
} : {
|
|
65
104
|
'.js': [
|
|
66
105
|
'.node.js',
|
|
67
106
|
'.server.js',
|
|
@@ -102,7 +141,8 @@ const builderPluginAdapterBasic = (options)=>({
|
|
|
102
141
|
});
|
|
103
142
|
}
|
|
104
143
|
});
|
|
105
|
-
function applyNodeCompat(isServiceWorker, chain) {
|
|
144
|
+
function applyNodeCompat(isServiceWorker, chain, options = {}) {
|
|
145
|
+
const { includeNodeExtensions = true } = options;
|
|
106
146
|
const nodeExts = [
|
|
107
147
|
'.node.js',
|
|
108
148
|
'.node.jsx',
|
|
@@ -121,7 +161,7 @@ function applyNodeCompat(isServiceWorker, chain) {
|
|
|
121
161
|
'.worker.ts',
|
|
122
162
|
'.worker.tsx'
|
|
123
163
|
];
|
|
124
|
-
for (const ext of nodeExts)chain.resolve.extensions.prepend(ext);
|
|
164
|
+
if (includeNodeExtensions) for (const ext of nodeExts)chain.resolve.extensions.prepend(ext);
|
|
125
165
|
if (isServiceWorker) for (const ext of webWorkerExts)chain.resolve.extensions.prepend(ext);
|
|
126
166
|
}
|
|
127
167
|
exports.builderPluginAdapterBasic = __webpack_exports__.builderPluginAdapterBasic;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -66,7 +70,7 @@ function applyBottomHtmlPlugin({ chain, options, CHAIN_ID, HtmlBundlerPlugin, ht
|
|
|
66
70
|
const baseTemplateParams = {
|
|
67
71
|
entryName,
|
|
68
72
|
title: modernConfig.html.title,
|
|
69
|
-
mountId: modernConfig.html.
|
|
73
|
+
mountId: modernConfig.html.mountId
|
|
70
74
|
};
|
|
71
75
|
chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).tap((args)=>[
|
|
72
76
|
{
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -122,9 +126,10 @@ function applyFilterEntriesBySSRConfig({ isProd, chain, appNormalizedConfig }) {
|
|
|
122
126
|
});
|
|
123
127
|
}
|
|
124
128
|
async function applySSRLoaderEntry(chain, optinos, isServer) {
|
|
125
|
-
const { appContext } = optinos;
|
|
129
|
+
const { appContext, normalizedConfig } = optinos;
|
|
126
130
|
const { internalDirectory } = appContext;
|
|
127
131
|
const { entrypoints } = appContext;
|
|
132
|
+
const isRsc = (0, utils_namespaceObject.isUseRsc)(normalizedConfig);
|
|
128
133
|
await Promise.all(entrypoints.map(async (entrypoint)=>{
|
|
129
134
|
const { entryName } = entrypoint;
|
|
130
135
|
const serverLoadersFile = (0, utils_js_namespaceObject.getServerCombinedModuleFile)(internalDirectory, entryName);
|
|
@@ -132,6 +137,7 @@ async function applySSRLoaderEntry(chain, optinos, isServer) {
|
|
|
132
137
|
await utils_namespaceObject.fs.access(serverLoadersFile, utils_namespaceObject.fs.constants.F_OK);
|
|
133
138
|
chain.entry(`${entryName}-server-loaders`).add(serverLoadersFile);
|
|
134
139
|
} catch (err) {}
|
|
140
|
+
else if (isRsc) chain.entry(`${entryName}-server-loaders`).add("data:text/javascript,export%20{};");
|
|
135
141
|
}));
|
|
136
142
|
}
|
|
137
143
|
function applySSRDataLoader(chain, options) {
|