@docusaurus/core 4.0.0-canary-6905 → 4.0.0-canary-6907
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.
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
import { RspackDevServer } from '@docusaurus/bundler';
|
|
7
8
|
import WebpackDevServer from 'webpack-dev-server';
|
|
8
9
|
import type { StartCLIOptions } from './start';
|
|
9
10
|
import type { Props } from '@docusaurus/types';
|
|
@@ -12,4 +13,4 @@ export declare function createWebpackDevServer({ props, cliOptions, openUrlConte
|
|
|
12
13
|
props: Props;
|
|
13
14
|
cliOptions: StartCLIOptions;
|
|
14
15
|
openUrlContext: OpenUrlContext;
|
|
15
|
-
}): Promise<WebpackDevServer>;
|
|
16
|
+
}): Promise<WebpackDevServer | RspackDevServer>;
|
|
@@ -147,9 +147,6 @@ async function createDevServer({ devServerConfig, compiler, currentBundler, }) {
|
|
|
147
147
|
if (currentBundler.name === 'webpack') {
|
|
148
148
|
return new webpack_dev_server_1.default(devServerConfig, compiler);
|
|
149
149
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
// @ts-expect-error: different types
|
|
153
|
-
return new RspackDevServer(devServerConfig, compiler);
|
|
154
|
-
}
|
|
150
|
+
// Docusaurus bundler configs are typed with Webpack types
|
|
151
|
+
return new bundler_1.RspackDevServer(devServerConfig, compiler);
|
|
155
152
|
}
|
|
@@ -5,11 +5,9 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { Joi } from '@docusaurus/utils-validation';
|
|
8
|
-
import type { DocusaurusConfig,
|
|
8
|
+
import type { DocusaurusConfig, FutureConfig, FutureV4Config, I18nConfig, StorageConfig } from '@docusaurus/types';
|
|
9
9
|
export declare const DEFAULT_I18N_CONFIG: I18nConfig;
|
|
10
10
|
export declare const DEFAULT_STORAGE_CONFIG: StorageConfig;
|
|
11
|
-
export declare const DEFAULT_FASTER_CONFIG: FasterConfig;
|
|
12
|
-
export declare const DEFAULT_FASTER_CONFIG_TRUE: FasterConfig;
|
|
13
11
|
export declare const DEFAULT_FUTURE_V4_CONFIG: FutureV4Config;
|
|
14
12
|
export declare const DEFAULT_FUTURE_V4_CONFIG_TRUE: FutureV4Config;
|
|
15
13
|
export declare const DEFAULT_FUTURE_CONFIG: FutureConfig;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ConfigSchema = exports.DEFAULT_CONFIG = exports.DEFAULT_FUTURE_CONFIG = exports.DEFAULT_FUTURE_V4_CONFIG_TRUE = exports.DEFAULT_FUTURE_V4_CONFIG = exports.
|
|
9
|
+
exports.ConfigSchema = exports.DEFAULT_CONFIG = exports.DEFAULT_FUTURE_CONFIG = exports.DEFAULT_FUTURE_V4_CONFIG_TRUE = exports.DEFAULT_FUTURE_V4_CONFIG = exports.DEFAULT_STORAGE_CONFIG = exports.DEFAULT_I18N_CONFIG = void 0;
|
|
10
10
|
exports.validateConfig = validateConfig;
|
|
11
11
|
const tslib_1 = require("tslib");
|
|
12
12
|
const utils_1 = require("@docusaurus/utils");
|
|
@@ -45,27 +45,17 @@ exports.DEFAULT_STORAGE_CONFIG = {
|
|
|
45
45
|
type: 'localStorage',
|
|
46
46
|
namespace: false,
|
|
47
47
|
};
|
|
48
|
-
exports.DEFAULT_FASTER_CONFIG = {
|
|
49
|
-
rspackBundler: false,
|
|
50
|
-
};
|
|
51
|
-
// When using the "faster: true" shortcut
|
|
52
|
-
exports.DEFAULT_FASTER_CONFIG_TRUE = {
|
|
53
|
-
rspackBundler: true,
|
|
54
|
-
};
|
|
55
48
|
exports.DEFAULT_FUTURE_V4_CONFIG = {
|
|
56
49
|
useCssCascadeLayers: false,
|
|
57
50
|
siteStorageNamespacing: false,
|
|
58
|
-
fasterByDefault: false,
|
|
59
51
|
};
|
|
60
52
|
// When using the "v4: true" shortcut
|
|
61
53
|
exports.DEFAULT_FUTURE_V4_CONFIG_TRUE = {
|
|
62
54
|
useCssCascadeLayers: true,
|
|
63
55
|
siteStorageNamespacing: true,
|
|
64
|
-
fasterByDefault: true,
|
|
65
56
|
};
|
|
66
57
|
exports.DEFAULT_FUTURE_CONFIG = {
|
|
67
58
|
v4: exports.DEFAULT_FUTURE_V4_CONFIG,
|
|
68
|
-
faster: exports.DEFAULT_FASTER_CONFIG,
|
|
69
59
|
experimental_router: 'browser',
|
|
70
60
|
};
|
|
71
61
|
const DEFAULT_MARKDOWN_HOOKS = {
|
|
@@ -185,26 +175,10 @@ const I18N_CONFIG_SCHEMA = utils_validation_1.Joi.object({
|
|
|
185
175
|
})
|
|
186
176
|
.optional()
|
|
187
177
|
.default(exports.DEFAULT_I18N_CONFIG);
|
|
188
|
-
// Individual boolean defaults are not set here on purpose
|
|
189
|
-
// They are resolved in postProcessDocusaurusConfig based on
|
|
190
|
-
// the future.v4.fasterByDefault flag
|
|
191
|
-
const FASTER_CONFIG_SCHEMA = utils_validation_1.Joi.alternatives()
|
|
192
|
-
.try(utils_validation_1.Joi.object({
|
|
193
|
-
rspackBundler: utils_validation_1.Joi.boolean(),
|
|
194
|
-
swcJsLoader: utils_validation_1.Joi.any()
|
|
195
|
-
.forbidden()
|
|
196
|
-
.messages({
|
|
197
|
-
'any.unknown': `The Docusaurus config ${logger_1.default.code('future.faster.swcJsLoader')} has been removed. Rspack always uses its built-in SWC loader. Webpack uses Babel by default, and you can provide a custom JS loader with ${logger_1.default.code('siteConfig.webpack.jsLoader')}.`,
|
|
198
|
-
}),
|
|
199
|
-
}), utils_validation_1.Joi.boolean()
|
|
200
|
-
.required()
|
|
201
|
-
.custom((bool) => bool ? exports.DEFAULT_FASTER_CONFIG_TRUE : exports.DEFAULT_FASTER_CONFIG))
|
|
202
|
-
.optional();
|
|
203
178
|
const FUTURE_V4_SCHEMA = utils_validation_1.Joi.alternatives()
|
|
204
179
|
.try(utils_validation_1.Joi.object({
|
|
205
180
|
useCssCascadeLayers: utils_validation_1.Joi.boolean().default(exports.DEFAULT_FUTURE_V4_CONFIG.useCssCascadeLayers),
|
|
206
181
|
siteStorageNamespacing: utils_validation_1.Joi.boolean().default(exports.DEFAULT_FUTURE_V4_CONFIG.siteStorageNamespacing),
|
|
207
|
-
fasterByDefault: utils_validation_1.Joi.boolean().default(exports.DEFAULT_FUTURE_V4_CONFIG.fasterByDefault),
|
|
208
182
|
}), utils_validation_1.Joi.boolean()
|
|
209
183
|
.required()
|
|
210
184
|
.custom((bool) => bool ? exports.DEFAULT_FUTURE_V4_CONFIG_TRUE : exports.DEFAULT_FUTURE_V4_CONFIG))
|
|
@@ -247,7 +221,11 @@ const VCS_CONFIG_SCHEMA = utils_validation_1.Joi.custom((input) => {
|
|
|
247
221
|
}).default(() => exports.DEFAULT_CONFIG.vcs);
|
|
248
222
|
const FUTURE_CONFIG_SCHEMA = utils_validation_1.Joi.object({
|
|
249
223
|
v4: FUTURE_V4_SCHEMA,
|
|
250
|
-
faster:
|
|
224
|
+
faster: utils_validation_1.Joi.any()
|
|
225
|
+
.forbidden()
|
|
226
|
+
.messages({
|
|
227
|
+
'any.unknown': `The Docusaurus config ${logger_1.default.code('future.faster')} has been removed. Docusaurus now uses Rspack by default. To keep using Webpack and Babel (deprecated), use ${logger_1.default.code('siteConfig.webpack: true')}.`,
|
|
228
|
+
}),
|
|
251
229
|
experimental_router: utils_validation_1.Joi.string()
|
|
252
230
|
.equal('browser', 'hash')
|
|
253
231
|
.default(exports.DEFAULT_FUTURE_CONFIG.experimental_router),
|
|
@@ -259,7 +237,7 @@ const FUTURE_CONFIG_SCHEMA = utils_validation_1.Joi.object({
|
|
|
259
237
|
experimental_faster: utils_validation_1.Joi.any()
|
|
260
238
|
.forbidden()
|
|
261
239
|
.messages({
|
|
262
|
-
'any.unknown': `The Docusaurus config ${logger_1.default.code('future.experimental_faster')} has been
|
|
240
|
+
'any.unknown': `The Docusaurus config ${logger_1.default.code('future.experimental_faster')} has been removed. Docusaurus now uses Rspack by default. To keep using Webpack and Babel (deprecated), use ${logger_1.default.code('siteConfig.webpack: true')}.`,
|
|
263
241
|
}),
|
|
264
242
|
})
|
|
265
243
|
.optional()
|
|
@@ -347,11 +325,14 @@ exports.ConfigSchema = utils_validation_1.Joi.object({
|
|
|
347
325
|
tagline: utils_validation_1.Joi.string().allow('').default(exports.DEFAULT_CONFIG.tagline),
|
|
348
326
|
titleDelimiter: utils_validation_1.Joi.string().default(exports.DEFAULT_CONFIG.titleDelimiter),
|
|
349
327
|
noIndex: utils_validation_1.Joi.bool().default(exports.DEFAULT_CONFIG.noIndex),
|
|
350
|
-
|
|
328
|
+
// Normalized in postProcessDocusaurusConfig
|
|
329
|
+
webpack: utils_validation_1.Joi.alternatives()
|
|
330
|
+
.try(utils_validation_1.Joi.boolean(), utils_validation_1.Joi.object({
|
|
351
331
|
jsLoader: utils_validation_1.Joi.alternatives()
|
|
352
332
|
.try(utils_validation_1.Joi.string().equal('babel'), utils_validation_1.Joi.function())
|
|
353
333
|
.optional(),
|
|
354
|
-
})
|
|
334
|
+
}))
|
|
335
|
+
.optional(),
|
|
355
336
|
markdown: utils_validation_1.Joi.object({
|
|
356
337
|
format: utils_validation_1.Joi.string()
|
|
357
338
|
.equal('mdx', 'md', 'detect')
|
|
@@ -399,17 +380,13 @@ function postProcessDocusaurusConfig(config) {
|
|
|
399
380
|
if (config.storage.namespace === undefined) {
|
|
400
381
|
config.storage.namespace = config.future.v4.siteStorageNamespacing;
|
|
401
382
|
}
|
|
402
|
-
// Resolve
|
|
403
|
-
|
|
404
|
-
if (
|
|
405
|
-
config.
|
|
383
|
+
// Resolve webpack config: true => {}, false => undefined (Rspack)
|
|
384
|
+
const webpack = config.webpack;
|
|
385
|
+
if (webpack === true) {
|
|
386
|
+
config.webpack = {};
|
|
406
387
|
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
for (const key of fasterKeys) {
|
|
410
|
-
if (config.future.faster[key] === undefined) {
|
|
411
|
-
config.future.faster[key] = fasterDefault;
|
|
412
|
-
}
|
|
388
|
+
else if (webpack === false) {
|
|
389
|
+
delete config.webpack;
|
|
413
390
|
}
|
|
414
391
|
}
|
|
415
392
|
// TODO move to @docusaurus/utils-validation
|
|
@@ -15,7 +15,8 @@ const babel_1 = require("@docusaurus/babel");
|
|
|
15
15
|
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
16
16
|
const uselessBabelConfigMessages = async ({ site }) => {
|
|
17
17
|
const { props: { siteDir, siteConfig }, } = site;
|
|
18
|
-
|
|
18
|
+
// Babel is only used with Webpack
|
|
19
|
+
if (!siteConfig.webpack) {
|
|
19
20
|
const babelConfigFilePath = await (0, babel_1.getCustomBabelConfigFilePath)(siteDir);
|
|
20
21
|
if (babelConfigFilePath) {
|
|
21
22
|
return [
|
|
@@ -28,8 +29,22 @@ const uselessBabelConfigMessages = async ({ site }) => {
|
|
|
28
29
|
}
|
|
29
30
|
return [];
|
|
30
31
|
};
|
|
32
|
+
const webpackDeprecationMessages = async ({ site }) => {
|
|
33
|
+
if (site.props.siteConfig.webpack) {
|
|
34
|
+
return [
|
|
35
|
+
{
|
|
36
|
+
type: 'warning',
|
|
37
|
+
message: `Your site uses Webpack and Babel through ${logger_1.default.code('siteConfig.webpack')}. This is deprecated: Docusaurus now uses Rspack by default, and Webpack/Babel support will be removed in Docusaurus v5. Please remove ${logger_1.default.code('siteConfig.webpack')} to use Rspack.`,
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
return [];
|
|
42
|
+
};
|
|
31
43
|
async function collectAllSiteMessages(params) {
|
|
32
|
-
const messageCreators = [
|
|
44
|
+
const messageCreators = [
|
|
45
|
+
uselessBabelConfigMessages,
|
|
46
|
+
webpackDeprecationMessages,
|
|
47
|
+
];
|
|
33
48
|
return (await Promise.all(messageCreators.map((createMessages) => createMessages(params)))).flat();
|
|
34
49
|
}
|
|
35
50
|
function printSiteMessages(siteMessages) {
|
package/lib/webpack/base.js
CHANGED
|
@@ -86,7 +86,7 @@ async function createBaseConfig({ props, isServer, minify, configureWebpackUtils
|
|
|
86
86
|
return disabledPersistentCacheValue;
|
|
87
87
|
}
|
|
88
88
|
if (props.currentBundler.name === 'rspack') {
|
|
89
|
-
|
|
89
|
+
const rspackCache = {
|
|
90
90
|
type: 'persistent',
|
|
91
91
|
// Rspack doesn't have "cache.name" like Webpack
|
|
92
92
|
// This is not ideal but work around is to merge name/version
|
|
@@ -94,6 +94,8 @@ async function createBaseConfig({ props, isServer, minify, configureWebpackUtils
|
|
|
94
94
|
version: `${getCacheName()}-${getCacheVersion()}`,
|
|
95
95
|
buildDependencies: getCacheBuildDependencies(),
|
|
96
96
|
};
|
|
97
|
+
// Docusaurus bundler configs are typed with Webpack types
|
|
98
|
+
return rspackCache;
|
|
97
99
|
}
|
|
98
100
|
return {
|
|
99
101
|
type: 'filesystem',
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/core",
|
|
3
3
|
"description": "Easy to Maintain Open Source Documentation Websites",
|
|
4
|
-
"version": "4.0.0-canary-
|
|
4
|
+
"version": "4.0.0-canary-6907",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -33,15 +33,17 @@
|
|
|
33
33
|
"url": "https://github.com/facebook/docusaurus/issues"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@docusaurus/babel": "4.0.0-canary-
|
|
37
|
-
"@docusaurus/bundler": "4.0.0-canary-
|
|
38
|
-
"@docusaurus/fs": "4.0.0-canary-
|
|
39
|
-
"@docusaurus/glob": "4.0.0-canary-
|
|
40
|
-
"@docusaurus/logger": "4.0.0-canary-
|
|
41
|
-
"@docusaurus/mdx-loader": "4.0.0-canary-
|
|
42
|
-
"@docusaurus/utils": "4.0.0-canary-
|
|
43
|
-
"@docusaurus/utils-common": "4.0.0-canary-
|
|
44
|
-
"@docusaurus/utils-validation": "4.0.0-canary-
|
|
36
|
+
"@docusaurus/babel": "4.0.0-canary-6907",
|
|
37
|
+
"@docusaurus/bundler": "4.0.0-canary-6907",
|
|
38
|
+
"@docusaurus/fs": "4.0.0-canary-6907",
|
|
39
|
+
"@docusaurus/glob": "4.0.0-canary-6907",
|
|
40
|
+
"@docusaurus/logger": "4.0.0-canary-6907",
|
|
41
|
+
"@docusaurus/mdx-loader": "4.0.0-canary-6907",
|
|
42
|
+
"@docusaurus/utils": "4.0.0-canary-6907",
|
|
43
|
+
"@docusaurus/utils-common": "4.0.0-canary-6907",
|
|
44
|
+
"@docusaurus/utils-validation": "4.0.0-canary-6907",
|
|
45
|
+
"@rspack/core": "^2.2.3",
|
|
46
|
+
"@rspack/dev-server": "^2.2.1",
|
|
45
47
|
"boxen": "^9.0.0",
|
|
46
48
|
"cli-table3": "^0.6.5",
|
|
47
49
|
"combine-promises": "^1.2.0",
|
|
@@ -72,8 +74,8 @@
|
|
|
72
74
|
"webpack-merge": "^6.0.1"
|
|
73
75
|
},
|
|
74
76
|
"devDependencies": {
|
|
75
|
-
"@docusaurus/module-type-aliases": "4.0.0-canary-
|
|
76
|
-
"@docusaurus/types": "4.0.0-canary-
|
|
77
|
+
"@docusaurus/module-type-aliases": "4.0.0-canary-6907",
|
|
78
|
+
"@docusaurus/types": "4.0.0-canary-6907",
|
|
77
79
|
"@total-typescript/shoehorn": "^0.1.2",
|
|
78
80
|
"@types/escape-html": "^1.0.4",
|
|
79
81
|
"@types/history": "^4.7.11",
|
|
@@ -94,5 +96,5 @@
|
|
|
94
96
|
"engines": {
|
|
95
97
|
"node": ">=24.21"
|
|
96
98
|
},
|
|
97
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "cef1eb4729aa96d4153a6079ef160d74fe1db32a"
|
|
98
100
|
}
|