@modern-js/builder 2.28.0 → 2.30.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # @modern-js/builder
2
2
 
3
+ ## 2.30.0
4
+
5
+ ### Patch Changes
6
+
7
+ - e6ae836: feat(builder): support performance preload & prefetch configurations
8
+
9
+ feat(builder): 支持 performance preload 和 prefetch 配置项
10
+
11
+ - Updated dependencies [cc5f49e]
12
+ - Updated dependencies [f74064c]
13
+ - Updated dependencies [e6ae836]
14
+ - Updated dependencies [7cb7b24]
15
+ - Updated dependencies [e94ad94]
16
+ - @modern-js/builder-shared@2.30.0
17
+ - @modern-js/utils@2.30.0
18
+ - @modern-js/monorepo-utils@2.30.0
19
+
20
+ ## 2.29.0
21
+
22
+ ### Patch Changes
23
+
24
+ - 1171338: fix(app-tools): tools.tsChecker default value mismatch with doc
25
+
26
+ fix(app-tools): tools.tsChecker 默认值与文档不匹配
27
+
28
+ - 2ad31da: feat(builder): support performance preconnect/dnsPrefetch configurations
29
+
30
+ feat(builder): 支持 performance preconnect/dnsPrefetch 配置项
31
+
32
+ - Updated dependencies [e6b5355]
33
+ - Updated dependencies [93db783]
34
+ - Updated dependencies [bd4c354]
35
+ - Updated dependencies [ee59d06]
36
+ - Updated dependencies [cba7675]
37
+ - Updated dependencies [99052ea]
38
+ - Updated dependencies [d198779]
39
+ - Updated dependencies [1d71d2e]
40
+ - @modern-js/utils@2.29.0
41
+ - @modern-js/builder-shared@2.29.0
42
+ - @modern-js/monorepo-utils@2.29.0
43
+
3
44
  ## 2.28.0
4
45
 
5
46
  ### Minor Changes
@@ -40,5 +40,7 @@ const plugins = {
40
40
  externals: () => Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("./externals"))).then((m) => m.builderPluginExternals()),
41
41
  sourceBuild: () => Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("./sourceBuild"))).then((m) => m.builderPluginSourceBuild({
42
42
  sourceField: "source"
43
- }))
43
+ })),
44
+ networkPerformance: () => Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("./networkPerformance"))).then((m) => m.builderPluginNetworkPerformance()),
45
+ preloadOrPrefetch: () => Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("./preloadOrPrefetch"))).then((m) => m.builderPluginPreloadOrPrefetch())
44
46
  };
