@modern-js/app-tools 3.1.0 → 3.1.2
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/cjs/commands/build.js +3 -9
- package/dist/cjs/commands/dev.js +4 -9
- package/dist/cjs/esm/register-esm.js +16 -12
- package/dist/cjs/esm/register-esm.mjs +11 -10
- package/dist/cjs/esm/ts-paths-loader.js +95 -0
- package/dist/cjs/esm/ts-paths-loader.mjs +57 -0
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.cjs +1 -1
- package/dist/cjs/plugins/deploy/utils/generator.js +4 -3
- package/dist/cjs/utils/register.js +48 -17
- package/dist/esm/builder/generator/createCopyPattern.mjs +1 -1
- package/dist/esm/builder/index.mjs +3 -3
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +2 -2
- package/dist/esm/builder/shared/loaders/serverModuleLoader.mjs +1 -1
- package/dist/esm/commands/build.mjs +3 -9
- package/dist/esm/commands/dev.mjs +4 -9
- package/dist/esm/esm/register-esm.mjs +12 -11
- package/dist/esm/esm/ts-paths-loader.mjs +58 -0
- package/dist/esm/index.mjs +7 -6
- package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +2 -2
- package/dist/esm/plugins/analyze/index.mjs +5 -5
- package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +2 -2
- package/dist/esm/plugins/deploy/index.mjs +1 -1
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.cjs +1 -1
- package/dist/esm/plugins/deploy/utils/generator.mjs +4 -3
- package/dist/esm/plugins/initialize/index.mjs +1 -1
- package/dist/esm/plugins/serverBuild.mjs +1 -1
- package/dist/esm/plugins/serverRuntime.mjs +1 -1
- package/dist/esm/utils/config.mjs +2 -2
- package/dist/esm/utils/register.mjs +45 -17
- package/dist/esm-node/builder/generator/createCopyPattern.mjs +1 -1
- package/dist/esm-node/builder/index.mjs +3 -3
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +2 -2
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +2 -2
- package/dist/esm-node/builder/shared/loaders/serverModuleLoader.mjs +1 -1
- package/dist/esm-node/commands/build.mjs +3 -9
- package/dist/esm-node/commands/dev.mjs +4 -9
- package/dist/esm-node/esm/register-esm.mjs +12 -11
- package/dist/esm-node/esm/ts-paths-loader.mjs +59 -0
- package/dist/esm-node/index.mjs +7 -6
- package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +2 -2
- package/dist/esm-node/plugins/analyze/index.mjs +4 -4
- package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +2 -2
- package/dist/esm-node/plugins/deploy/index.mjs +1 -1
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.cjs +1 -1
- package/dist/esm-node/plugins/deploy/utils/generator.mjs +4 -3
- package/dist/esm-node/plugins/deploy/utils/index.mjs +2 -2
- package/dist/esm-node/plugins/initialize/index.mjs +1 -1
- package/dist/esm-node/plugins/serverBuild.mjs +1 -1
- package/dist/esm-node/plugins/serverRuntime.mjs +1 -1
- package/dist/esm-node/utils/config.mjs +2 -2
- package/dist/esm-node/utils/register.mjs +45 -17
- package/dist/types/esm/register-esm.d.mts +5 -0
- package/dist/types/esm/ts-paths-loader.d.mts +6 -0
- package/dist/types/plugins/deploy/platforms/templates/netlify-entry.d.cts +2 -1
- package/dist/types/utils/register.d.ts +8 -1
- package/package.json +15 -15
- package/{rstest.config.ts → rstest.config.mts} +0 -4
|
@@ -2,12 +2,22 @@ import __rslib_shim_module__ from "node:module";
|
|
|
2
2
|
const require = /*#__PURE__*/ __rslib_shim_module__.createRequire(/*#__PURE__*/ (()=>import.meta.url)());
|
|
3
3
|
import node_path from "node:path";
|
|
4
4
|
import { fs, getAliasConfig, isDepExists, loadFromProject, readTsConfigByFile } from "@modern-js/utils";
|
|
5
|
-
const
|
|
5
|
+
const resolveTsRuntimeRegisterMode = (hasTsNode)=>{
|
|
6
|
+
const hasNativeTypeScriptSupport = process.features?.typescript;
|
|
7
|
+
const nodeMajorVersion = Number(process.versions.node.split('.')[0]);
|
|
8
|
+
const supportsNativeTypeScript = void 0 === hasNativeTypeScriptSupport ? nodeMajorVersion >= 22 : false !== hasNativeTypeScriptSupport;
|
|
9
|
+
if (supportsNativeTypeScript) return 'node-loader';
|
|
10
|
+
if (hasTsNode) return 'ts-node';
|
|
11
|
+
return 'unsupported';
|
|
12
|
+
};
|
|
13
|
+
const setupTsRuntime = async (appDir, distDir, alias, options = {})=>{
|
|
6
14
|
const TS_CONFIG_FILENAME = "tsconfig.json";
|
|
7
15
|
const tsconfigPath = node_path.resolve(appDir, TS_CONFIG_FILENAME);
|
|
8
16
|
const isTsProject = await fs.pathExists(tsconfigPath);
|
|
9
17
|
const hasTsNode = isDepExists(appDir, 'ts-node');
|
|
10
|
-
if (!isTsProject
|
|
18
|
+
if (!isTsProject) return;
|
|
19
|
+
const preferredRegisterMode = resolveTsRuntimeRegisterMode(hasTsNode);
|
|
20
|
+
const registerMode = options.preferTsNodeForServerRuntime && hasTsNode ? 'ts-node' : preferredRegisterMode;
|
|
11
21
|
const aliasConfig = getAliasConfig(alias, {
|
|
12
22
|
appDirectory: appDir,
|
|
13
23
|
tsconfigPath
|
|
@@ -32,24 +42,42 @@ const setupTsRuntime = async (appDir, distDir, alias)=>{
|
|
|
32
42
|
[`${key}`]: tsPath
|
|
33
43
|
};
|
|
34
44
|
}, {});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
if ('unsupported' === registerMode) return;
|
|
46
|
+
if ('ts-node' === registerMode) {
|
|
47
|
+
if ('module' === options.moduleType) {
|
|
48
|
+
const { registerModuleHooks } = await import("../esm/register-esm.mjs");
|
|
49
|
+
await registerModuleHooks({
|
|
50
|
+
appDir,
|
|
51
|
+
distDir,
|
|
52
|
+
alias: alias || {}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const tsConfig = readTsConfigByFile(tsconfigPath);
|
|
56
|
+
const tsNode = await loadFromProject('ts-node', appDir);
|
|
57
|
+
const tsNodeOptions = tsConfig['ts-node'];
|
|
58
|
+
tsNode.register({
|
|
59
|
+
project: tsconfigPath,
|
|
60
|
+
scope: true,
|
|
61
|
+
files: true,
|
|
62
|
+
transpileOnly: true,
|
|
63
|
+
ignore: [
|
|
64
|
+
'(?:^|/)node_modules/',
|
|
65
|
+
`(?:^|/)${node_path.relative(appDir, distDir)}/`
|
|
66
|
+
],
|
|
67
|
+
...tsNodeOptions
|
|
68
|
+
});
|
|
69
|
+
} else if ('node-loader' === registerMode) {
|
|
70
|
+
const { registerPathsLoader } = await import("../esm/register-esm.mjs");
|
|
71
|
+
await registerPathsLoader({
|
|
72
|
+
appDir,
|
|
73
|
+
baseUrl: absoluteBaseUrl || './',
|
|
74
|
+
paths: tsPaths
|
|
75
|
+
});
|
|
76
|
+
}
|
|
49
77
|
const { register } = await import("@modern-js/utils/tsconfig-paths");
|
|
50
78
|
register({
|
|
51
79
|
baseUrl: absoluteBaseUrl || './',
|
|
52
80
|
paths: tsPaths
|
|
53
81
|
});
|
|
54
82
|
};
|
|
55
|
-
export { setupTsRuntime };
|
|
83
|
+
export { resolveTsRuntimeRegisterMode, setupTsRuntime };
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export default handler;
|
|
2
|
+
declare function handler(request: any, context: any): Promise<any>;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { type Alias } from '@modern-js/utils';
|
|
2
2
|
import type { ConfigChain } from '@rsbuild/core';
|
|
3
|
+
type TsRuntimeRegisterMode = 'ts-node' | 'node-loader' | 'unsupported';
|
|
4
|
+
interface TsRuntimeSetupOptions {
|
|
5
|
+
moduleType?: string;
|
|
6
|
+
preferTsNodeForServerRuntime?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const resolveTsRuntimeRegisterMode: (hasTsNode: boolean) => TsRuntimeRegisterMode;
|
|
3
9
|
/**
|
|
4
10
|
* Setup TypeScript runtime support.
|
|
5
11
|
* Register ts-node for compilation and tsconfig-paths for path alias resolution.
|
|
6
12
|
*/
|
|
7
|
-
export declare const setupTsRuntime: (appDir: string, distDir: string, alias?: ConfigChain<Alias
|
|
13
|
+
export declare const setupTsRuntime: (appDir: string, distDir: string, alias?: ConfigChain<Alias>, options?: TsRuntimeSetupOptions) => Promise<void>;
|
|
14
|
+
export {};
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "3.1.
|
|
18
|
+
"version": "3.1.2",
|
|
19
19
|
"types": "./dist/types/index.d.ts",
|
|
20
20
|
"main": "./dist/cjs/index.js",
|
|
21
21
|
"exports": {
|
|
@@ -80,33 +80,33 @@
|
|
|
80
80
|
"modern-app": "./bin/modern.js"
|
|
81
81
|
},
|
|
82
82
|
"dependencies": {
|
|
83
|
-
"@babel/parser": "^7.29.
|
|
83
|
+
"@babel/parser": "^7.29.2",
|
|
84
84
|
"@babel/traverse": "^7.29.0",
|
|
85
85
|
"@babel/types": "^7.29.0",
|
|
86
|
-
"@rsbuild/core": "2.0.0-
|
|
86
|
+
"@rsbuild/core": "2.0.0-rc.0",
|
|
87
87
|
"@swc/helpers": "^0.5.17",
|
|
88
88
|
"es-module-lexer": "^1.7.0",
|
|
89
89
|
"esbuild": "0.25.5",
|
|
90
90
|
"esbuild-register": "^3.6.0",
|
|
91
91
|
"import-meta-resolve": "^4.2.0",
|
|
92
|
-
"flatted": "^3.4.
|
|
92
|
+
"flatted": "^3.4.2",
|
|
93
93
|
"mlly": "^1.8.0",
|
|
94
94
|
"ndepe": "^0.1.13",
|
|
95
95
|
"pkg-types": "^1.3.1",
|
|
96
96
|
"std-env": "^3.10.0",
|
|
97
|
-
"@modern-js/builder": "3.1.
|
|
98
|
-
"@modern-js/i18n-utils": "3.1.
|
|
99
|
-
"@modern-js/plugin": "3.1.
|
|
100
|
-
"@modern-js/plugin-data-loader": "3.1.
|
|
101
|
-
"@modern-js/prod-server": "3.1.
|
|
102
|
-
"@modern-js/server": "3.1.
|
|
103
|
-
"@modern-js/server-
|
|
104
|
-
"@modern-js/
|
|
105
|
-
"@modern-js/
|
|
106
|
-
"@modern-js/utils": "3.1.
|
|
97
|
+
"@modern-js/builder": "3.1.2",
|
|
98
|
+
"@modern-js/i18n-utils": "3.1.2",
|
|
99
|
+
"@modern-js/plugin": "3.1.2",
|
|
100
|
+
"@modern-js/plugin-data-loader": "3.1.2",
|
|
101
|
+
"@modern-js/prod-server": "3.1.2",
|
|
102
|
+
"@modern-js/server": "3.1.2",
|
|
103
|
+
"@modern-js/server-core": "3.1.2",
|
|
104
|
+
"@modern-js/types": "3.1.2",
|
|
105
|
+
"@modern-js/utils": "3.1.2",
|
|
106
|
+
"@modern-js/server-utils": "3.1.2"
|
|
107
107
|
},
|
|
108
108
|
"devDependencies": {
|
|
109
|
-
"@rslib/core": "0.
|
|
109
|
+
"@rslib/core": "0.20.3",
|
|
110
110
|
"@types/babel__traverse": "7.28.0",
|
|
111
111
|
"@types/node": "^20",
|
|
112
112
|
"ts-node": "^10.9.2",
|