@strapi/strapi 5.35.0 → 5.36.1
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/commands/develop.d.ts.map +1 -1
- package/dist/node/develop.d.ts +2 -1
- package/dist/node/develop.d.ts.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/cli/commands/develop.js +1 -1
- package/dist/src/cli/commands/develop.js.map +1 -1
- package/dist/src/cli/commands/develop.mjs +1 -1
- package/dist/src/cli/commands/develop.mjs.map +1 -1
- package/dist/src/node/develop.js +2 -2
- package/dist/src/node/develop.js.map +1 -1
- package/dist/src/node/develop.mjs +2 -2
- package/dist/src/node/develop.mjs.map +1 -1
- package/package.json +23 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/develop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsB9C;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/develop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsB9C;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,aAgBd,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/node/develop.d.ts
CHANGED
|
@@ -9,8 +9,9 @@ interface DevelopOptions extends CLIContext {
|
|
|
9
9
|
polling?: boolean;
|
|
10
10
|
open?: boolean;
|
|
11
11
|
watchAdmin?: boolean;
|
|
12
|
+
buildAdmin?: boolean;
|
|
12
13
|
}
|
|
13
|
-
declare const develop: ({ cwd, polling, logger, tsconfig, watchAdmin, ...options }: DevelopOptions) => Promise<void>;
|
|
14
|
+
declare const develop: ({ cwd, polling, logger, tsconfig, watchAdmin, buildAdmin, ...options }: DevelopOptions) => Promise<void>;
|
|
14
15
|
export { develop };
|
|
15
16
|
export type { DevelopOptions };
|
|
16
17
|
//# sourceMappingURL=develop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/node/develop.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS/C,UAAU,cAAe,SAAQ,UAAU;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA4CD,QAAA,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/node/develop.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS/C,UAAU,cAAe,SAAQ,UAAU;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA4CD,QAAA,MAAM,OAAO,2EAQV,cAAc,kBA8PhB,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/package.json.js
CHANGED
package/dist/package.json.mjs
CHANGED
|
@@ -20,7 +20,7 @@ const action = async (options)=>{
|
|
|
20
20
|
/**
|
|
21
21
|
* `$ strapi develop`
|
|
22
22
|
*/ const command = ({ ctx })=>{
|
|
23
|
-
return commander.createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--open', 'Open the admin in your browser', true).description('Start your Strapi application in development mode').action(async (options)=>{
|
|
23
|
+
return commander.createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--build-admin', 'Build the admin panel', true).option('--no-build-admin', 'Do not build the admin panel in case watch is disabled').option('--open', 'Open the admin in your browser', true).description('Start your Strapi application in development mode').action(async (options)=>{
|
|
24
24
|
return action({
|
|
25
25
|
...options,
|
|
26
26
|
...ctx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.js","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--open', 'Open the admin in your browser', true)\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAW,EAAA;gBACjCH,OAAQI,CAAAA,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ;AACF;AAEA,QAAA,MAAMC,eAAYN,CAAAA,OAAAA,CAAAA;AACpB,KAAA,CAAE,OAAOO,GAAK,EAAA;QACZC,4BAAsBD,CAAAA,GAAAA,CAAAA;AACxB;AACF,CAAA;AAEA;;AAEC,IACKE,MAAAA,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;IACrC,OAAOC,uBAAAA,CAAc,
|
|
1
|
+
{"version":3,"file":"develop.js","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--build-admin', 'Build the admin panel', true)\n .option('--no-build-admin', 'Do not build the admin panel in case watch is disabled')\n .option('--open', 'Open the admin in your browser', true)\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAW,EAAA;gBACjCH,OAAQI,CAAAA,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ;AACF;AAEA,QAAA,MAAMC,eAAYN,CAAAA,OAAAA,CAAAA;AACpB,KAAA,CAAE,OAAOO,GAAK,EAAA;QACZC,4BAAsBD,CAAAA,GAAAA,CAAAA;AACxB;AACF,CAAA;AAEA;;AAEC,IACKE,MAAAA,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;IACrC,OAAOC,uBAAAA,CAAc,SAClBC,CAAAA,CAAAA,KAAK,CAAC,KAAA,CAAA,CACNC,MAAM,CAAC,qBAAA,EAAuB,kCAAoC,EAAA,MAAA,CAAA,CAClEA,MAAM,CAAC,eAAe,yCAA2C,EAAA,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAY,EAAA,oBAAA,EAAsB,OACzCA,MAAM,CAAC,WAAa,EAAA,+CAAA,EAAiD,KACrEA,CAAAA,CAAAA,MAAM,CAAC,eAAiB,EAAA,uCAAA,EAAyC,IACjEA,CAAAA,CAAAA,MAAM,CAAC,kBAAA,EAAoB,gDAC3BA,MAAM,CAAC,eAAiB,EAAA,uBAAA,EAAyB,IACjDA,CAAAA,CAAAA,MAAM,CAAC,kBAAoB,EAAA,wDAAA,CAAA,CAC3BA,MAAM,CAAC,QAAU,EAAA,gCAAA,EAAkC,IACnDC,CAAAA,CAAAA,WAAW,CAAC,mDAAA,CAAA,CACZf,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAO,CAAA;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGU;AAAI,SAAA,CAAA;AACrC,KAAA,CAAA;AACJ;;;;"}
|
|
@@ -18,7 +18,7 @@ const action = async (options)=>{
|
|
|
18
18
|
/**
|
|
19
19
|
* `$ strapi develop`
|
|
20
20
|
*/ const command = ({ ctx })=>{
|
|
21
|
-
return createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--open', 'Open the admin in your browser', true).description('Start your Strapi application in development mode').action(async (options)=>{
|
|
21
|
+
return createCommand('develop').alias('dev').option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite').option('-d, --debug', 'Enable debugging mode with verbose logs', false).option('--silent', "Don't log anything", false).option('--polling', 'Watch for file changes in network directories', false).option('--watch-admin', 'Watch the admin panel for hot changes', true).option('--no-watch-admin', 'Do not watch the admin panel for hot changes').option('--build-admin', 'Build the admin panel', true).option('--no-build-admin', 'Do not build the admin panel in case watch is disabled').option('--open', 'Open the admin in your browser', true).description('Start your Strapi application in development mode').action(async (options)=>{
|
|
22
22
|
return action({
|
|
23
23
|
...options,
|
|
24
24
|
...ctx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.mjs","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--open', 'Open the admin in your browser', true)\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAW,EAAA;gBACjCH,OAAQI,CAAAA,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ;AACF;AAEA,QAAA,MAAMC,OAAYN,CAAAA,OAAAA,CAAAA;AACpB,KAAA,CAAE,OAAOO,GAAK,EAAA;QACZC,qBAAsBD,CAAAA,GAAAA,CAAAA;AACxB;AACF,CAAA;AAEA;;AAEC,IACKE,MAAAA,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;IACrC,OAAOC,aAAAA,CAAc,
|
|
1
|
+
{"version":3,"file":"develop.mjs","sources":["../../../../src/cli/commands/develop.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport cluster from 'node:cluster';\nimport type { StrapiCommand } from '../types';\nimport { develop as nodeDevelop, DevelopOptions } from '../../node/develop';\nimport { handleUnexpectedError } from '../../node/core/errors';\n\ntype DevelopCLIOptions = DevelopOptions;\n\nconst action = async (options: DevelopCLIOptions) => {\n try {\n if (cluster.isPrimary) {\n if (options.bundler === 'webpack') {\n options.logger.warn(\n '[@strapi/strapi]: Using webpack as a bundler is deprecated. You should migrate to vite.'\n );\n }\n }\n\n await nodeDevelop(options);\n } catch (err) {\n handleUnexpectedError(err);\n }\n};\n\n/**\n * `$ strapi develop`\n */\nconst command: StrapiCommand = ({ ctx }) => {\n return createCommand('develop')\n .alias('dev')\n .option('--bundler [bundler]', 'Bundler to use (webpack or vite)', 'vite')\n .option('-d, --debug', 'Enable debugging mode with verbose logs', false)\n .option('--silent', \"Don't log anything\", false)\n .option('--polling', 'Watch for file changes in network directories', false)\n .option('--watch-admin', 'Watch the admin panel for hot changes', true)\n .option('--no-watch-admin', 'Do not watch the admin panel for hot changes')\n .option('--build-admin', 'Build the admin panel', true)\n .option('--no-build-admin', 'Do not build the admin panel in case watch is disabled')\n .option('--open', 'Open the admin in your browser', true)\n .description('Start your Strapi application in development mode')\n .action(async (options: DevelopCLIOptions) => {\n return action({ ...options, ...ctx });\n });\n};\n\nexport { command };\n"],"names":["action","options","cluster","isPrimary","bundler","logger","warn","nodeDevelop","err","handleUnexpectedError","command","ctx","createCommand","alias","option","description"],"mappings":";;;;;AAQA,MAAMA,SAAS,OAAOC,OAAAA,GAAAA;IACpB,IAAI;QACF,IAAIC,OAAAA,CAAQC,SAAS,EAAE;YACrB,IAAIF,OAAAA,CAAQG,OAAO,KAAK,SAAW,EAAA;gBACjCH,OAAQI,CAAAA,MAAM,CAACC,IAAI,CACjB,yFAAA,CAAA;AAEJ;AACF;AAEA,QAAA,MAAMC,OAAYN,CAAAA,OAAAA,CAAAA;AACpB,KAAA,CAAE,OAAOO,GAAK,EAAA;QACZC,qBAAsBD,CAAAA,GAAAA,CAAAA;AACxB;AACF,CAAA;AAEA;;AAEC,IACKE,MAAAA,OAAAA,GAAyB,CAAC,EAAEC,GAAG,EAAE,GAAA;IACrC,OAAOC,aAAAA,CAAc,SAClBC,CAAAA,CAAAA,KAAK,CAAC,KAAA,CAAA,CACNC,MAAM,CAAC,qBAAA,EAAuB,kCAAoC,EAAA,MAAA,CAAA,CAClEA,MAAM,CAAC,eAAe,yCAA2C,EAAA,KAAA,CAAA,CACjEA,MAAM,CAAC,UAAY,EAAA,oBAAA,EAAsB,OACzCA,MAAM,CAAC,WAAa,EAAA,+CAAA,EAAiD,KACrEA,CAAAA,CAAAA,MAAM,CAAC,eAAiB,EAAA,uCAAA,EAAyC,IACjEA,CAAAA,CAAAA,MAAM,CAAC,kBAAA,EAAoB,gDAC3BA,MAAM,CAAC,eAAiB,EAAA,uBAAA,EAAyB,IACjDA,CAAAA,CAAAA,MAAM,CAAC,kBAAoB,EAAA,wDAAA,CAAA,CAC3BA,MAAM,CAAC,QAAU,EAAA,gCAAA,EAAkC,IACnDC,CAAAA,CAAAA,WAAW,CAAC,mDAAA,CAAA,CACZf,MAAM,CAAC,OAAOC,OAAAA,GAAAA;AACb,QAAA,OAAOD,MAAO,CAAA;AAAE,YAAA,GAAGC,OAAO;AAAE,YAAA,GAAGU;AAAI,SAAA,CAAA;AACrC,KAAA,CAAA;AACJ;;;;"}
|
package/dist/src/node/develop.js
CHANGED
|
@@ -61,7 +61,7 @@ const cleanupDistDirectory = async ({ tsconfig, logger, timer: timer$1 })=>{
|
|
|
61
61
|
cleaningSpinner.text = `Cleaning dist dir (${timer.prettyTime(generatingDuration)})`;
|
|
62
62
|
cleaningSpinner?.succeed();
|
|
63
63
|
};
|
|
64
|
-
const develop = async ({ cwd, polling, logger, tsconfig, watchAdmin, ...options })=>{
|
|
64
|
+
const develop = async ({ cwd, polling, logger, tsconfig, watchAdmin, buildAdmin, ...options })=>{
|
|
65
65
|
const timer$1 = timer.getTimer();
|
|
66
66
|
if (cluster.isPrimary) {
|
|
67
67
|
const { didInstall } = await dependencies.checkRequiredDependencies({
|
|
@@ -91,7 +91,7 @@ const develop = async ({ cwd, polling, logger, tsconfig, watchAdmin, ...options
|
|
|
91
91
|
* IF we're not watching the admin we're going to build it, this makes
|
|
92
92
|
* sure that at least the admin is built for users & they can interact
|
|
93
93
|
* with the application.
|
|
94
|
-
*/ if (!watchAdmin) {
|
|
94
|
+
*/ if (!watchAdmin && buildAdmin) {
|
|
95
95
|
timer$1.start('createBuildContext');
|
|
96
96
|
const contextSpinner = logger.spinner(`Building build context`).start();
|
|
97
97
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.js","sources":["../../../src/node/develop.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport { strings } from '@strapi/utils';\nimport chokidar from 'chokidar';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport cluster from 'node:cluster';\nimport { createStrapi } from '@strapi/core';\n\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime, type TimeMeasurer } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport type { WebpackWatcher } from './webpack/watch';\nimport type { ViteWatcher } from './vite/watch';\n\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface DevelopOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n polling?: boolean;\n open?: boolean;\n watchAdmin?: boolean;\n}\n\n// This method removes all non-admin build files from the dist directory\nconst cleanupDistDirectory = async ({\n tsconfig,\n logger,\n timer,\n}: Pick<DevelopOptions, 'tsconfig' | 'logger'> & { timer: TimeMeasurer }) => {\n const distDir = tsconfig?.config?.options?.outDir;\n\n if (\n !distDir || // we don't have a dist dir\n (await fs\n .access(distDir)\n .then(() => false)\n .catch(() => true)) // it doesn't exist -- if it does but no access, that will be caught later\n ) {\n return;\n }\n\n const timerName = `cleaningDist${Date.now()}`;\n timer.start(timerName);\n const cleaningSpinner = logger.spinner(`Cleaning dist dir ${distDir}`).start();\n\n try {\n const dirContent = await fs.readdir(distDir);\n const validFilenames = dirContent\n // Ignore the admin build folder\n .filter((filename) => filename !== 'build');\n for (const filename of validFilenames) {\n await fs.rm(path.resolve(distDir, filename), { recursive: true });\n }\n } catch (err: unknown) {\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Error cleaning dist dir: ${err} (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.fail();\n return;\n }\n\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Cleaning dist dir (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.succeed();\n};\n\nconst develop = async ({\n cwd,\n polling,\n logger,\n tsconfig,\n watchAdmin,\n ...options\n}: DevelopOptions) => {\n const timer = getTimer();\n\n if (cluster.isPrimary) {\n const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n logger.error(err.message);\n process.exit(1);\n });\n\n if (didInstall) {\n return;\n }\n\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n\n /**\n * IF we're not watching the admin we're going to build it, this makes\n * sure that at least the admin is built for users & they can interact\n * with the application.\n */\n if (!watchAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n cluster.on('message', async (worker, message) => {\n switch (message) {\n case 'reload': {\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n logger.debug('cluster has the reload message, sending the worker kill message');\n worker.send('kill');\n break;\n }\n case 'killed': {\n logger.debug('cluster has the killed message, forking the cluster');\n cluster.fork();\n break;\n }\n case 'stop': {\n process.exit(1);\n break;\n }\n default:\n break;\n }\n });\n\n cluster.fork();\n }\n\n if (cluster.isWorker) {\n timer.start('loadStrapi');\n const loadStrapiSpinner = logger.spinner(`Loading Strapi`).start();\n\n const strapi = createStrapi({\n appDir: cwd,\n distDir: tsconfig?.config.options.outDir ?? '',\n autoReload: true,\n serveAdminPanel: !watchAdmin,\n });\n\n /**\n * If we're watching the admin panel then we're going to attach the watcher\n * as a strapi middleware.\n */\n let bundleWatcher: WebpackWatcher | ViteWatcher | undefined;\n\n const strapiInstance = await strapi.load();\n\n if (watchAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n strapi,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { watch: watchWebpack } = await import('./webpack/watch');\n bundleWatcher = await watchWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { watch: watchVite } = await import('./vite/watch');\n bundleWatcher = await watchVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n const loadStrapiDuration = timer.end('loadStrapi');\n loadStrapiSpinner.text = `Loading Strapi (${prettyTime(loadStrapiDuration)})`;\n loadStrapiSpinner.succeed();\n\n // For TS projects, type generation is a requirement for the develop command so that the server can restart\n // For JS projects, we respect the experimental autogenerate setting\n if (tsconfig?.config || strapi.config.get('typescript.autogenerate') !== false) {\n timer.start('generatingTS');\n const generatingTsSpinner = logger.spinner(`Generating types`).start();\n\n await tsUtils.generators.generate({\n strapi: strapiInstance,\n pwd: cwd,\n rootDir: undefined,\n logger: { silent: true, debug: false },\n artifacts: { contentTypes: true, components: true },\n });\n\n const generatingDuration = timer.end('generatingTS');\n generatingTsSpinner.text = `Generating types (${prettyTime(generatingDuration)})`;\n generatingTsSpinner.succeed();\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n const restart = async () => {\n if (strapiInstance.reload.isWatching && !strapiInstance.reload.isReloading) {\n strapiInstance.reload.isReloading = true;\n strapiInstance.reload();\n }\n };\n\n const watcher = chokidar\n .watch(cwd, {\n ignoreInitial: true,\n usePolling: polling,\n ignored: [\n /(^|[/\\\\])\\../, // dot files\n /tmp/,\n '**/src/admin/**',\n '**/src/plugins/**/admin/**',\n '**/dist/src/plugins/test/admin/**',\n '**/documentation',\n '**/documentation/**',\n '**/node_modules',\n '**/node_modules/**',\n '**/plugins.json',\n '**/build',\n '**/build/**',\n '**/log',\n '**/log/**',\n '**/logs',\n '**/logs/**',\n '**/*.log',\n '**/index.html',\n '**/public',\n '**/public/**',\n strapiInstance.dirs.static.public,\n strings.joinBy('/', strapiInstance.dirs.static.public, '**'),\n '**/*.db*',\n '**/exports/**',\n '**/dist/**',\n '**/*.d.ts',\n '**/.yalc/**',\n '**/yalc.lock',\n // TODO v6: watch only src folder by default, and flip this to watchIncludeFiles\n ...strapiInstance.config.get('admin.watchIgnoreFiles', []),\n ],\n })\n .on('add', (path) => {\n strapiInstance.log.info(`File created: ${path}`);\n restart();\n })\n .on('change', (path) => {\n strapiInstance.log.info(`File changed: ${path}`);\n restart();\n })\n .on('unlink', (path) => {\n strapiInstance.log.info(`File deleted: ${path}`);\n restart();\n });\n\n process.on('message', async (message) => {\n switch (message) {\n case 'kill': {\n logger.debug(\n 'child process has the kill message, destroying the strapi instance and sending the killed process message'\n );\n await watcher.close();\n\n await strapiInstance.destroy();\n\n if (bundleWatcher) {\n bundleWatcher.close();\n }\n process.send?.('killed');\n break;\n }\n default:\n break;\n }\n });\n\n strapiInstance.start();\n }\n};\n\nexport { develop };\nexport type { DevelopOptions };\n"],"names":["cleanupDistDirectory","tsconfig","logger","timer","distDir","config","options","outDir","fs","access","then","catch","timerName","Date","now","start","cleaningSpinner","spinner","dirContent","readdir","validFilenames","filter","filename","rm","path","resolve","recursive","err","generatingDuration","end","text","prettyTime","fail","succeed","develop","cwd","polling","watchAdmin","getTimer","cluster","isPrimary","didInstall","checkRequiredDependencies","error","message","process","exit","tsUtils","compile","configOptions","ignoreDiagnostics","contextSpinner","console","log","ctx","createBuildContext","contextDuration","adminSpinner","writeStaticClientFiles","bundler","build","buildWebpack","buildVite","adminDuration","on","worker","debug","send","fork","isWorker","loadStrapiSpinner","strapi","createStrapi","appDir","autoReload","serveAdminPanel","bundleWatcher","strapiInstance","load","watch","watchWebpack","watchVite","loadStrapiDuration","get","generatingTsSpinner","generators","generate","pwd","rootDir","undefined","silent","artifacts","contentTypes","components","compilingTsSpinner","compilingDuration","restart","reload","isWatching","isReloading","watcher","chokidar","ignoreInitial","usePolling","ignored","dirs","static","public","strings","joinBy","info","close","destroy"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"develop.js","sources":["../../../src/node/develop.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport { strings } from '@strapi/utils';\nimport chokidar from 'chokidar';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport cluster from 'node:cluster';\nimport { createStrapi } from '@strapi/core';\n\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime, type TimeMeasurer } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport type { WebpackWatcher } from './webpack/watch';\nimport type { ViteWatcher } from './vite/watch';\n\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface DevelopOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n polling?: boolean;\n open?: boolean;\n watchAdmin?: boolean;\n buildAdmin?: boolean;\n}\n\n// This method removes all non-admin build files from the dist directory\nconst cleanupDistDirectory = async ({\n tsconfig,\n logger,\n timer,\n}: Pick<DevelopOptions, 'tsconfig' | 'logger'> & { timer: TimeMeasurer }) => {\n const distDir = tsconfig?.config?.options?.outDir;\n\n if (\n !distDir || // we don't have a dist dir\n (await fs\n .access(distDir)\n .then(() => false)\n .catch(() => true)) // it doesn't exist -- if it does but no access, that will be caught later\n ) {\n return;\n }\n\n const timerName = `cleaningDist${Date.now()}`;\n timer.start(timerName);\n const cleaningSpinner = logger.spinner(`Cleaning dist dir ${distDir}`).start();\n\n try {\n const dirContent = await fs.readdir(distDir);\n const validFilenames = dirContent\n // Ignore the admin build folder\n .filter((filename) => filename !== 'build');\n for (const filename of validFilenames) {\n await fs.rm(path.resolve(distDir, filename), { recursive: true });\n }\n } catch (err: unknown) {\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Error cleaning dist dir: ${err} (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.fail();\n return;\n }\n\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Cleaning dist dir (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.succeed();\n};\n\nconst develop = async ({\n cwd,\n polling,\n logger,\n tsconfig,\n watchAdmin,\n buildAdmin,\n ...options\n}: DevelopOptions) => {\n const timer = getTimer();\n\n if (cluster.isPrimary) {\n const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n logger.error(err.message);\n process.exit(1);\n });\n\n if (didInstall) {\n return;\n }\n\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n\n /**\n * IF we're not watching the admin we're going to build it, this makes\n * sure that at least the admin is built for users & they can interact\n * with the application.\n */\n if (!watchAdmin && buildAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n cluster.on('message', async (worker, message) => {\n switch (message) {\n case 'reload': {\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n logger.debug('cluster has the reload message, sending the worker kill message');\n worker.send('kill');\n break;\n }\n case 'killed': {\n logger.debug('cluster has the killed message, forking the cluster');\n cluster.fork();\n break;\n }\n case 'stop': {\n process.exit(1);\n break;\n }\n default:\n break;\n }\n });\n\n cluster.fork();\n }\n\n if (cluster.isWorker) {\n timer.start('loadStrapi');\n const loadStrapiSpinner = logger.spinner(`Loading Strapi`).start();\n\n const strapi = createStrapi({\n appDir: cwd,\n distDir: tsconfig?.config.options.outDir ?? '',\n autoReload: true,\n serveAdminPanel: !watchAdmin,\n });\n\n /**\n * If we're watching the admin panel then we're going to attach the watcher\n * as a strapi middleware.\n */\n let bundleWatcher: WebpackWatcher | ViteWatcher | undefined;\n\n const strapiInstance = await strapi.load();\n\n if (watchAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n strapi,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { watch: watchWebpack } = await import('./webpack/watch');\n bundleWatcher = await watchWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { watch: watchVite } = await import('./vite/watch');\n bundleWatcher = await watchVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n const loadStrapiDuration = timer.end('loadStrapi');\n loadStrapiSpinner.text = `Loading Strapi (${prettyTime(loadStrapiDuration)})`;\n loadStrapiSpinner.succeed();\n\n // For TS projects, type generation is a requirement for the develop command so that the server can restart\n // For JS projects, we respect the experimental autogenerate setting\n if (tsconfig?.config || strapi.config.get('typescript.autogenerate') !== false) {\n timer.start('generatingTS');\n const generatingTsSpinner = logger.spinner(`Generating types`).start();\n\n await tsUtils.generators.generate({\n strapi: strapiInstance,\n pwd: cwd,\n rootDir: undefined,\n logger: { silent: true, debug: false },\n artifacts: { contentTypes: true, components: true },\n });\n\n const generatingDuration = timer.end('generatingTS');\n generatingTsSpinner.text = `Generating types (${prettyTime(generatingDuration)})`;\n generatingTsSpinner.succeed();\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n const restart = async () => {\n if (strapiInstance.reload.isWatching && !strapiInstance.reload.isReloading) {\n strapiInstance.reload.isReloading = true;\n strapiInstance.reload();\n }\n };\n\n const watcher = chokidar\n .watch(cwd, {\n ignoreInitial: true,\n usePolling: polling,\n ignored: [\n /(^|[/\\\\])\\../, // dot files\n /tmp/,\n '**/src/admin/**',\n '**/src/plugins/**/admin/**',\n '**/dist/src/plugins/test/admin/**',\n '**/documentation',\n '**/documentation/**',\n '**/node_modules',\n '**/node_modules/**',\n '**/plugins.json',\n '**/build',\n '**/build/**',\n '**/log',\n '**/log/**',\n '**/logs',\n '**/logs/**',\n '**/*.log',\n '**/index.html',\n '**/public',\n '**/public/**',\n strapiInstance.dirs.static.public,\n strings.joinBy('/', strapiInstance.dirs.static.public, '**'),\n '**/*.db*',\n '**/exports/**',\n '**/dist/**',\n '**/*.d.ts',\n '**/.yalc/**',\n '**/yalc.lock',\n // TODO v6: watch only src folder by default, and flip this to watchIncludeFiles\n ...strapiInstance.config.get('admin.watchIgnoreFiles', []),\n ],\n })\n .on('add', (path) => {\n strapiInstance.log.info(`File created: ${path}`);\n restart();\n })\n .on('change', (path) => {\n strapiInstance.log.info(`File changed: ${path}`);\n restart();\n })\n .on('unlink', (path) => {\n strapiInstance.log.info(`File deleted: ${path}`);\n restart();\n });\n\n process.on('message', async (message) => {\n switch (message) {\n case 'kill': {\n logger.debug(\n 'child process has the kill message, destroying the strapi instance and sending the killed process message'\n );\n await watcher.close();\n\n await strapiInstance.destroy();\n\n if (bundleWatcher) {\n bundleWatcher.close();\n }\n process.send?.('killed');\n break;\n }\n default:\n break;\n }\n });\n\n strapiInstance.start();\n }\n};\n\nexport { develop };\nexport type { DevelopOptions };\n"],"names":["cleanupDistDirectory","tsconfig","logger","timer","distDir","config","options","outDir","fs","access","then","catch","timerName","Date","now","start","cleaningSpinner","spinner","dirContent","readdir","validFilenames","filter","filename","rm","path","resolve","recursive","err","generatingDuration","end","text","prettyTime","fail","succeed","develop","cwd","polling","watchAdmin","buildAdmin","getTimer","cluster","isPrimary","didInstall","checkRequiredDependencies","error","message","process","exit","tsUtils","compile","configOptions","ignoreDiagnostics","contextSpinner","console","log","ctx","createBuildContext","contextDuration","adminSpinner","writeStaticClientFiles","bundler","build","buildWebpack","buildVite","adminDuration","on","worker","debug","send","fork","isWorker","loadStrapiSpinner","strapi","createStrapi","appDir","autoReload","serveAdminPanel","bundleWatcher","strapiInstance","load","watch","watchWebpack","watchVite","loadStrapiDuration","get","generatingTsSpinner","generators","generate","pwd","rootDir","undefined","silent","artifacts","contentTypes","components","compilingTsSpinner","compilingDuration","restart","reload","isWatching","isReloading","watcher","chokidar","ignoreInitial","usePolling","ignored","dirs","static","public","strings","joinBy","info","close","destroy"],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ const cleanupDistDirectory = async ({ tsconfig, logger, timer })=>{
|
|
|
40
40
|
cleaningSpinner.text = `Cleaning dist dir (${prettyTime(generatingDuration)})`;
|
|
41
41
|
cleaningSpinner?.succeed();
|
|
42
42
|
};
|
|
43
|
-
const develop = async ({ cwd, polling, logger, tsconfig, watchAdmin, ...options })=>{
|
|
43
|
+
const develop = async ({ cwd, polling, logger, tsconfig, watchAdmin, buildAdmin, ...options })=>{
|
|
44
44
|
const timer = getTimer();
|
|
45
45
|
if (cluster.isPrimary) {
|
|
46
46
|
const { didInstall } = await checkRequiredDependencies({
|
|
@@ -70,7 +70,7 @@ const develop = async ({ cwd, polling, logger, tsconfig, watchAdmin, ...options
|
|
|
70
70
|
* IF we're not watching the admin we're going to build it, this makes
|
|
71
71
|
* sure that at least the admin is built for users & they can interact
|
|
72
72
|
* with the application.
|
|
73
|
-
*/ if (!watchAdmin) {
|
|
73
|
+
*/ if (!watchAdmin && buildAdmin) {
|
|
74
74
|
timer.start('createBuildContext');
|
|
75
75
|
const contextSpinner = logger.spinner(`Building build context`).start();
|
|
76
76
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.mjs","sources":["../../../src/node/develop.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport { strings } from '@strapi/utils';\nimport chokidar from 'chokidar';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport cluster from 'node:cluster';\nimport { createStrapi } from '@strapi/core';\n\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime, type TimeMeasurer } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport type { WebpackWatcher } from './webpack/watch';\nimport type { ViteWatcher } from './vite/watch';\n\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface DevelopOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n polling?: boolean;\n open?: boolean;\n watchAdmin?: boolean;\n}\n\n// This method removes all non-admin build files from the dist directory\nconst cleanupDistDirectory = async ({\n tsconfig,\n logger,\n timer,\n}: Pick<DevelopOptions, 'tsconfig' | 'logger'> & { timer: TimeMeasurer }) => {\n const distDir = tsconfig?.config?.options?.outDir;\n\n if (\n !distDir || // we don't have a dist dir\n (await fs\n .access(distDir)\n .then(() => false)\n .catch(() => true)) // it doesn't exist -- if it does but no access, that will be caught later\n ) {\n return;\n }\n\n const timerName = `cleaningDist${Date.now()}`;\n timer.start(timerName);\n const cleaningSpinner = logger.spinner(`Cleaning dist dir ${distDir}`).start();\n\n try {\n const dirContent = await fs.readdir(distDir);\n const validFilenames = dirContent\n // Ignore the admin build folder\n .filter((filename) => filename !== 'build');\n for (const filename of validFilenames) {\n await fs.rm(path.resolve(distDir, filename), { recursive: true });\n }\n } catch (err: unknown) {\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Error cleaning dist dir: ${err} (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.fail();\n return;\n }\n\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Cleaning dist dir (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.succeed();\n};\n\nconst develop = async ({\n cwd,\n polling,\n logger,\n tsconfig,\n watchAdmin,\n ...options\n}: DevelopOptions) => {\n const timer = getTimer();\n\n if (cluster.isPrimary) {\n const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n logger.error(err.message);\n process.exit(1);\n });\n\n if (didInstall) {\n return;\n }\n\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n\n /**\n * IF we're not watching the admin we're going to build it, this makes\n * sure that at least the admin is built for users & they can interact\n * with the application.\n */\n if (!watchAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n cluster.on('message', async (worker, message) => {\n switch (message) {\n case 'reload': {\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n logger.debug('cluster has the reload message, sending the worker kill message');\n worker.send('kill');\n break;\n }\n case 'killed': {\n logger.debug('cluster has the killed message, forking the cluster');\n cluster.fork();\n break;\n }\n case 'stop': {\n process.exit(1);\n break;\n }\n default:\n break;\n }\n });\n\n cluster.fork();\n }\n\n if (cluster.isWorker) {\n timer.start('loadStrapi');\n const loadStrapiSpinner = logger.spinner(`Loading Strapi`).start();\n\n const strapi = createStrapi({\n appDir: cwd,\n distDir: tsconfig?.config.options.outDir ?? '',\n autoReload: true,\n serveAdminPanel: !watchAdmin,\n });\n\n /**\n * If we're watching the admin panel then we're going to attach the watcher\n * as a strapi middleware.\n */\n let bundleWatcher: WebpackWatcher | ViteWatcher | undefined;\n\n const strapiInstance = await strapi.load();\n\n if (watchAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n strapi,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { watch: watchWebpack } = await import('./webpack/watch');\n bundleWatcher = await watchWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { watch: watchVite } = await import('./vite/watch');\n bundleWatcher = await watchVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n const loadStrapiDuration = timer.end('loadStrapi');\n loadStrapiSpinner.text = `Loading Strapi (${prettyTime(loadStrapiDuration)})`;\n loadStrapiSpinner.succeed();\n\n // For TS projects, type generation is a requirement for the develop command so that the server can restart\n // For JS projects, we respect the experimental autogenerate setting\n if (tsconfig?.config || strapi.config.get('typescript.autogenerate') !== false) {\n timer.start('generatingTS');\n const generatingTsSpinner = logger.spinner(`Generating types`).start();\n\n await tsUtils.generators.generate({\n strapi: strapiInstance,\n pwd: cwd,\n rootDir: undefined,\n logger: { silent: true, debug: false },\n artifacts: { contentTypes: true, components: true },\n });\n\n const generatingDuration = timer.end('generatingTS');\n generatingTsSpinner.text = `Generating types (${prettyTime(generatingDuration)})`;\n generatingTsSpinner.succeed();\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n const restart = async () => {\n if (strapiInstance.reload.isWatching && !strapiInstance.reload.isReloading) {\n strapiInstance.reload.isReloading = true;\n strapiInstance.reload();\n }\n };\n\n const watcher = chokidar\n .watch(cwd, {\n ignoreInitial: true,\n usePolling: polling,\n ignored: [\n /(^|[/\\\\])\\../, // dot files\n /tmp/,\n '**/src/admin/**',\n '**/src/plugins/**/admin/**',\n '**/dist/src/plugins/test/admin/**',\n '**/documentation',\n '**/documentation/**',\n '**/node_modules',\n '**/node_modules/**',\n '**/plugins.json',\n '**/build',\n '**/build/**',\n '**/log',\n '**/log/**',\n '**/logs',\n '**/logs/**',\n '**/*.log',\n '**/index.html',\n '**/public',\n '**/public/**',\n strapiInstance.dirs.static.public,\n strings.joinBy('/', strapiInstance.dirs.static.public, '**'),\n '**/*.db*',\n '**/exports/**',\n '**/dist/**',\n '**/*.d.ts',\n '**/.yalc/**',\n '**/yalc.lock',\n // TODO v6: watch only src folder by default, and flip this to watchIncludeFiles\n ...strapiInstance.config.get('admin.watchIgnoreFiles', []),\n ],\n })\n .on('add', (path) => {\n strapiInstance.log.info(`File created: ${path}`);\n restart();\n })\n .on('change', (path) => {\n strapiInstance.log.info(`File changed: ${path}`);\n restart();\n })\n .on('unlink', (path) => {\n strapiInstance.log.info(`File deleted: ${path}`);\n restart();\n });\n\n process.on('message', async (message) => {\n switch (message) {\n case 'kill': {\n logger.debug(\n 'child process has the kill message, destroying the strapi instance and sending the killed process message'\n );\n await watcher.close();\n\n await strapiInstance.destroy();\n\n if (bundleWatcher) {\n bundleWatcher.close();\n }\n process.send?.('killed');\n break;\n }\n default:\n break;\n }\n });\n\n strapiInstance.start();\n }\n};\n\nexport { develop };\nexport type { DevelopOptions };\n"],"names":["cleanupDistDirectory","tsconfig","logger","timer","distDir","config","options","outDir","fs","access","then","catch","timerName","Date","now","start","cleaningSpinner","spinner","dirContent","readdir","validFilenames","filter","filename","rm","path","resolve","recursive","err","generatingDuration","end","text","prettyTime","fail","succeed","develop","cwd","polling","watchAdmin","getTimer","cluster","isPrimary","didInstall","checkRequiredDependencies","error","message","process","exit","tsUtils","compile","configOptions","ignoreDiagnostics","contextSpinner","console","log","ctx","createBuildContext","contextDuration","adminSpinner","writeStaticClientFiles","bundler","build","buildWebpack","buildVite","adminDuration","on","worker","debug","send","fork","isWorker","loadStrapiSpinner","strapi","createStrapi","appDir","autoReload","serveAdminPanel","bundleWatcher","strapiInstance","load","watch","watchWebpack","watchVite","loadStrapiDuration","get","generatingTsSpinner","generators","generate","pwd","rootDir","undefined","silent","artifacts","contentTypes","components","compilingTsSpinner","compilingDuration","restart","reload","isWatching","isReloading","watcher","chokidar","ignoreInitial","usePolling","ignored","dirs","static","public","strings","joinBy","info","close","destroy"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"develop.mjs","sources":["../../../src/node/develop.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport { strings } from '@strapi/utils';\nimport chokidar from 'chokidar';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport cluster from 'node:cluster';\nimport { createStrapi } from '@strapi/core';\n\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime, type TimeMeasurer } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport type { WebpackWatcher } from './webpack/watch';\nimport type { ViteWatcher } from './vite/watch';\n\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface DevelopOptions extends CLIContext {\n /**\n * Which bundler to use for building.\n *\n * @default webpack\n */\n bundler?: 'webpack' | 'vite';\n polling?: boolean;\n open?: boolean;\n watchAdmin?: boolean;\n buildAdmin?: boolean;\n}\n\n// This method removes all non-admin build files from the dist directory\nconst cleanupDistDirectory = async ({\n tsconfig,\n logger,\n timer,\n}: Pick<DevelopOptions, 'tsconfig' | 'logger'> & { timer: TimeMeasurer }) => {\n const distDir = tsconfig?.config?.options?.outDir;\n\n if (\n !distDir || // we don't have a dist dir\n (await fs\n .access(distDir)\n .then(() => false)\n .catch(() => true)) // it doesn't exist -- if it does but no access, that will be caught later\n ) {\n return;\n }\n\n const timerName = `cleaningDist${Date.now()}`;\n timer.start(timerName);\n const cleaningSpinner = logger.spinner(`Cleaning dist dir ${distDir}`).start();\n\n try {\n const dirContent = await fs.readdir(distDir);\n const validFilenames = dirContent\n // Ignore the admin build folder\n .filter((filename) => filename !== 'build');\n for (const filename of validFilenames) {\n await fs.rm(path.resolve(distDir, filename), { recursive: true });\n }\n } catch (err: unknown) {\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Error cleaning dist dir: ${err} (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.fail();\n return;\n }\n\n const generatingDuration = timer.end(timerName);\n cleaningSpinner.text = `Cleaning dist dir (${prettyTime(generatingDuration)})`;\n cleaningSpinner?.succeed();\n};\n\nconst develop = async ({\n cwd,\n polling,\n logger,\n tsconfig,\n watchAdmin,\n buildAdmin,\n ...options\n}: DevelopOptions) => {\n const timer = getTimer();\n\n if (cluster.isPrimary) {\n const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n logger.error(err.message);\n process.exit(1);\n });\n\n if (didInstall) {\n return;\n }\n\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n\n /**\n * IF we're not watching the admin we're going to build it, this makes\n * sure that at least the admin is built for users & they can interact\n * with the application.\n */\n if (!watchAdmin && buildAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { build: buildWebpack } = await import('./webpack/build');\n await buildWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { build: buildVite } = await import('./vite/build');\n await buildVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n cluster.on('message', async (worker, message) => {\n switch (message) {\n case 'reload': {\n if (tsconfig?.config) {\n // Build without diagnostics in case schemas have changed\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: true } });\n }\n logger.debug('cluster has the reload message, sending the worker kill message');\n worker.send('kill');\n break;\n }\n case 'killed': {\n logger.debug('cluster has the killed message, forking the cluster');\n cluster.fork();\n break;\n }\n case 'stop': {\n process.exit(1);\n break;\n }\n default:\n break;\n }\n });\n\n cluster.fork();\n }\n\n if (cluster.isWorker) {\n timer.start('loadStrapi');\n const loadStrapiSpinner = logger.spinner(`Loading Strapi`).start();\n\n const strapi = createStrapi({\n appDir: cwd,\n distDir: tsconfig?.config.options.outDir ?? '',\n autoReload: true,\n serveAdminPanel: !watchAdmin,\n });\n\n /**\n * If we're watching the admin panel then we're going to attach the watcher\n * as a strapi middleware.\n */\n let bundleWatcher: WebpackWatcher | ViteWatcher | undefined;\n\n const strapiInstance = await strapi.load();\n\n if (watchAdmin) {\n timer.start('createBuildContext');\n const contextSpinner = logger.spinner(`Building build context`).start();\n console.log('');\n\n const ctx = await createBuildContext({\n cwd,\n logger,\n strapi,\n tsconfig,\n options,\n });\n const contextDuration = timer.end('createBuildContext');\n contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n contextSpinner.succeed();\n\n timer.start('creatingAdmin');\n const adminSpinner = logger.spinner(`Creating admin`).start();\n\n await writeStaticClientFiles(ctx);\n\n if (ctx.bundler === 'webpack') {\n const { watch: watchWebpack } = await import('./webpack/watch');\n bundleWatcher = await watchWebpack(ctx);\n } else if (ctx.bundler === 'vite') {\n const { watch: watchVite } = await import('./vite/watch');\n bundleWatcher = await watchVite(ctx);\n }\n\n const adminDuration = timer.end('creatingAdmin');\n adminSpinner.text = `Creating admin (${prettyTime(adminDuration)})`;\n adminSpinner.succeed();\n }\n\n const loadStrapiDuration = timer.end('loadStrapi');\n loadStrapiSpinner.text = `Loading Strapi (${prettyTime(loadStrapiDuration)})`;\n loadStrapiSpinner.succeed();\n\n // For TS projects, type generation is a requirement for the develop command so that the server can restart\n // For JS projects, we respect the experimental autogenerate setting\n if (tsconfig?.config || strapi.config.get('typescript.autogenerate') !== false) {\n timer.start('generatingTS');\n const generatingTsSpinner = logger.spinner(`Generating types`).start();\n\n await tsUtils.generators.generate({\n strapi: strapiInstance,\n pwd: cwd,\n rootDir: undefined,\n logger: { silent: true, debug: false },\n artifacts: { contentTypes: true, components: true },\n });\n\n const generatingDuration = timer.end('generatingTS');\n generatingTsSpinner.text = `Generating types (${prettyTime(generatingDuration)})`;\n generatingTsSpinner.succeed();\n }\n\n if (tsconfig?.config) {\n timer.start('compilingTS');\n const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n await cleanupDistDirectory({ tsconfig, logger, timer });\n await tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n\n const compilingDuration = timer.end('compilingTS');\n compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n compilingTsSpinner.succeed();\n }\n\n const restart = async () => {\n if (strapiInstance.reload.isWatching && !strapiInstance.reload.isReloading) {\n strapiInstance.reload.isReloading = true;\n strapiInstance.reload();\n }\n };\n\n const watcher = chokidar\n .watch(cwd, {\n ignoreInitial: true,\n usePolling: polling,\n ignored: [\n /(^|[/\\\\])\\../, // dot files\n /tmp/,\n '**/src/admin/**',\n '**/src/plugins/**/admin/**',\n '**/dist/src/plugins/test/admin/**',\n '**/documentation',\n '**/documentation/**',\n '**/node_modules',\n '**/node_modules/**',\n '**/plugins.json',\n '**/build',\n '**/build/**',\n '**/log',\n '**/log/**',\n '**/logs',\n '**/logs/**',\n '**/*.log',\n '**/index.html',\n '**/public',\n '**/public/**',\n strapiInstance.dirs.static.public,\n strings.joinBy('/', strapiInstance.dirs.static.public, '**'),\n '**/*.db*',\n '**/exports/**',\n '**/dist/**',\n '**/*.d.ts',\n '**/.yalc/**',\n '**/yalc.lock',\n // TODO v6: watch only src folder by default, and flip this to watchIncludeFiles\n ...strapiInstance.config.get('admin.watchIgnoreFiles', []),\n ],\n })\n .on('add', (path) => {\n strapiInstance.log.info(`File created: ${path}`);\n restart();\n })\n .on('change', (path) => {\n strapiInstance.log.info(`File changed: ${path}`);\n restart();\n })\n .on('unlink', (path) => {\n strapiInstance.log.info(`File deleted: ${path}`);\n restart();\n });\n\n process.on('message', async (message) => {\n switch (message) {\n case 'kill': {\n logger.debug(\n 'child process has the kill message, destroying the strapi instance and sending the killed process message'\n );\n await watcher.close();\n\n await strapiInstance.destroy();\n\n if (bundleWatcher) {\n bundleWatcher.close();\n }\n process.send?.('killed');\n break;\n }\n default:\n break;\n }\n });\n\n strapiInstance.start();\n }\n};\n\nexport { develop };\nexport type { DevelopOptions };\n"],"names":["cleanupDistDirectory","tsconfig","logger","timer","distDir","config","options","outDir","fs","access","then","catch","timerName","Date","now","start","cleaningSpinner","spinner","dirContent","readdir","validFilenames","filter","filename","rm","path","resolve","recursive","err","generatingDuration","end","text","prettyTime","fail","succeed","develop","cwd","polling","watchAdmin","buildAdmin","getTimer","cluster","isPrimary","didInstall","checkRequiredDependencies","error","message","process","exit","tsUtils","compile","configOptions","ignoreDiagnostics","contextSpinner","console","log","ctx","createBuildContext","contextDuration","adminSpinner","writeStaticClientFiles","bundler","build","buildWebpack","buildVite","adminDuration","on","worker","debug","send","fork","isWorker","loadStrapiSpinner","strapi","createStrapi","appDir","autoReload","serveAdminPanel","bundleWatcher","strapiInstance","load","watch","watchWebpack","watchVite","loadStrapiDuration","get","generatingTsSpinner","generators","generate","pwd","rootDir","undefined","silent","artifacts","contentTypes","components","compilingTsSpinner","compilingDuration","restart","reload","isWatching","isReloading","watcher","chokidar","ignoreInitial","usePolling","ignored","dirs","static","public","strings","joinBy","info","close","destroy"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/strapi",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.36.1",
|
|
4
4
|
"description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"strapi",
|
|
@@ -110,25 +110,25 @@
|
|
|
110
110
|
},
|
|
111
111
|
"dependencies": {
|
|
112
112
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.15",
|
|
113
|
-
"@strapi/admin": "5.
|
|
114
|
-
"@strapi/cloud-cli": "5.
|
|
115
|
-
"@strapi/content-manager": "5.
|
|
116
|
-
"@strapi/content-releases": "5.
|
|
117
|
-
"@strapi/content-type-builder": "5.
|
|
118
|
-
"@strapi/core": "5.
|
|
119
|
-
"@strapi/data-transfer": "5.
|
|
120
|
-
"@strapi/database": "5.
|
|
121
|
-
"@strapi/email": "5.
|
|
122
|
-
"@strapi/generators": "5.
|
|
123
|
-
"@strapi/i18n": "5.
|
|
124
|
-
"@strapi/logger": "5.
|
|
125
|
-
"@strapi/openapi": "5.
|
|
126
|
-
"@strapi/permissions": "5.
|
|
127
|
-
"@strapi/review-workflows": "5.
|
|
128
|
-
"@strapi/types": "5.
|
|
129
|
-
"@strapi/typescript-utils": "5.
|
|
130
|
-
"@strapi/upload": "5.
|
|
131
|
-
"@strapi/utils": "5.
|
|
113
|
+
"@strapi/admin": "5.36.1",
|
|
114
|
+
"@strapi/cloud-cli": "5.36.1",
|
|
115
|
+
"@strapi/content-manager": "5.36.1",
|
|
116
|
+
"@strapi/content-releases": "5.36.1",
|
|
117
|
+
"@strapi/content-type-builder": "5.36.1",
|
|
118
|
+
"@strapi/core": "5.36.1",
|
|
119
|
+
"@strapi/data-transfer": "5.36.1",
|
|
120
|
+
"@strapi/database": "5.36.1",
|
|
121
|
+
"@strapi/email": "5.36.1",
|
|
122
|
+
"@strapi/generators": "5.36.1",
|
|
123
|
+
"@strapi/i18n": "5.36.1",
|
|
124
|
+
"@strapi/logger": "5.36.1",
|
|
125
|
+
"@strapi/openapi": "5.36.1",
|
|
126
|
+
"@strapi/permissions": "5.36.1",
|
|
127
|
+
"@strapi/review-workflows": "5.36.1",
|
|
128
|
+
"@strapi/types": "5.36.1",
|
|
129
|
+
"@strapi/typescript-utils": "5.36.1",
|
|
130
|
+
"@strapi/upload": "5.36.1",
|
|
131
|
+
"@strapi/utils": "5.36.1",
|
|
132
132
|
"@types/nodemon": "1.19.6",
|
|
133
133
|
"@vitejs/plugin-react-swc": "3.6.0",
|
|
134
134
|
"boxen": "5.1.2",
|
|
@@ -182,16 +182,16 @@
|
|
|
182
182
|
"@types/node": "24.10.0",
|
|
183
183
|
"@types/webpack-bundle-analyzer": "4.7.0",
|
|
184
184
|
"@types/webpack-hot-middleware": "2.25.9",
|
|
185
|
-
"eslint-config-custom": "5.
|
|
185
|
+
"eslint-config-custom": "5.36.1",
|
|
186
186
|
"jest": "29.6.0",
|
|
187
187
|
"react": "18.3.1",
|
|
188
188
|
"react-dom": "18.3.1",
|
|
189
|
-
"tsconfig": "5.
|
|
189
|
+
"tsconfig": "5.36.1"
|
|
190
190
|
},
|
|
191
191
|
"peerDependencies": {
|
|
192
192
|
"react": "^17.0.0 || ^18.0.0",
|
|
193
193
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
194
|
-
"react-router-dom": "^6.
|
|
194
|
+
"react-router-dom": "^6.30.3",
|
|
195
195
|
"styled-components": "^6.0.0"
|
|
196
196
|
},
|
|
197
197
|
"engines": {
|