@@ -0,0 +1,2 @@
1
+ import { type DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
+ export declare const builderPluginNetworkPerformance: () => DefaultBuilderPlugin;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "builderPluginNetworkPerformance", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return builderPluginNetworkPerformance;
9
+ }
10
+ });
11
+ const _buildershared = require("@modern-js/builder-shared");
12
+ const builderPluginNetworkPerformance = () => ({
13
+ name: `builder-plugin-network-performance`,
14
+ setup(api) {
15
+ api.modifyBundlerChain(async (chain, { CHAIN_ID, isServer, isWebWorker, isServiceWorker, HtmlPlugin }) => {
16
+ const config = api.getNormalizedConfig();
17
+ const { performance: { dnsPrefetch, preconnect } } = config;
18
+ if (isServer || isWebWorker || isServiceWorker) {
19
+ return;
20
+ }
21
+ if (dnsPrefetch) {
22
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_DNS_PREFETCH).use(_buildershared.HtmlNetworkPerformancePlugin, [
23
+ dnsPrefetch,
24
+ "dnsPrefetch",
25
+ HtmlPlugin
26
+ ]);
27
+ }
28
+ if (preconnect) {
29
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_PRECONNECT).use(_buildershared.HtmlNetworkPerformancePlugin, [
30
+ preconnect,
31
+ "preconnect",
32
+ HtmlPlugin
33
+ ]);
34
+ }
35
+ });
36
+ }
37
+ });
@@ -0,0 +1,2 @@
1
+ import { type DefaultBuilderPlugin } from '@modern-js/builder-shared';
2
+ export declare const builderPluginPreloadOrPrefetch: () => DefaultBuilderPlugin;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "builderPluginPreloadOrPrefetch", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return builderPluginPreloadOrPrefetch;
9
+ }
10
+ });
11
+ const _buildershared = require("@modern-js/builder-shared");
12
+ const builderPluginPreloadOrPrefetch = () => ({
13
+ name: `builder-plugin-preload-or-prefetch`,
14
+ setup(api) {
15
+ api.modifyBundlerChain(async (chain, { CHAIN_ID, isServer, isWebWorker, isServiceWorker, HtmlPlugin }) => {
16
+ const config = api.getNormalizedConfig();
17
+ const { performance: { preload, prefetch } } = config;
18
+ if (isServer || isWebWorker || isServiceWorker) {
19
+ return;
20
+ }
21
+ const HTMLCount = chain.entryPoints.values().length;
22
+ if (prefetch) {
23
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_PREFETCH).use(_buildershared.HTMLPreloadOrPrefetchPlugin, [
24
+ prefetch,
25
+ "prefetch",
26
+ HtmlPlugin,
27
+ HTMLCount
28
+ ]);
29
+ }
30
+ if (preload) {
31
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_PRELOAD).use(_buildershared.HTMLPreloadOrPrefetchPlugin, [
32
+ preload,
33
+ "preload",
34
+ HtmlPlugin,
35
+ HTMLCount
36
+ ]);
37
+ }
38
+ });
39
+ }
40
+ });
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "builderPluginTsChecker", {
9
9
  }
10
10
  });
11
11
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
+ const _lodash = require("@modern-js/utils/lodash");
12
13
  const builderPluginTsChecker = () => {
13
14
  return {
14
15
  name: "builder-plugin-ts-checker",
@@ -69,7 +70,7 @@ const builderPluginTsChecker = () => {
69
70
  console.error(message.replace(/ERROR/g, "Type Error"));
70
71
  }
71
72
  }
72
- }, typeof config.tools.tsChecker === "object" ? config.tools.tsChecker : {});
73
+ }, config.tools.tsChecker, void 0, _lodash.merge);
73
74
  if (api.context.bundlerType === "rspack" && chain.get("mode") === "production") {
74
75
  logger.info("ts-checker running...");
75
76
  logger.info("ts-checker is running slowly and will block builds until it is complete, please be patient and wait.");
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  "engines": {
19
19
  "node": ">=14.0.0"
20
20
  },
21
- "version": "2.28.0",
21
+ "version": "2.30.0",
22
22
  "jsnext:source": "./src/index.ts",
23
23
  "types": "./dist/index.d.ts",
24
24
  "main": "./dist/index.js",
@@ -32,18 +32,18 @@
32
32
  "dependencies": {
33
33
  "@svgr/webpack": "8.0.1",
34
34
  "@swc/helpers": "0.5.1",
35
- "@modern-js/builder-shared": "2.28.0",
36
- "@modern-js/monorepo-utils": "2.28.0",
37
- "@modern-js/utils": "2.28.0"
35
+ "@modern-js/builder-shared": "2.30.0",
36
+ "@modern-js/monorepo-utils": "2.30.0",
37
+ "@modern-js/utils": "2.30.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/babel__core": "^7.20.0",
41
41
  "@types/node": "^14",
42
42
  "typescript": "^5",
43
- "@modern-js/builder-webpack-provider": "2.28.0",
44
- "@modern-js/builder-rspack-provider": "2.28.0",
45
- "@scripts/build": "2.28.0",
46
- "@scripts/vitest-config": "2.28.0"
43
+ "@modern-js/builder-webpack-provider": "2.30.0",
44
+ "@modern-js/builder-rspack-provider": "2.30.0",
45
+ "@scripts/build": "2.30.0",
46
+ "@scripts/vitest-config": "2.30.0"
47
47
  },
48
48
  "publishConfig": {
49
49
  "registry": "https://registry.npmjs.org/",