@strapi/strapi 5.12.0 → 5.12.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/cli.js +89 -45
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +90 -42
- package/dist/cli.mjs.map +1 -1
- package/dist/package.json.js +6 -0
- package/dist/package.json.js.map +1 -0
- package/dist/package.json.mjs +4 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/src/cli/commands/admin/create-user.js +124 -0
- package/dist/src/cli/commands/admin/create-user.js.map +1 -0
- package/dist/src/cli/commands/admin/create-user.mjs +121 -0
- package/dist/src/cli/commands/admin/create-user.mjs.map +1 -0
- package/dist/src/cli/commands/admin/reset-user-password.js +61 -0
- package/dist/src/cli/commands/admin/reset-user-password.js.map +1 -0
- package/dist/src/cli/commands/admin/reset-user-password.mjs +58 -0
- package/dist/src/cli/commands/admin/reset-user-password.mjs.map +1 -0
- package/dist/src/cli/commands/build.js +29 -0
- package/dist/src/cli/commands/build.js.map +1 -0
- package/dist/src/cli/commands/build.mjs +27 -0
- package/dist/src/cli/commands/build.mjs.map +1 -0
- package/dist/src/cli/commands/components/list.js +32 -0
- package/dist/src/cli/commands/components/list.js.map +1 -0
- package/dist/src/cli/commands/components/list.mjs +29 -0
- package/dist/src/cli/commands/components/list.mjs.map +1 -0
- package/dist/src/cli/commands/configuration/dump.js +53 -0
- package/dist/src/cli/commands/configuration/dump.js.map +1 -0
- package/dist/src/cli/commands/configuration/dump.mjs +50 -0
- package/dist/src/cli/commands/configuration/dump.mjs.map +1 -0
- package/dist/src/cli/commands/configuration/restore.js +173 -0
- package/dist/src/cli/commands/configuration/restore.js.map +1 -0
- package/dist/src/cli/commands/configuration/restore.mjs +170 -0
- package/dist/src/cli/commands/configuration/restore.mjs.map +1 -0
- package/dist/src/cli/commands/console.js +31 -0
- package/dist/src/cli/commands/console.js.map +1 -0
- package/dist/src/cli/commands/console.mjs +28 -0
- package/dist/src/cli/commands/console.mjs.map +1 -0
- package/dist/src/cli/commands/content-types/list.js +32 -0
- package/dist/src/cli/commands/content-types/list.js.map +1 -0
- package/dist/src/cli/commands/content-types/list.mjs +29 -0
- package/dist/src/cli/commands/content-types/list.mjs.map +1 -0
- package/dist/src/cli/commands/controllers/list.js +32 -0
- package/dist/src/cli/commands/controllers/list.js.map +1 -0
- package/dist/src/cli/commands/controllers/list.mjs +29 -0
- package/dist/src/cli/commands/controllers/list.mjs.map +1 -0
- package/dist/src/cli/commands/develop.js +32 -0
- package/dist/src/cli/commands/develop.js.map +1 -0
- package/dist/src/cli/commands/develop.mjs +30 -0
- package/dist/src/cli/commands/develop.mjs.map +1 -0
- package/dist/src/cli/commands/export/action.js +126 -0
- package/dist/src/cli/commands/export/action.js.map +1 -0
- package/dist/src/cli/commands/export/action.mjs +124 -0
- package/dist/src/cli/commands/export/action.mjs.map +1 -0
- package/dist/src/cli/commands/export/command.js +15 -0
- package/dist/src/cli/commands/export/command.js.map +1 -0
- package/dist/src/cli/commands/export/command.mjs +13 -0
- package/dist/src/cli/commands/export/command.mjs.map +1 -0
- package/dist/src/cli/commands/generate.js +18 -0
- package/dist/src/cli/commands/generate.js.map +1 -0
- package/dist/src/cli/commands/generate.mjs +16 -0
- package/dist/src/cli/commands/generate.mjs.map +1 -0
- package/dist/src/cli/commands/hooks/list.js +32 -0
- package/dist/src/cli/commands/hooks/list.js.map +1 -0
- package/dist/src/cli/commands/hooks/list.mjs +29 -0
- package/dist/src/cli/commands/hooks/list.mjs.map +1 -0
- package/dist/src/cli/commands/import/action.js +124 -0
- package/dist/src/cli/commands/import/action.js.map +1 -0
- package/dist/src/cli/commands/import/action.mjs +122 -0
- package/dist/src/cli/commands/import/action.mjs.map +1 -0
- package/dist/src/cli/commands/import/command.js +59 -0
- package/dist/src/cli/commands/import/command.js.map +1 -0
- package/dist/src/cli/commands/import/command.mjs +57 -0
- package/dist/src/cli/commands/import/command.mjs.map +1 -0
- package/dist/src/cli/commands/index.js +64 -0
- package/dist/src/cli/commands/index.js.map +1 -0
- package/dist/src/cli/commands/index.mjs +62 -0
- package/dist/src/cli/commands/index.mjs.map +1 -0
- package/dist/src/cli/commands/middlewares/list.js +32 -0
- package/dist/src/cli/commands/middlewares/list.js.map +1 -0
- package/dist/src/cli/commands/middlewares/list.mjs +29 -0
- package/dist/src/cli/commands/middlewares/list.mjs.map +1 -0
- package/dist/src/cli/commands/policies/list.js +32 -0
- package/dist/src/cli/commands/policies/list.js.map +1 -0
- package/dist/src/cli/commands/policies/list.mjs +29 -0
- package/dist/src/cli/commands/policies/list.mjs.map +1 -0
- package/dist/src/cli/commands/report.js +39 -0
- package/dist/src/cli/commands/report.js.map +1 -0
- package/dist/src/cli/commands/report.mjs +37 -0
- package/dist/src/cli/commands/report.mjs.map +1 -0
- package/dist/src/cli/commands/routes/list.js +40 -0
- package/dist/src/cli/commands/routes/list.js.map +1 -0
- package/dist/src/cli/commands/routes/list.mjs +37 -0
- package/dist/src/cli/commands/routes/list.mjs.map +1 -0
- package/dist/src/cli/commands/services/list.js +32 -0
- package/dist/src/cli/commands/services/list.js.map +1 -0
- package/dist/src/cli/commands/services/list.mjs +29 -0
- package/dist/src/cli/commands/services/list.mjs.map +1 -0
- package/dist/src/cli/commands/start.js +28 -0
- package/dist/src/cli/commands/start.js.map +1 -0
- package/dist/src/cli/commands/start.mjs +26 -0
- package/dist/src/cli/commands/start.mjs.map +1 -0
- package/dist/src/cli/commands/telemetry/disable.js +72 -0
- package/dist/src/cli/commands/telemetry/disable.js.map +1 -0
- package/dist/src/cli/commands/telemetry/disable.mjs +69 -0
- package/dist/src/cli/commands/telemetry/disable.mjs.map +1 -0
- package/dist/src/cli/commands/telemetry/enable.js +88 -0
- package/dist/src/cli/commands/telemetry/enable.js.map +1 -0
- package/dist/src/cli/commands/telemetry/enable.mjs +85 -0
- package/dist/src/cli/commands/telemetry/enable.mjs.map +1 -0
- package/dist/src/cli/commands/templates/generate.js +15 -0
- package/dist/src/cli/commands/templates/generate.js.map +1 -0
- package/dist/src/cli/commands/templates/generate.mjs +13 -0
- package/dist/src/cli/commands/templates/generate.mjs.map +1 -0
- package/dist/src/cli/commands/transfer/action.js +141 -0
- package/dist/src/cli/commands/transfer/action.js.map +1 -0
- package/dist/src/cli/commands/transfer/action.mjs +139 -0
- package/dist/src/cli/commands/transfer/action.mjs.map +1 -0
- package/dist/src/cli/commands/transfer/command.js +61 -0
- package/dist/src/cli/commands/transfer/command.js.map +1 -0
- package/dist/src/cli/commands/transfer/command.mjs +59 -0
- package/dist/src/cli/commands/transfer/command.mjs.map +1 -0
- package/dist/src/cli/commands/ts/generate-types.js +40 -0
- package/dist/src/cli/commands/ts/generate-types.js.map +1 -0
- package/dist/src/cli/commands/ts/generate-types.mjs +37 -0
- package/dist/src/cli/commands/ts/generate-types.mjs.map +1 -0
- package/dist/src/cli/commands/version.js +17 -0
- package/dist/src/cli/commands/version.js.map +1 -0
- package/dist/src/cli/commands/version.mjs +15 -0
- package/dist/src/cli/commands/version.mjs.map +1 -0
- package/dist/src/cli/utils/commander.js +125 -0
- package/dist/src/cli/utils/commander.js.map +1 -0
- package/dist/src/cli/utils/commander.mjs +116 -0
- package/dist/src/cli/utils/commander.mjs.map +1 -0
- package/dist/src/cli/utils/data-transfer.js +378 -0
- package/dist/src/cli/utils/data-transfer.js.map +1 -0
- package/dist/src/cli/utils/data-transfer.mjs +359 -0
- package/dist/src/cli/utils/data-transfer.mjs.map +1 -0
- package/dist/src/cli/utils/helpers.js +114 -0
- package/dist/src/cli/utils/helpers.js.map +1 -0
- package/dist/src/cli/utils/helpers.mjs +107 -0
- package/dist/src/cli/utils/helpers.mjs.map +1 -0
- package/dist/src/cli/utils/logger.js +125 -0
- package/dist/src/cli/utils/logger.js.map +1 -0
- package/dist/src/cli/utils/logger.mjs +104 -0
- package/dist/src/cli/utils/logger.mjs.map +1 -0
- package/dist/src/cli/utils/telemetry.js +27 -0
- package/dist/src/cli/utils/telemetry.js.map +1 -0
- package/dist/src/cli/utils/telemetry.mjs +25 -0
- package/dist/src/cli/utils/telemetry.mjs.map +1 -0
- package/dist/src/cli/utils/tsconfig.js +25 -0
- package/dist/src/cli/utils/tsconfig.js.map +1 -0
- package/dist/src/cli/utils/tsconfig.mjs +23 -0
- package/dist/src/cli/utils/tsconfig.mjs.map +1 -0
- package/dist/src/node/build.js +90 -0
- package/dist/src/node/build.js.map +1 -0
- package/dist/src/node/build.mjs +69 -0
- package/dist/src/node/build.mjs.map +1 -0
- package/dist/src/node/core/admin-customisations.js +27 -0
- package/dist/src/node/core/admin-customisations.js.map +1 -0
- package/dist/src/node/core/admin-customisations.mjs +25 -0
- package/dist/src/node/core/admin-customisations.mjs.map +1 -0
- package/dist/{chunks/aliases-B2TXon3T.js → src/node/core/aliases.js} +3 -42
- package/dist/src/node/core/aliases.js.map +1 -0
- package/dist/{chunks/aliases-BsT_zzr4.mjs → src/node/core/aliases.mjs} +4 -41
- package/dist/src/node/core/aliases.mjs.map +1 -0
- package/dist/src/node/core/config.js +18 -0
- package/dist/src/node/core/config.js.map +1 -0
- package/dist/src/node/core/config.mjs +16 -0
- package/dist/src/node/core/config.mjs.map +1 -0
- package/dist/src/node/core/dependencies.js +186 -0
- package/dist/src/node/core/dependencies.js.map +1 -0
- package/dist/src/node/core/dependencies.mjs +183 -0
- package/dist/src/node/core/dependencies.mjs.map +1 -0
- package/dist/src/node/core/env.js +32 -0
- package/dist/src/node/core/env.js.map +1 -0
- package/dist/src/node/core/env.mjs +29 -0
- package/dist/src/node/core/env.mjs.map +1 -0
- package/dist/src/node/core/errors.js +51 -0
- package/dist/src/node/core/errors.js.map +1 -0
- package/dist/src/node/core/errors.mjs +48 -0
- package/dist/src/node/core/errors.mjs.map +1 -0
- package/dist/src/node/core/files.js +68 -0
- package/dist/src/node/core/files.js.map +1 -0
- package/dist/src/node/core/files.mjs +63 -0
- package/dist/src/node/core/files.mjs.map +1 -0
- package/dist/src/node/core/managers.js +27 -0
- package/dist/src/node/core/managers.js.map +1 -0
- package/dist/src/node/core/managers.mjs +25 -0
- package/dist/src/node/core/managers.mjs.map +1 -0
- package/dist/src/node/core/monorepo.js +30 -0
- package/dist/src/node/core/monorepo.js.map +1 -0
- package/dist/src/node/core/monorepo.mjs +28 -0
- package/dist/src/node/core/monorepo.mjs.map +1 -0
- package/dist/src/node/core/plugins.js +140 -0
- package/dist/src/node/core/plugins.js.map +1 -0
- package/dist/src/node/core/plugins.mjs +137 -0
- package/dist/src/node/core/plugins.mjs.map +1 -0
- package/dist/src/node/core/timer.js +33 -0
- package/dist/src/node/core/timer.js.map +1 -0
- package/dist/src/node/core/timer.mjs +30 -0
- package/dist/src/node/core/timer.mjs.map +1 -0
- package/dist/src/node/create-build-context.js +111 -0
- package/dist/src/node/create-build-context.js.map +1 -0
- package/dist/src/node/create-build-context.mjs +109 -0
- package/dist/src/node/create-build-context.mjs.map +1 -0
- package/dist/src/node/develop.js +312 -0
- package/dist/src/node/develop.js.map +1 -0
- package/dist/src/node/develop.mjs +291 -0
- package/dist/src/node/develop.mjs.map +1 -0
- package/dist/src/node/staticFiles.js +81 -0
- package/dist/src/node/staticFiles.js.map +1 -0
- package/dist/src/node/staticFiles.mjs +78 -0
- package/dist/src/node/staticFiles.mjs.map +1 -0
- package/dist/src/node/vite/build.js +14 -0
- package/dist/src/node/vite/build.js.map +1 -0
- package/dist/src/node/vite/build.mjs +12 -0
- package/dist/src/node/vite/build.mjs.map +1 -0
- package/dist/{chunks/config-CsJ2EtSs.js → src/node/vite/config.js} +12 -50
- package/dist/src/node/vite/config.js.map +1 -0
- package/dist/{chunks/config-BqQdQJh_.mjs → src/node/vite/config.mjs} +6 -44
- package/dist/src/node/vite/config.mjs.map +1 -0
- package/dist/src/node/vite/plugins.js +46 -0
- package/dist/src/node/vite/plugins.js.map +1 -0
- package/dist/src/node/vite/plugins.mjs +44 -0
- package/dist/src/node/vite/plugins.mjs.map +1 -0
- package/dist/{chunks/watch-DzwyHBm4.js → src/node/vite/watch.js} +2 -45
- package/dist/src/node/vite/watch.js.map +1 -0
- package/dist/{chunks/watch-BDsNoG4h.mjs → src/node/vite/watch.mjs} +2 -45
- package/dist/src/node/vite/watch.mjs.map +1 -0
- package/dist/src/node/webpack/build.js +37 -0
- package/dist/src/node/webpack/build.js.map +1 -0
- package/dist/src/node/webpack/build.mjs +35 -0
- package/dist/src/node/webpack/build.mjs.map +1 -0
- package/dist/{chunks/config-B2BETQ-W.js → src/node/webpack/config.js} +10 -8
- package/dist/src/node/webpack/config.js.map +1 -0
- package/dist/{chunks/config-DHibCzCW.mjs → src/node/webpack/config.mjs} +5 -3
- package/dist/src/node/webpack/config.mjs.map +1 -0
- package/dist/{chunks/watch-BKW3b7Rj.js → src/node/webpack/watch.js} +2 -51
- package/dist/src/node/webpack/watch.js.map +1 -0
- package/dist/{chunks/watch-DQJ0HV0l.mjs → src/node/webpack/watch.mjs} +2 -51
- package/dist/src/node/webpack/watch.mjs.map +1 -0
- package/package.json +22 -22
- package/dist/chunks/aliases-B2TXon3T.js.map +0 -1
- package/dist/chunks/aliases-BsT_zzr4.mjs.map +0 -1
- package/dist/chunks/build-BQMdiYL1.mjs +0 -57
- package/dist/chunks/build-BQMdiYL1.mjs.map +0 -1
- package/dist/chunks/build-FJLfahVt.mjs +0 -85
- package/dist/chunks/build-FJLfahVt.mjs.map +0 -1
- package/dist/chunks/build-RZ8_oqFy.js +0 -59
- package/dist/chunks/build-RZ8_oqFy.js.map +0 -1
- package/dist/chunks/build-XY97xrwm.js +0 -87
- package/dist/chunks/build-XY97xrwm.js.map +0 -1
- package/dist/chunks/config-B2BETQ-W.js.map +0 -1
- package/dist/chunks/config-BqQdQJh_.mjs.map +0 -1
- package/dist/chunks/config-CsJ2EtSs.js.map +0 -1
- package/dist/chunks/config-DHibCzCW.mjs.map +0 -1
- package/dist/chunks/index-BJFfd72y.js +0 -3185
- package/dist/chunks/index-BJFfd72y.js.map +0 -1
- package/dist/chunks/index-DL_emYoN.mjs +0 -3160
- package/dist/chunks/index-DL_emYoN.mjs.map +0 -1
- package/dist/chunks/watch-BDsNoG4h.mjs.map +0 -1
- package/dist/chunks/watch-BKW3b7Rj.js.map +0 -1
- package/dist/chunks/watch-DQJ0HV0l.mjs.map +0 -1
- package/dist/chunks/watch-DzwyHBm4.js.map +0 -1
|
@@ -2,48 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var browserslistToEsbuild = require('browserslist-to-esbuild');
|
|
4
4
|
var react = require('@vitejs/plugin-react-swc');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const CHUNK_ID = '.strapi/client/app.js';
|
|
10
|
-
return {
|
|
11
|
-
name: 'strapi/server/build-files',
|
|
12
|
-
apply: 'build',
|
|
13
|
-
buildStart () {
|
|
14
|
-
this.emitFile({
|
|
15
|
-
type: 'chunk',
|
|
16
|
-
id: CHUNK_ID,
|
|
17
|
-
name: 'strapi'
|
|
18
|
-
});
|
|
19
|
-
},
|
|
20
|
-
async generateBundle (_options, outputBundle) {
|
|
21
|
-
const bundle = outputBundle;
|
|
22
|
-
const entryFile = Object.values(bundle).find((file)=>file.type === 'chunk' && file.name === 'strapi' && file.facadeModuleId?.endsWith(CHUNK_ID));
|
|
23
|
-
if (!entryFile) {
|
|
24
|
-
throw new Error(`Failed to find entry file in bundle (${CHUNK_ID})`);
|
|
25
|
-
}
|
|
26
|
-
if (entryFile.type !== 'chunk') {
|
|
27
|
-
throw new Error('Entry file is not a chunk');
|
|
28
|
-
}
|
|
29
|
-
const entryFileName = entryFile.fileName;
|
|
30
|
-
const entryPath = [
|
|
31
|
-
ctx.basePath.replace(/\/+$/, ''),
|
|
32
|
-
entryFileName
|
|
33
|
-
].join('/');
|
|
34
|
-
this.emitFile({
|
|
35
|
-
type: 'asset',
|
|
36
|
-
fileName: 'index.html',
|
|
37
|
-
source: cli.getDocumentHTML({
|
|
38
|
-
logger: ctx.logger,
|
|
39
|
-
props: {
|
|
40
|
-
entryPath
|
|
41
|
-
}
|
|
42
|
-
})
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
};
|
|
5
|
+
var config = require('../core/config.js');
|
|
6
|
+
var monorepo = require('../core/monorepo.js');
|
|
7
|
+
var aliases = require('../core/aliases.js');
|
|
8
|
+
var plugins = require('./plugins.js');
|
|
47
9
|
|
|
48
10
|
const resolveBaseConfig = async (ctx)=>{
|
|
49
11
|
const target = browserslistToEsbuild(ctx.target);
|
|
@@ -84,7 +46,7 @@ const resolveBaseConfig = async (ctx)=>{
|
|
|
84
46
|
},
|
|
85
47
|
plugins: [
|
|
86
48
|
react(),
|
|
87
|
-
buildFilesPlugin(ctx)
|
|
49
|
+
plugins.buildFilesPlugin(ctx)
|
|
88
50
|
]
|
|
89
51
|
};
|
|
90
52
|
};
|
|
@@ -109,7 +71,7 @@ const resolveProductionConfig = async (ctx)=>{
|
|
|
109
71
|
};
|
|
110
72
|
};
|
|
111
73
|
const resolveDevelopmentConfig = async (ctx)=>{
|
|
112
|
-
const monorepo = await
|
|
74
|
+
const monorepo$1 = await monorepo.loadStrapiMonorepo(ctx.cwd);
|
|
113
75
|
const baseConfig = await resolveBaseConfig(ctx);
|
|
114
76
|
return {
|
|
115
77
|
...baseConfig,
|
|
@@ -119,7 +81,7 @@ const resolveDevelopmentConfig = async (ctx)=>{
|
|
|
119
81
|
alias: {
|
|
120
82
|
...baseConfig.resolve?.alias,
|
|
121
83
|
...aliases.getMonorepoAliases({
|
|
122
|
-
monorepo
|
|
84
|
+
monorepo: monorepo$1
|
|
123
85
|
})
|
|
124
86
|
}
|
|
125
87
|
},
|
|
@@ -140,15 +102,15 @@ const USER_CONFIGS = [
|
|
|
140
102
|
'vite.config.mjs',
|
|
141
103
|
'vite.config.ts'
|
|
142
104
|
];
|
|
143
|
-
const mergeConfigWithUserConfig = async (config, ctx)=>{
|
|
144
|
-
const userConfig = await
|
|
105
|
+
const mergeConfigWithUserConfig = async (config$1, ctx)=>{
|
|
106
|
+
const userConfig = await config.getUserConfig(USER_CONFIGS, ctx);
|
|
145
107
|
if (userConfig) {
|
|
146
|
-
return userConfig(config);
|
|
108
|
+
return userConfig(config$1);
|
|
147
109
|
}
|
|
148
|
-
return config;
|
|
110
|
+
return config$1;
|
|
149
111
|
};
|
|
150
112
|
|
|
151
113
|
exports.mergeConfigWithUserConfig = mergeConfigWithUserConfig;
|
|
152
114
|
exports.resolveDevelopmentConfig = resolveDevelopmentConfig;
|
|
153
115
|
exports.resolveProductionConfig = resolveProductionConfig;
|
|
154
|
-
//# sourceMappingURL=config
|
|
116
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../../src/node/vite/config.ts"],"sourcesContent":["import type { InlineConfig, UserConfig } from 'vite';\nimport browserslistToEsbuild from 'browserslist-to-esbuild';\nimport react from '@vitejs/plugin-react-swc';\n\nimport { getUserConfig } from '../core/config';\nimport { loadStrapiMonorepo } from '../core/monorepo';\nimport { getMonorepoAliases } from '../core/aliases';\nimport type { BuildContext } from '../create-build-context';\nimport { buildFilesPlugin } from './plugins';\n\nconst resolveBaseConfig = async (ctx: BuildContext): Promise<InlineConfig> => {\n const target = browserslistToEsbuild(ctx.target);\n\n return {\n root: ctx.cwd,\n base: ctx.basePath,\n build: {\n emptyOutDir: false, // Rely on CLI to do this\n outDir: ctx.distDir,\n target,\n },\n cacheDir: 'node_modules/.strapi/vite',\n configFile: false,\n define: {\n 'process.env': ctx.env,\n },\n envPrefix: 'STRAPI_ADMIN_',\n optimizeDeps: {\n include: [\n // pre-bundle React dependencies to avoid React duplicates,\n // even if React dependencies are not direct dependencies\n // https://react.dev/warnings/invalid-hook-call-warning#duplicate-react\n 'react',\n `react/jsx-runtime`,\n 'react-dom/client',\n 'styled-components',\n 'react-router-dom',\n ],\n },\n resolve: {\n // https://react.dev/warnings/invalid-hook-call-warning#duplicate-react\n dedupe: ['react', 'react-dom', 'react-router-dom', 'styled-components'],\n },\n plugins: [react(), buildFilesPlugin(ctx)],\n };\n};\n\nconst resolveProductionConfig = async (ctx: BuildContext): Promise<InlineConfig> => {\n const {\n options: { minify, sourcemaps },\n } = ctx;\n\n const baseConfig = await resolveBaseConfig(ctx);\n\n return {\n ...baseConfig,\n logLevel: 'silent',\n mode: 'production',\n build: {\n ...baseConfig.build,\n assetsDir: '',\n minify,\n sourcemap: sourcemaps,\n rollupOptions: {\n input: {\n strapi: ctx.entry,\n },\n },\n },\n };\n};\n\nconst resolveDevelopmentConfig = async (ctx: BuildContext): Promise<InlineConfig> => {\n const monorepo = await loadStrapiMonorepo(ctx.cwd);\n const baseConfig = await resolveBaseConfig(ctx);\n\n return {\n ...baseConfig,\n mode: 'development',\n resolve: {\n ...baseConfig.resolve,\n alias: {\n ...baseConfig.resolve?.alias,\n ...getMonorepoAliases({ monorepo }),\n },\n },\n server: {\n cors: false,\n middlewareMode: true,\n open: ctx.options.open,\n hmr: {\n server: ctx.options.hmrServer,\n clientPort: ctx.options.hmrClientPort,\n },\n },\n appType: 'custom',\n };\n};\n\nconst USER_CONFIGS = ['vite.config.js', 'vite.config.mjs', 'vite.config.ts'];\n\ntype UserViteConfig = (config: UserConfig) => UserConfig;\n\nconst mergeConfigWithUserConfig = async (config: InlineConfig, ctx: BuildContext) => {\n const userConfig = await getUserConfig<UserViteConfig>(USER_CONFIGS, ctx);\n\n if (userConfig) {\n return userConfig(config);\n }\n\n return config;\n};\n\nexport { mergeConfigWithUserConfig, resolveProductionConfig, resolveDevelopmentConfig };\n"],"names":["resolveBaseConfig","ctx","target","browserslistToEsbuild","root","cwd","base","basePath","build","emptyOutDir","outDir","distDir","cacheDir","configFile","define","env","envPrefix","optimizeDeps","include","resolve","dedupe","plugins","react","buildFilesPlugin","resolveProductionConfig","options","minify","sourcemaps","baseConfig","logLevel","mode","assetsDir","sourcemap","rollupOptions","input","strapi","entry","resolveDevelopmentConfig","monorepo","loadStrapiMonorepo","alias","getMonorepoAliases","server","cors","middlewareMode","open","hmr","hmrServer","clientPort","hmrClientPort","appType","USER_CONFIGS","mergeConfigWithUserConfig","config","userConfig","getUserConfig"],"mappings":"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"}
|
|
@@ -1,47 +1,9 @@
|
|
|
1
1
|
import browserslistToEsbuild from 'browserslist-to-esbuild';
|
|
2
2
|
import react from '@vitejs/plugin-react-swc';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const CHUNK_ID = '.strapi/client/app.js';
|
|
8
|
-
return {
|
|
9
|
-
name: 'strapi/server/build-files',
|
|
10
|
-
apply: 'build',
|
|
11
|
-
buildStart () {
|
|
12
|
-
this.emitFile({
|
|
13
|
-
type: 'chunk',
|
|
14
|
-
id: CHUNK_ID,
|
|
15
|
-
name: 'strapi'
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
async generateBundle (_options, outputBundle) {
|
|
19
|
-
const bundle = outputBundle;
|
|
20
|
-
const entryFile = Object.values(bundle).find((file)=>file.type === 'chunk' && file.name === 'strapi' && file.facadeModuleId?.endsWith(CHUNK_ID));
|
|
21
|
-
if (!entryFile) {
|
|
22
|
-
throw new Error(`Failed to find entry file in bundle (${CHUNK_ID})`);
|
|
23
|
-
}
|
|
24
|
-
if (entryFile.type !== 'chunk') {
|
|
25
|
-
throw new Error('Entry file is not a chunk');
|
|
26
|
-
}
|
|
27
|
-
const entryFileName = entryFile.fileName;
|
|
28
|
-
const entryPath = [
|
|
29
|
-
ctx.basePath.replace(/\/+$/, ''),
|
|
30
|
-
entryFileName
|
|
31
|
-
].join('/');
|
|
32
|
-
this.emitFile({
|
|
33
|
-
type: 'asset',
|
|
34
|
-
fileName: 'index.html',
|
|
35
|
-
source: getDocumentHTML({
|
|
36
|
-
logger: ctx.logger,
|
|
37
|
-
props: {
|
|
38
|
-
entryPath
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
};
|
|
3
|
+
import { getUserConfig } from '../core/config.mjs';
|
|
4
|
+
import { loadStrapiMonorepo } from '../core/monorepo.mjs';
|
|
5
|
+
import { getMonorepoAliases } from '../core/aliases.mjs';
|
|
6
|
+
import { buildFilesPlugin } from './plugins.mjs';
|
|
45
7
|
|
|
46
8
|
const resolveBaseConfig = async (ctx)=>{
|
|
47
9
|
const target = browserslistToEsbuild(ctx.target);
|
|
@@ -146,5 +108,5 @@ const mergeConfigWithUserConfig = async (config, ctx)=>{
|
|
|
146
108
|
return config;
|
|
147
109
|
};
|
|
148
110
|
|
|
149
|
-
export {
|
|
150
|
-
//# sourceMappingURL=config
|
|
111
|
+
export { mergeConfigWithUserConfig, resolveDevelopmentConfig, resolveProductionConfig };
|
|
112
|
+
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","sources":["../../../../src/node/vite/config.ts"],"sourcesContent":["import type { InlineConfig, UserConfig } from 'vite';\nimport browserslistToEsbuild from 'browserslist-to-esbuild';\nimport react from '@vitejs/plugin-react-swc';\n\nimport { getUserConfig } from '../core/config';\nimport { loadStrapiMonorepo } from '../core/monorepo';\nimport { getMonorepoAliases } from '../core/aliases';\nimport type { BuildContext } from '../create-build-context';\nimport { buildFilesPlugin } from './plugins';\n\nconst resolveBaseConfig = async (ctx: BuildContext): Promise<InlineConfig> => {\n const target = browserslistToEsbuild(ctx.target);\n\n return {\n root: ctx.cwd,\n base: ctx.basePath,\n build: {\n emptyOutDir: false, // Rely on CLI to do this\n outDir: ctx.distDir,\n target,\n },\n cacheDir: 'node_modules/.strapi/vite',\n configFile: false,\n define: {\n 'process.env': ctx.env,\n },\n envPrefix: 'STRAPI_ADMIN_',\n optimizeDeps: {\n include: [\n // pre-bundle React dependencies to avoid React duplicates,\n // even if React dependencies are not direct dependencies\n // https://react.dev/warnings/invalid-hook-call-warning#duplicate-react\n 'react',\n `react/jsx-runtime`,\n 'react-dom/client',\n 'styled-components',\n 'react-router-dom',\n ],\n },\n resolve: {\n // https://react.dev/warnings/invalid-hook-call-warning#duplicate-react\n dedupe: ['react', 'react-dom', 'react-router-dom', 'styled-components'],\n },\n plugins: [react(), buildFilesPlugin(ctx)],\n };\n};\n\nconst resolveProductionConfig = async (ctx: BuildContext): Promise<InlineConfig> => {\n const {\n options: { minify, sourcemaps },\n } = ctx;\n\n const baseConfig = await resolveBaseConfig(ctx);\n\n return {\n ...baseConfig,\n logLevel: 'silent',\n mode: 'production',\n build: {\n ...baseConfig.build,\n assetsDir: '',\n minify,\n sourcemap: sourcemaps,\n rollupOptions: {\n input: {\n strapi: ctx.entry,\n },\n },\n },\n };\n};\n\nconst resolveDevelopmentConfig = async (ctx: BuildContext): Promise<InlineConfig> => {\n const monorepo = await loadStrapiMonorepo(ctx.cwd);\n const baseConfig = await resolveBaseConfig(ctx);\n\n return {\n ...baseConfig,\n mode: 'development',\n resolve: {\n ...baseConfig.resolve,\n alias: {\n ...baseConfig.resolve?.alias,\n ...getMonorepoAliases({ monorepo }),\n },\n },\n server: {\n cors: false,\n middlewareMode: true,\n open: ctx.options.open,\n hmr: {\n server: ctx.options.hmrServer,\n clientPort: ctx.options.hmrClientPort,\n },\n },\n appType: 'custom',\n };\n};\n\nconst USER_CONFIGS = ['vite.config.js', 'vite.config.mjs', 'vite.config.ts'];\n\ntype UserViteConfig = (config: UserConfig) => UserConfig;\n\nconst mergeConfigWithUserConfig = async (config: InlineConfig, ctx: BuildContext) => {\n const userConfig = await getUserConfig<UserViteConfig>(USER_CONFIGS, ctx);\n\n if (userConfig) {\n return userConfig(config);\n }\n\n return config;\n};\n\nexport { mergeConfigWithUserConfig, resolveProductionConfig, resolveDevelopmentConfig };\n"],"names":["resolveBaseConfig","ctx","target","browserslistToEsbuild","root","cwd","base","basePath","build","emptyOutDir","outDir","distDir","cacheDir","configFile","define","env","envPrefix","optimizeDeps","include","resolve","dedupe","plugins","react","buildFilesPlugin","resolveProductionConfig","options","minify","sourcemaps","baseConfig","logLevel","mode","assetsDir","sourcemap","rollupOptions","input","strapi","entry","resolveDevelopmentConfig","monorepo","loadStrapiMonorepo","alias","getMonorepoAliases","server","cors","middlewareMode","open","hmr","hmrServer","clientPort","hmrClientPort","appType","USER_CONFIGS","mergeConfigWithUserConfig","config","userConfig","getUserConfig"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var staticFiles = require('../staticFiles.js');
|
|
4
|
+
|
|
5
|
+
const buildFilesPlugin = (ctx)=>{
|
|
6
|
+
const CHUNK_ID = '.strapi/client/app.js';
|
|
7
|
+
return {
|
|
8
|
+
name: 'strapi/server/build-files',
|
|
9
|
+
apply: 'build',
|
|
10
|
+
buildStart () {
|
|
11
|
+
this.emitFile({
|
|
12
|
+
type: 'chunk',
|
|
13
|
+
id: CHUNK_ID,
|
|
14
|
+
name: 'strapi'
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
async generateBundle (_options, outputBundle) {
|
|
18
|
+
const bundle = outputBundle;
|
|
19
|
+
const entryFile = Object.values(bundle).find((file)=>file.type === 'chunk' && file.name === 'strapi' && file.facadeModuleId?.endsWith(CHUNK_ID));
|
|
20
|
+
if (!entryFile) {
|
|
21
|
+
throw new Error(`Failed to find entry file in bundle (${CHUNK_ID})`);
|
|
22
|
+
}
|
|
23
|
+
if (entryFile.type !== 'chunk') {
|
|
24
|
+
throw new Error('Entry file is not a chunk');
|
|
25
|
+
}
|
|
26
|
+
const entryFileName = entryFile.fileName;
|
|
27
|
+
const entryPath = [
|
|
28
|
+
ctx.basePath.replace(/\/+$/, ''),
|
|
29
|
+
entryFileName
|
|
30
|
+
].join('/');
|
|
31
|
+
this.emitFile({
|
|
32
|
+
type: 'asset',
|
|
33
|
+
fileName: 'index.html',
|
|
34
|
+
source: staticFiles.getDocumentHTML({
|
|
35
|
+
logger: ctx.logger,
|
|
36
|
+
props: {
|
|
37
|
+
entryPath
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.buildFilesPlugin = buildFilesPlugin;
|
|
46
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sources":["../../../../src/node/vite/plugins.ts"],"sourcesContent":["import type { Plugin } from 'vite';\n\nimport { getDocumentHTML } from '../staticFiles';\nimport type { BuildContext } from '../create-build-context';\n\nconst buildFilesPlugin = (ctx: BuildContext): Plugin => {\n const CHUNK_ID = '.strapi/client/app.js';\n\n return {\n name: 'strapi/server/build-files',\n apply: 'build',\n buildStart() {\n this.emitFile({\n type: 'chunk',\n id: CHUNK_ID,\n name: 'strapi',\n });\n },\n async generateBundle(_options, outputBundle) {\n const bundle = outputBundle;\n const entryFile = Object.values(bundle).find(\n (file) =>\n file.type === 'chunk' && file.name === 'strapi' && file.facadeModuleId?.endsWith(CHUNK_ID)\n );\n\n if (!entryFile) {\n throw new Error(`Failed to find entry file in bundle (${CHUNK_ID})`);\n }\n\n if (entryFile.type !== 'chunk') {\n throw new Error('Entry file is not a chunk');\n }\n\n const entryFileName = entryFile.fileName;\n const entryPath = [ctx.basePath.replace(/\\/+$/, ''), entryFileName].join('/');\n\n this.emitFile({\n type: 'asset',\n fileName: 'index.html',\n source: getDocumentHTML({\n logger: ctx.logger,\n props: {\n entryPath,\n },\n }),\n });\n },\n };\n};\n\nexport { buildFilesPlugin };\n"],"names":["buildFilesPlugin","ctx","CHUNK_ID","name","apply","buildStart","emitFile","type","id","generateBundle","_options","outputBundle","bundle","entryFile","Object","values","find","file","facadeModuleId","endsWith","Error","entryFileName","fileName","entryPath","basePath","replace","join","source","getDocumentHTML","logger","props"],"mappings":";;;;AAKA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,QAAW,GAAA,uBAAA;IAEjB,OAAO;QACLC,IAAM,EAAA,2BAAA;QACNC,KAAO,EAAA,OAAA;AACPC,QAAAA,UAAAA,CAAAA,GAAAA;YACE,IAAI,CAACC,QAAQ,CAAC;gBACZC,IAAM,EAAA,OAAA;gBACNC,EAAIN,EAAAA,QAAAA;gBACJC,IAAM,EAAA;AACR,aAAA,CAAA;AACF,SAAA;QACA,MAAMM,cAAAA,CAAAA,CAAeC,QAAQ,EAAEC,YAAY,EAAA;AACzC,YAAA,MAAMC,MAASD,GAAAA,YAAAA;YACf,MAAME,SAAAA,GAAYC,OAAOC,MAAM,CAACH,QAAQI,IAAI,CAC1C,CAACC,IACCA,GAAAA,IAAAA,CAAKV,IAAI,KAAK,OAAA,IAAWU,KAAKd,IAAI,KAAK,YAAYc,IAAKC,CAAAA,cAAc,EAAEC,QAASjB,CAAAA,QAAAA,CAAAA,CAAAA;AAGrF,YAAA,IAAI,CAACW,SAAW,EAAA;AACd,gBAAA,MAAM,IAAIO,KAAM,CAAA,CAAC,qCAAqC,EAAElB,QAAAA,CAAS,CAAC,CAAC,CAAA;AACrE;YAEA,IAAIW,SAAAA,CAAUN,IAAI,KAAK,OAAS,EAAA;AAC9B,gBAAA,MAAM,IAAIa,KAAM,CAAA,2BAAA,CAAA;AAClB;YAEA,MAAMC,aAAAA,GAAgBR,UAAUS,QAAQ;AACxC,YAAA,MAAMC,SAAY,GAAA;AAACtB,gBAAAA,GAAAA,CAAIuB,QAAQ,CAACC,OAAO,CAAC,MAAQ,EAAA,EAAA,CAAA;AAAKJ,gBAAAA;AAAc,aAAA,CAACK,IAAI,CAAC,GAAA,CAAA;YAEzE,IAAI,CAACpB,QAAQ,CAAC;gBACZC,IAAM,EAAA,OAAA;gBACNe,QAAU,EAAA,YAAA;AACVK,gBAAAA,MAAAA,EAAQC,2BAAgB,CAAA;AACtBC,oBAAAA,MAAAA,EAAQ5B,IAAI4B,MAAM;oBAClBC,KAAO,EAAA;AACLP,wBAAAA;AACF;AACF,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { getDocumentHTML } from '../staticFiles.mjs';
|
|
2
|
+
|
|
3
|
+
const buildFilesPlugin = (ctx)=>{
|
|
4
|
+
const CHUNK_ID = '.strapi/client/app.js';
|
|
5
|
+
return {
|
|
6
|
+
name: 'strapi/server/build-files',
|
|
7
|
+
apply: 'build',
|
|
8
|
+
buildStart () {
|
|
9
|
+
this.emitFile({
|
|
10
|
+
type: 'chunk',
|
|
11
|
+
id: CHUNK_ID,
|
|
12
|
+
name: 'strapi'
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
async generateBundle (_options, outputBundle) {
|
|
16
|
+
const bundle = outputBundle;
|
|
17
|
+
const entryFile = Object.values(bundle).find((file)=>file.type === 'chunk' && file.name === 'strapi' && file.facadeModuleId?.endsWith(CHUNK_ID));
|
|
18
|
+
if (!entryFile) {
|
|
19
|
+
throw new Error(`Failed to find entry file in bundle (${CHUNK_ID})`);
|
|
20
|
+
}
|
|
21
|
+
if (entryFile.type !== 'chunk') {
|
|
22
|
+
throw new Error('Entry file is not a chunk');
|
|
23
|
+
}
|
|
24
|
+
const entryFileName = entryFile.fileName;
|
|
25
|
+
const entryPath = [
|
|
26
|
+
ctx.basePath.replace(/\/+$/, ''),
|
|
27
|
+
entryFileName
|
|
28
|
+
].join('/');
|
|
29
|
+
this.emitFile({
|
|
30
|
+
type: 'asset',
|
|
31
|
+
fileName: 'index.html',
|
|
32
|
+
source: getDocumentHTML({
|
|
33
|
+
logger: ctx.logger,
|
|
34
|
+
props: {
|
|
35
|
+
entryPath
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export { buildFilesPlugin };
|
|
44
|
+
//# sourceMappingURL=plugins.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.mjs","sources":["../../../../src/node/vite/plugins.ts"],"sourcesContent":["import type { Plugin } from 'vite';\n\nimport { getDocumentHTML } from '../staticFiles';\nimport type { BuildContext } from '../create-build-context';\n\nconst buildFilesPlugin = (ctx: BuildContext): Plugin => {\n const CHUNK_ID = '.strapi/client/app.js';\n\n return {\n name: 'strapi/server/build-files',\n apply: 'build',\n buildStart() {\n this.emitFile({\n type: 'chunk',\n id: CHUNK_ID,\n name: 'strapi',\n });\n },\n async generateBundle(_options, outputBundle) {\n const bundle = outputBundle;\n const entryFile = Object.values(bundle).find(\n (file) =>\n file.type === 'chunk' && file.name === 'strapi' && file.facadeModuleId?.endsWith(CHUNK_ID)\n );\n\n if (!entryFile) {\n throw new Error(`Failed to find entry file in bundle (${CHUNK_ID})`);\n }\n\n if (entryFile.type !== 'chunk') {\n throw new Error('Entry file is not a chunk');\n }\n\n const entryFileName = entryFile.fileName;\n const entryPath = [ctx.basePath.replace(/\\/+$/, ''), entryFileName].join('/');\n\n this.emitFile({\n type: 'asset',\n fileName: 'index.html',\n source: getDocumentHTML({\n logger: ctx.logger,\n props: {\n entryPath,\n },\n }),\n });\n },\n };\n};\n\nexport { buildFilesPlugin };\n"],"names":["buildFilesPlugin","ctx","CHUNK_ID","name","apply","buildStart","emitFile","type","id","generateBundle","_options","outputBundle","bundle","entryFile","Object","values","find","file","facadeModuleId","endsWith","Error","entryFileName","fileName","entryPath","basePath","replace","join","source","getDocumentHTML","logger","props"],"mappings":";;AAKA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,QAAW,GAAA,uBAAA;IAEjB,OAAO;QACLC,IAAM,EAAA,2BAAA;QACNC,KAAO,EAAA,OAAA;AACPC,QAAAA,UAAAA,CAAAA,GAAAA;YACE,IAAI,CAACC,QAAQ,CAAC;gBACZC,IAAM,EAAA,OAAA;gBACNC,EAAIN,EAAAA,QAAAA;gBACJC,IAAM,EAAA;AACR,aAAA,CAAA;AACF,SAAA;QACA,MAAMM,cAAAA,CAAAA,CAAeC,QAAQ,EAAEC,YAAY,EAAA;AACzC,YAAA,MAAMC,MAASD,GAAAA,YAAAA;YACf,MAAME,SAAAA,GAAYC,OAAOC,MAAM,CAACH,QAAQI,IAAI,CAC1C,CAACC,IACCA,GAAAA,IAAAA,CAAKV,IAAI,KAAK,OAAA,IAAWU,KAAKd,IAAI,KAAK,YAAYc,IAAKC,CAAAA,cAAc,EAAEC,QAASjB,CAAAA,QAAAA,CAAAA,CAAAA;AAGrF,YAAA,IAAI,CAACW,SAAW,EAAA;AACd,gBAAA,MAAM,IAAIO,KAAM,CAAA,CAAC,qCAAqC,EAAElB,QAAAA,CAAS,CAAC,CAAC,CAAA;AACrE;YAEA,IAAIW,SAAAA,CAAUN,IAAI,KAAK,OAAS,EAAA;AAC9B,gBAAA,MAAM,IAAIa,KAAM,CAAA,2BAAA,CAAA;AAClB;YAEA,MAAMC,aAAAA,GAAgBR,UAAUS,QAAQ;AACxC,YAAA,MAAMC,SAAY,GAAA;AAACtB,gBAAAA,GAAAA,CAAIuB,QAAQ,CAACC,OAAO,CAAC,MAAQ,EAAA,EAAA,CAAA;AAAKJ,gBAAAA;AAAc,aAAA,CAACK,IAAI,CAAC,GAAA,CAAA;YAEzE,IAAI,CAACpB,QAAQ,CAAC;gBACZC,IAAM,EAAA,OAAA;gBACNe,QAAU,EAAA,YAAA;AACVK,gBAAAA,MAAAA,EAAQC,eAAgB,CAAA;AACtBC,oBAAAA,MAAAA,EAAQ5B,IAAI4B,MAAM;oBAClBC,KAAO,EAAA;AACLP,wBAAAA;AACF;AACF,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF;;;;"}
|
|
@@ -4,50 +4,7 @@ var path = require('node:path');
|
|
|
4
4
|
var http = require('node:http');
|
|
5
5
|
var fs = require('node:fs/promises');
|
|
6
6
|
var node_net = require('node:net');
|
|
7
|
-
var config = require('./config
|
|
8
|
-
require('browserslist-to-esbuild');
|
|
9
|
-
require('@vitejs/plugin-react-swc');
|
|
10
|
-
require('./aliases-B2TXon3T.js');
|
|
11
|
-
require('path');
|
|
12
|
-
require('read-pkg-up');
|
|
13
|
-
require('./index-BJFfd72y.js');
|
|
14
|
-
require('commander');
|
|
15
|
-
require('@strapi/cloud-cli');
|
|
16
|
-
require('@strapi/utils');
|
|
17
|
-
require('lodash');
|
|
18
|
-
require('inquirer');
|
|
19
|
-
require('@strapi/core');
|
|
20
|
-
require('chalk');
|
|
21
|
-
require('lodash/fp');
|
|
22
|
-
require('boxen');
|
|
23
|
-
require('cli-table3');
|
|
24
|
-
require('fs');
|
|
25
|
-
require('fs-extra');
|
|
26
|
-
require('crypto');
|
|
27
|
-
require('@strapi/typescript-utils');
|
|
28
|
-
require('node:os');
|
|
29
|
-
require('semver');
|
|
30
|
-
require('resolve-from');
|
|
31
|
-
require('execa');
|
|
32
|
-
require('perf_hooks');
|
|
33
|
-
require('browserslist');
|
|
34
|
-
require('dotenv');
|
|
35
|
-
require('esbuild-register/dist/node');
|
|
36
|
-
require('node:fs');
|
|
37
|
-
require('lodash/camelCase');
|
|
38
|
-
require('outdent');
|
|
39
|
-
require('react');
|
|
40
|
-
require('react-dom/server');
|
|
41
|
-
require('@strapi/admin/_internal');
|
|
42
|
-
require('repl');
|
|
43
|
-
require('node:cluster');
|
|
44
|
-
require('chokidar');
|
|
45
|
-
require('os');
|
|
46
|
-
require('@strapi/logger');
|
|
47
|
-
require('ora');
|
|
48
|
-
require('@strapi/data-transfer');
|
|
49
|
-
require('cli-progress');
|
|
50
|
-
require('typescript');
|
|
7
|
+
var config = require('./config.js');
|
|
51
8
|
|
|
52
9
|
const HMR_DEFAULT_PORT = 5173;
|
|
53
10
|
const MAX_PORT_ATTEMPTS = 30;
|
|
@@ -156,4 +113,4 @@ const watch = async (ctx)=>{
|
|
|
156
113
|
};
|
|
157
114
|
|
|
158
115
|
exports.watch = watch;
|
|
159
|
-
//# sourceMappingURL=watch
|
|
116
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sources":["../../../../src/node/vite/watch.ts"],"sourcesContent":["import path from 'node:path';\nimport http from 'node:http';\nimport fs from 'node:fs/promises';\nimport { Server } from 'node:net';\nimport type { Core } from '@strapi/types';\n\nimport { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config';\n\nimport type { BuildContext } from '../create-build-context';\n\ninterface ViteWatcher {\n close(): Promise<void>;\n}\n\nconst HMR_DEFAULT_PORT = 5173;\nconst MAX_PORT_ATTEMPTS = 30;\n\nconst findAvailablePort = (\n startingPort: number,\n attemptsLeft = MAX_PORT_ATTEMPTS\n): Promise<number> => {\n return new Promise((resolve, reject) => {\n if (attemptsLeft <= 0) {\n reject(new Error(`No available ports found after ${MAX_PORT_ATTEMPTS} attempts.`));\n return;\n }\n\n const server = new Server();\n server.listen(startingPort, () => {\n const { port } = server.address() as { port: number };\n server.close(() => resolve(port));\n });\n\n server.on('error', (err: any) => {\n if (err.code === 'EADDRINUSE') {\n resolve(findAvailablePort(startingPort + 1, attemptsLeft - 1));\n } else {\n reject(err);\n }\n });\n });\n};\n\nconst createHMRServer = () => {\n return http.createServer(\n // http server request handler. keeps the same with\n // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96\n (_, res) => {\n const body = http.STATUS_CODES[426]; // Upgrade Required\n\n res.writeHead(426, {\n 'Content-Length': body?.length ?? 0,\n 'Content-Type': 'text/plain',\n });\n\n res.end(body);\n }\n );\n};\n\nconst watch = async (ctx: BuildContext): Promise<ViteWatcher> => {\n const hmrServer = createHMRServer();\n\n // Allowing Vite to find an available port doesn't work, so we'll find an available port manually\n // and use that. There is therefore a very slight race condition if you start up two servers at the same time\n // one might fail, or it might start up but listen on the wrong port.\n const availablePort = await findAvailablePort(HMR_DEFAULT_PORT);\n ctx.options.hmrServer = hmrServer;\n ctx.options.hmrClientPort = availablePort;\n\n const config = await resolveDevelopmentConfig(ctx);\n\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n const hmrConfig = config.server?.hmr;\n\n // If the server used for Vite hmr is the one we've created (<> no user override)\n if (typeof hmrConfig === 'object' && hmrConfig.server === hmrServer) {\n // Only restart the hmr server when Strapi's server is listening\n strapi.server.httpServer.on('listening', async () => {\n hmrServer.listen(availablePort);\n });\n }\n\n ctx.logger.debug('Vite config', finalConfig);\n\n const { createServer } = await import('vite');\n\n const vite = await createServer(finalConfig);\n\n const viteMiddlewares: Core.MiddlewareHandler = (koaCtx, next) => {\n return new Promise((resolve, reject) => {\n const prefix = ctx.basePath.replace(ctx.adminPath, '').replace(/\\/+$/, '');\n\n const originalPath = koaCtx.path;\n if (!koaCtx.path.startsWith(prefix)) {\n koaCtx.path = `${prefix}${koaCtx.path}`;\n }\n\n vite.middlewares(koaCtx.req, koaCtx.res, (err: unknown) => {\n if (err) {\n reject(err);\n } else {\n if (!koaCtx.res.headersSent) {\n koaCtx.path = originalPath;\n }\n\n resolve(next());\n }\n });\n });\n };\n\n const serveAdmin: Core.MiddlewareHandler = async (koaCtx, next) => {\n await next();\n\n if (koaCtx.method !== 'HEAD' && koaCtx.method !== 'GET') {\n return;\n }\n\n if (koaCtx.body != null || koaCtx.status !== 404) {\n return;\n }\n\n const url = koaCtx.originalUrl;\n\n let template = await fs.readFile(path.relative(ctx.cwd, '.strapi/client/index.html'), 'utf-8');\n template = await vite.transformIndexHtml(url, template);\n\n koaCtx.type = 'html';\n koaCtx.body = template;\n };\n\n const adminRoute = `${ctx.adminPath}/:path*`;\n\n ctx.strapi.server.router.get(adminRoute, serveAdmin);\n ctx.strapi.server.router.use(adminRoute, viteMiddlewares);\n\n return {\n async close() {\n await vite.close();\n\n if (hmrServer.listening) {\n // Manually close the hmr server\n // /!\\ This operation MUST be done after calling .close() on the vite\n // instance to avoid flaky behaviors with attached clients\n await new Promise<void>((resolve, reject) => {\n hmrServer.close((err) => (err ? reject(err) : resolve()));\n });\n }\n },\n };\n};\n\nexport { watch };\nexport type { ViteWatcher };\n"],"names":["HMR_DEFAULT_PORT","MAX_PORT_ATTEMPTS","findAvailablePort","startingPort","attemptsLeft","Promise","resolve","reject","Error","server","Server","listen","port","address","close","on","err","code","createHMRServer","http","createServer","_","res","body","STATUS_CODES","writeHead","length","end","watch","ctx","hmrServer","availablePort","options","hmrClientPort","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","hmrConfig","hmr","strapi","httpServer","logger","debug","vite","viteMiddlewares","koaCtx","next","prefix","basePath","replace","adminPath","originalPath","path","startsWith","middlewares","req","headersSent","serveAdmin","method","status","url","originalUrl","template","fs","readFile","relative","cwd","transformIndexHtml","type","adminRoute","router","get","use","listening"],"mappings":"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"}
|
|
@@ -2,50 +2,7 @@ import path from 'node:path';
|
|
|
2
2
|
import http from 'node:http';
|
|
3
3
|
import fs from 'node:fs/promises';
|
|
4
4
|
import { Server } from 'node:net';
|
|
5
|
-
import {
|
|
6
|
-
import 'browserslist-to-esbuild';
|
|
7
|
-
import '@vitejs/plugin-react-swc';
|
|
8
|
-
import './aliases-BsT_zzr4.mjs';
|
|
9
|
-
import 'path';
|
|
10
|
-
import 'read-pkg-up';
|
|
11
|
-
import './index-DL_emYoN.mjs';
|
|
12
|
-
import 'commander';
|
|
13
|
-
import '@strapi/cloud-cli';
|
|
14
|
-
import '@strapi/utils';
|
|
15
|
-
import 'lodash';
|
|
16
|
-
import 'inquirer';
|
|
17
|
-
import '@strapi/core';
|
|
18
|
-
import 'chalk';
|
|
19
|
-
import 'lodash/fp';
|
|
20
|
-
import 'boxen';
|
|
21
|
-
import 'cli-table3';
|
|
22
|
-
import 'fs';
|
|
23
|
-
import 'fs-extra';
|
|
24
|
-
import 'crypto';
|
|
25
|
-
import '@strapi/typescript-utils';
|
|
26
|
-
import 'node:os';
|
|
27
|
-
import 'semver';
|
|
28
|
-
import 'resolve-from';
|
|
29
|
-
import 'execa';
|
|
30
|
-
import 'perf_hooks';
|
|
31
|
-
import 'browserslist';
|
|
32
|
-
import 'dotenv';
|
|
33
|
-
import 'esbuild-register/dist/node';
|
|
34
|
-
import 'node:fs';
|
|
35
|
-
import 'lodash/camelCase';
|
|
36
|
-
import 'outdent';
|
|
37
|
-
import 'react';
|
|
38
|
-
import 'react-dom/server';
|
|
39
|
-
import '@strapi/admin/_internal';
|
|
40
|
-
import 'repl';
|
|
41
|
-
import 'node:cluster';
|
|
42
|
-
import 'chokidar';
|
|
43
|
-
import 'os';
|
|
44
|
-
import '@strapi/logger';
|
|
45
|
-
import 'ora';
|
|
46
|
-
import '@strapi/data-transfer';
|
|
47
|
-
import 'cli-progress';
|
|
48
|
-
import 'typescript';
|
|
5
|
+
import { resolveDevelopmentConfig, mergeConfigWithUserConfig } from './config.mjs';
|
|
49
6
|
|
|
50
7
|
const HMR_DEFAULT_PORT = 5173;
|
|
51
8
|
const MAX_PORT_ATTEMPTS = 30;
|
|
@@ -154,4 +111,4 @@ const watch = async (ctx)=>{
|
|
|
154
111
|
};
|
|
155
112
|
|
|
156
113
|
export { watch };
|
|
157
|
-
//# sourceMappingURL=watch
|
|
114
|
+
//# sourceMappingURL=watch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.mjs","sources":["../../../../src/node/vite/watch.ts"],"sourcesContent":["import path from 'node:path';\nimport http from 'node:http';\nimport fs from 'node:fs/promises';\nimport { Server } from 'node:net';\nimport type { Core } from '@strapi/types';\n\nimport { mergeConfigWithUserConfig, resolveDevelopmentConfig } from './config';\n\nimport type { BuildContext } from '../create-build-context';\n\ninterface ViteWatcher {\n close(): Promise<void>;\n}\n\nconst HMR_DEFAULT_PORT = 5173;\nconst MAX_PORT_ATTEMPTS = 30;\n\nconst findAvailablePort = (\n startingPort: number,\n attemptsLeft = MAX_PORT_ATTEMPTS\n): Promise<number> => {\n return new Promise((resolve, reject) => {\n if (attemptsLeft <= 0) {\n reject(new Error(`No available ports found after ${MAX_PORT_ATTEMPTS} attempts.`));\n return;\n }\n\n const server = new Server();\n server.listen(startingPort, () => {\n const { port } = server.address() as { port: number };\n server.close(() => resolve(port));\n });\n\n server.on('error', (err: any) => {\n if (err.code === 'EADDRINUSE') {\n resolve(findAvailablePort(startingPort + 1, attemptsLeft - 1));\n } else {\n reject(err);\n }\n });\n });\n};\n\nconst createHMRServer = () => {\n return http.createServer(\n // http server request handler. keeps the same with\n // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96\n (_, res) => {\n const body = http.STATUS_CODES[426]; // Upgrade Required\n\n res.writeHead(426, {\n 'Content-Length': body?.length ?? 0,\n 'Content-Type': 'text/plain',\n });\n\n res.end(body);\n }\n );\n};\n\nconst watch = async (ctx: BuildContext): Promise<ViteWatcher> => {\n const hmrServer = createHMRServer();\n\n // Allowing Vite to find an available port doesn't work, so we'll find an available port manually\n // and use that. There is therefore a very slight race condition if you start up two servers at the same time\n // one might fail, or it might start up but listen on the wrong port.\n const availablePort = await findAvailablePort(HMR_DEFAULT_PORT);\n ctx.options.hmrServer = hmrServer;\n ctx.options.hmrClientPort = availablePort;\n\n const config = await resolveDevelopmentConfig(ctx);\n\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n const hmrConfig = config.server?.hmr;\n\n // If the server used for Vite hmr is the one we've created (<> no user override)\n if (typeof hmrConfig === 'object' && hmrConfig.server === hmrServer) {\n // Only restart the hmr server when Strapi's server is listening\n strapi.server.httpServer.on('listening', async () => {\n hmrServer.listen(availablePort);\n });\n }\n\n ctx.logger.debug('Vite config', finalConfig);\n\n const { createServer } = await import('vite');\n\n const vite = await createServer(finalConfig);\n\n const viteMiddlewares: Core.MiddlewareHandler = (koaCtx, next) => {\n return new Promise((resolve, reject) => {\n const prefix = ctx.basePath.replace(ctx.adminPath, '').replace(/\\/+$/, '');\n\n const originalPath = koaCtx.path;\n if (!koaCtx.path.startsWith(prefix)) {\n koaCtx.path = `${prefix}${koaCtx.path}`;\n }\n\n vite.middlewares(koaCtx.req, koaCtx.res, (err: unknown) => {\n if (err) {\n reject(err);\n } else {\n if (!koaCtx.res.headersSent) {\n koaCtx.path = originalPath;\n }\n\n resolve(next());\n }\n });\n });\n };\n\n const serveAdmin: Core.MiddlewareHandler = async (koaCtx, next) => {\n await next();\n\n if (koaCtx.method !== 'HEAD' && koaCtx.method !== 'GET') {\n return;\n }\n\n if (koaCtx.body != null || koaCtx.status !== 404) {\n return;\n }\n\n const url = koaCtx.originalUrl;\n\n let template = await fs.readFile(path.relative(ctx.cwd, '.strapi/client/index.html'), 'utf-8');\n template = await vite.transformIndexHtml(url, template);\n\n koaCtx.type = 'html';\n koaCtx.body = template;\n };\n\n const adminRoute = `${ctx.adminPath}/:path*`;\n\n ctx.strapi.server.router.get(adminRoute, serveAdmin);\n ctx.strapi.server.router.use(adminRoute, viteMiddlewares);\n\n return {\n async close() {\n await vite.close();\n\n if (hmrServer.listening) {\n // Manually close the hmr server\n // /!\\ This operation MUST be done after calling .close() on the vite\n // instance to avoid flaky behaviors with attached clients\n await new Promise<void>((resolve, reject) => {\n hmrServer.close((err) => (err ? reject(err) : resolve()));\n });\n }\n },\n };\n};\n\nexport { watch };\nexport type { ViteWatcher };\n"],"names":["HMR_DEFAULT_PORT","MAX_PORT_ATTEMPTS","findAvailablePort","startingPort","attemptsLeft","Promise","resolve","reject","Error","server","Server","listen","port","address","close","on","err","code","createHMRServer","http","createServer","_","res","body","STATUS_CODES","writeHead","length","end","watch","ctx","hmrServer","availablePort","options","hmrClientPort","config","resolveDevelopmentConfig","finalConfig","mergeConfigWithUserConfig","hmrConfig","hmr","strapi","httpServer","logger","debug","vite","viteMiddlewares","koaCtx","next","prefix","basePath","replace","adminPath","originalPath","path","startsWith","middlewares","req","headersSent","serveAdmin","method","status","url","originalUrl","template","fs","readFile","relative","cwd","transformIndexHtml","type","adminRoute","router","get","use","listening"],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var webpack = require('webpack');
|
|
4
|
+
var config = require('./config.js');
|
|
5
|
+
var errors = require('../core/errors.js');
|
|
6
|
+
|
|
7
|
+
const build = async (ctx)=>{
|
|
8
|
+
const config$1 = await config.resolveProductionConfig(ctx);
|
|
9
|
+
const finalConfig = await config.mergeConfigWithUserConfig(config$1, ctx);
|
|
10
|
+
ctx.logger.debug('Webpack config', finalConfig);
|
|
11
|
+
return new Promise((resolve, reject)=>{
|
|
12
|
+
webpack(finalConfig, (err, stats)=>{
|
|
13
|
+
if (stats) {
|
|
14
|
+
if (stats.hasErrors()) {
|
|
15
|
+
ctx.logger.error(stats.toString({
|
|
16
|
+
chunks: false,
|
|
17
|
+
colors: true
|
|
18
|
+
}));
|
|
19
|
+
reject();
|
|
20
|
+
} else if (ctx.options.stats) {
|
|
21
|
+
ctx.logger.info(stats.toString({
|
|
22
|
+
chunks: false,
|
|
23
|
+
colors: true
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
resolve(true);
|
|
27
|
+
}
|
|
28
|
+
if (err && errors.isError(err)) {
|
|
29
|
+
ctx.logger.error(err.message);
|
|
30
|
+
reject();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.build = build;
|
|
37
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sources":["../../../../src/node/webpack/build.ts"],"sourcesContent":["import webpack from 'webpack';\n\nimport { mergeConfigWithUserConfig, resolveProductionConfig } from './config';\nimport { isError } from '../core/errors';\n\nimport type { BuildContext } from '../create-build-context';\n\nconst build = async (ctx: BuildContext) => {\n const config = await resolveProductionConfig(ctx);\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n ctx.logger.debug('Webpack config', finalConfig);\n\n return new Promise((resolve, reject) => {\n webpack(finalConfig, (err, stats) => {\n if (stats) {\n if (stats.hasErrors()) {\n ctx.logger.error(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n\n reject();\n } else if (ctx.options.stats) {\n ctx.logger.info(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n }\n\n resolve(true);\n }\n\n if (err && isError(err)) {\n ctx.logger.error(err.message);\n reject();\n }\n });\n });\n};\n\nexport { build };\n"],"names":["build","ctx","config","resolveProductionConfig","finalConfig","mergeConfigWithUserConfig","logger","debug","Promise","resolve","reject","webpack","err","stats","hasErrors","error","toString","chunks","colors","options","info","isError","message"],"mappings":";;;;;;AAOA,MAAMA,QAAQ,OAAOC,GAAAA,GAAAA;IACnB,MAAMC,QAAAA,GAAS,MAAMC,8BAAwBF,CAAAA,GAAAA,CAAAA;IAC7C,MAAMG,WAAAA,GAAc,MAAMC,gCAAAA,CAA0BH,QAAQD,EAAAA,GAAAA,CAAAA;AAE5DA,IAAAA,GAAAA,CAAIK,MAAM,CAACC,KAAK,CAAC,gBAAkBH,EAAAA,WAAAA,CAAAA;IAEnC,OAAO,IAAII,OAAQ,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;QAC3BC,OAAQP,CAAAA,WAAAA,EAAa,CAACQ,GAAKC,EAAAA,KAAAA,GAAAA;AACzB,YAAA,IAAIA,KAAO,EAAA;gBACT,IAAIA,KAAAA,CAAMC,SAAS,EAAI,EAAA;AACrBb,oBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CACdF,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACV,qBAAA,CAAA,CAAA;AAGFR,oBAAAA,MAAAA,EAAAA;AACF,iBAAA,MAAO,IAAIT,GAAAA,CAAIkB,OAAO,CAACN,KAAK,EAAE;AAC5BZ,oBAAAA,GAAAA,CAAIK,MAAM,CAACc,IAAI,CACbP,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACV,qBAAA,CAAA,CAAA;AAEJ;gBAEAT,OAAQ,CAAA,IAAA,CAAA;AACV;YAEA,IAAIG,GAAAA,IAAOS,eAAQT,GAAM,CAAA,EAAA;AACvBX,gBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CAACH,IAAIU,OAAO,CAAA;AAC5BZ,gBAAAA,MAAAA,EAAAA;AACF;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import webpack from 'webpack';
|
|
2
|
+
import { resolveProductionConfig, mergeConfigWithUserConfig } from './config.mjs';
|
|
3
|
+
import { isError } from '../core/errors.mjs';
|
|
4
|
+
|
|
5
|
+
const build = async (ctx)=>{
|
|
6
|
+
const config = await resolveProductionConfig(ctx);
|
|
7
|
+
const finalConfig = await mergeConfigWithUserConfig(config, ctx);
|
|
8
|
+
ctx.logger.debug('Webpack config', finalConfig);
|
|
9
|
+
return new Promise((resolve, reject)=>{
|
|
10
|
+
webpack(finalConfig, (err, stats)=>{
|
|
11
|
+
if (stats) {
|
|
12
|
+
if (stats.hasErrors()) {
|
|
13
|
+
ctx.logger.error(stats.toString({
|
|
14
|
+
chunks: false,
|
|
15
|
+
colors: true
|
|
16
|
+
}));
|
|
17
|
+
reject();
|
|
18
|
+
} else if (ctx.options.stats) {
|
|
19
|
+
ctx.logger.info(stats.toString({
|
|
20
|
+
chunks: false,
|
|
21
|
+
colors: true
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
resolve(true);
|
|
25
|
+
}
|
|
26
|
+
if (err && isError(err)) {
|
|
27
|
+
ctx.logger.error(err.message);
|
|
28
|
+
reject();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { build };
|
|
35
|
+
//# sourceMappingURL=build.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.mjs","sources":["../../../../src/node/webpack/build.ts"],"sourcesContent":["import webpack from 'webpack';\n\nimport { mergeConfigWithUserConfig, resolveProductionConfig } from './config';\nimport { isError } from '../core/errors';\n\nimport type { BuildContext } from '../create-build-context';\n\nconst build = async (ctx: BuildContext) => {\n const config = await resolveProductionConfig(ctx);\n const finalConfig = await mergeConfigWithUserConfig(config, ctx);\n\n ctx.logger.debug('Webpack config', finalConfig);\n\n return new Promise((resolve, reject) => {\n webpack(finalConfig, (err, stats) => {\n if (stats) {\n if (stats.hasErrors()) {\n ctx.logger.error(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n\n reject();\n } else if (ctx.options.stats) {\n ctx.logger.info(\n stats.toString({\n chunks: false,\n colors: true,\n })\n );\n }\n\n resolve(true);\n }\n\n if (err && isError(err)) {\n ctx.logger.error(err.message);\n reject();\n }\n });\n });\n};\n\nexport { build };\n"],"names":["build","ctx","config","resolveProductionConfig","finalConfig","mergeConfigWithUserConfig","logger","debug","Promise","resolve","reject","webpack","err","stats","hasErrors","error","toString","chunks","colors","options","info","isError","message"],"mappings":";;;;AAOA,MAAMA,QAAQ,OAAOC,GAAAA,GAAAA;IACnB,MAAMC,MAAAA,GAAS,MAAMC,uBAAwBF,CAAAA,GAAAA,CAAAA;IAC7C,MAAMG,WAAAA,GAAc,MAAMC,yBAAAA,CAA0BH,MAAQD,EAAAA,GAAAA,CAAAA;AAE5DA,IAAAA,GAAAA,CAAIK,MAAM,CAACC,KAAK,CAAC,gBAAkBH,EAAAA,WAAAA,CAAAA;IAEnC,OAAO,IAAII,OAAQ,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;QAC3BC,OAAQP,CAAAA,WAAAA,EAAa,CAACQ,GAAKC,EAAAA,KAAAA,GAAAA;AACzB,YAAA,IAAIA,KAAO,EAAA;gBACT,IAAIA,KAAAA,CAAMC,SAAS,EAAI,EAAA;AACrBb,oBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CACdF,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACV,qBAAA,CAAA,CAAA;AAGFR,oBAAAA,MAAAA,EAAAA;AACF,iBAAA,MAAO,IAAIT,GAAAA,CAAIkB,OAAO,CAACN,KAAK,EAAE;AAC5BZ,oBAAAA,GAAAA,CAAIK,MAAM,CAACc,IAAI,CACbP,KAAAA,CAAMG,QAAQ,CAAC;wBACbC,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACV,qBAAA,CAAA,CAAA;AAEJ;gBAEAT,OAAQ,CAAA,IAAA,CAAA;AACV;YAEA,IAAIG,GAAAA,IAAOS,QAAQT,GAAM,CAAA,EAAA;AACvBX,gBAAAA,GAAAA,CAAIK,MAAM,CAACS,KAAK,CAACH,IAAIU,OAAO,CAAA;AAC5BZ,gBAAAA,MAAAA,EAAAA;AACF;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -11,7 +11,9 @@ var path = require('node:path');
|
|
|
11
11
|
var readPkgUp = require('read-pkg-up');
|
|
12
12
|
var webpack = require('webpack');
|
|
13
13
|
var webpackBundleAnalyzer = require('webpack-bundle-analyzer');
|
|
14
|
-
var
|
|
14
|
+
var monorepo = require('../core/monorepo.js');
|
|
15
|
+
var config = require('../core/config.js');
|
|
16
|
+
var aliases = require('../core/aliases.js');
|
|
15
17
|
|
|
16
18
|
const resolveBaseConfig = async (ctx)=>{
|
|
17
19
|
const target = browserslistToEsbuild(ctx.target);
|
|
@@ -128,7 +130,7 @@ const resolveBaseConfig = async (ctx)=>{
|
|
|
128
130
|
};
|
|
129
131
|
const resolveDevelopmentConfig = async (ctx)=>{
|
|
130
132
|
const baseConfig = await resolveBaseConfig(ctx);
|
|
131
|
-
const monorepo = await
|
|
133
|
+
const monorepo$1 = await monorepo.loadStrapiMonorepo(ctx.cwd);
|
|
132
134
|
return {
|
|
133
135
|
...baseConfig,
|
|
134
136
|
cache: {
|
|
@@ -146,7 +148,7 @@ const resolveDevelopmentConfig = async (ctx)=>{
|
|
|
146
148
|
alias: {
|
|
147
149
|
...baseConfig.resolve.alias,
|
|
148
150
|
...aliases.getMonorepoAliases({
|
|
149
|
-
monorepo
|
|
151
|
+
monorepo: monorepo$1
|
|
150
152
|
})
|
|
151
153
|
}
|
|
152
154
|
},
|
|
@@ -219,16 +221,16 @@ const USER_CONFIGS = [
|
|
|
219
221
|
'webpack.config.mjs',
|
|
220
222
|
'webpack.config.ts'
|
|
221
223
|
];
|
|
222
|
-
const mergeConfigWithUserConfig = async (config, ctx)=>{
|
|
223
|
-
const userConfig = await
|
|
224
|
+
const mergeConfigWithUserConfig = async (config$1, ctx)=>{
|
|
225
|
+
const userConfig = await config.getUserConfig(USER_CONFIGS, ctx);
|
|
224
226
|
if (userConfig) {
|
|
225
227
|
if (typeof userConfig === 'function') {
|
|
226
228
|
const webpack = await import('webpack');
|
|
227
|
-
return userConfig(config, webpack);
|
|
229
|
+
return userConfig(config$1, webpack);
|
|
228
230
|
}
|
|
229
231
|
ctx.logger.warn(`You've exported something other than a function from ${path.join(ctx.appDir, 'src', 'admin', 'webpack.config')}, this will ignored.`);
|
|
230
232
|
}
|
|
231
|
-
return config;
|
|
233
|
+
return config$1;
|
|
232
234
|
};
|
|
233
235
|
/**
|
|
234
236
|
* @internal This function is used to resolve the path of a module.
|
|
@@ -244,4 +246,4 @@ const mergeConfigWithUserConfig = async (config, ctx)=>{
|
|
|
244
246
|
exports.mergeConfigWithUserConfig = mergeConfigWithUserConfig;
|
|
245
247
|
exports.resolveDevelopmentConfig = resolveDevelopmentConfig;
|
|
246
248
|
exports.resolveProductionConfig = resolveProductionConfig;
|
|
247
|
-
//# sourceMappingURL=config
|
|
249
|
+
//# sourceMappingURL=config.js.map
|