@flatjs/evolve 2.1.0-next.12 → 2.1.0-next.13
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/compiler/create-global-compiler.d.ts +2 -0
- package/dist/compiler/create-global-compiler.js +1 -0
- package/dist/constants.js +1 -36
- package/dist/create-webpack/create-externals.js +1 -6
- package/dist/create-webpack/create-optimization.js +1 -43
- package/dist/create-webpack/create-output.js +1 -35
- package/dist/create-webpack/create-performance.js +1 -7
- package/dist/create-webpack/create-plugins.js +1 -78
- package/dist/create-webpack/create-resolve.js +1 -37
- package/dist/create-webpack/create-rule-sets.js +1 -20
- package/dist/create-webpack/load-watch-options.d.ts +12 -0
- package/dist/create-webpack/load-watch-options.js +1 -0
- package/dist/create-webpack/load-webpack-config.js +1 -57
- package/dist/create-webpack/resolve-public-path.js +1 -15
- package/dist/create-webpack/rule-sets/constants.js +1 -3
- package/dist/create-webpack/rule-sets/rule-assets.js +1 -52
- package/dist/create-webpack/rule-sets/rule-css.js +1 -111
- package/dist/create-webpack/rule-sets/rule-less.js +1 -44
- package/dist/create-webpack/rule-sets/rule-scripts.d.ts +2 -0
- package/dist/create-webpack/rule-sets/rule-scripts.js +1 -34
- package/dist/create-webpack/rule-sets/rule-svg-icon.js +1 -25
- package/dist/create-webpack/rule-sets/rule-utils.js +1 -10
- package/dist/create-webpack/types.d.ts +1 -1
- package/dist/create-webpack/types.js +1 -1
- package/dist/default-options.js +1 -83
- package/dist/define-config/define-config.d.ts +2 -2
- package/dist/define-config/define-config.js +1 -4
- package/dist/define-config/index.js +1 -1
- package/dist/dev-server/add-compiler-to-dev-server.js +1 -58
- package/dist/dev-server/create-app-page-route.js +1 -13
- package/dist/dev-server/create-dev-server-compiler-task.js +1 -55
- package/dist/dev-server/create-dev-server-entries.js +1 -25
- package/dist/dev-server/create-dev-server.js +1 -24
- package/dist/dev-server/index.d.ts +3 -3
- package/dist/dev-server/index.js +1 -6
- package/dist/dev-server/middlewares/create-page-middleware.js +1 -33
- package/dist/dev-server/middlewares/create-public-assets-middleware.js +1 -25
- package/dist/dev-server/middlewares/get-all-sorted-modules.js +1 -24
- package/dist/dev-server/middlewares/get-bundle-asset.js +1 -7
- package/dist/dev-server/middlewares/get-dev-server-host-uri.js +1 -5
- package/dist/dev-server/middlewares/get-hmr-runtime-chunks.js +1 -14
- package/dist/dev-server/middlewares/get-normalized-entry-name.js +1 -14
- package/dist/dev-server/middlewares/get-page-main-html.js +1 -49
- package/dist/dev-server/middlewares/get-page-module-html.js +1 -123
- package/dist/dev-server/middlewares/get-project-virtual-path.js +1 -3
- package/dist/dev-server/middlewares/get-runtime-manifest.js +1 -25
- package/dist/dev-server/middlewares/index.js +1 -2
- package/dist/dev-server/middlewares/types.js +1 -1
- package/dist/errors/evolve-build-error.js +1 -10
- package/dist/helpers/allow-px2rem-for-module.js +1 -6
- package/dist/helpers/assert-group-entry-item.js +1 -19
- package/dist/helpers/assert-single-compiler.js +1 -45
- package/dist/helpers/chunk-entry-map.js +1 -21
- package/dist/helpers/delete-object-keys.js +1 -20
- package/dist/helpers/enable-bundle-hashname-for-module.js +1 -6
- package/dist/helpers/filter-actived-entries.js +1 -42
- package/dist/helpers/flat-entry-map.js +1 -11
- package/dist/helpers/get-bundle-file-name.js +1 -23
- package/dist/helpers/get-git-root.js +1 -4
- package/dist/helpers/get-html-plugin-config.js +1 -47
- package/dist/helpers/get-max-process-tasks.js +1 -7
- package/dist/helpers/get-pacakge-dir.js +1 -13
- package/dist/helpers/get-runtime-cdn-base.d.ts +1 -1
- package/dist/helpers/get-runtime-cdn-base.js +1 -21
- package/dist/helpers/index.d.ts +11 -11
- package/dist/helpers/index.js +1 -27
- package/dist/helpers/is-deep-equal.js +1 -67
- package/dist/helpers/json-serializer.js +1 -52
- package/dist/helpers/merge-babel-options.js +1 -45
- package/dist/helpers/normalize-check-entry-options.js +1 -28
- package/dist/helpers/normalize-entry-map.js +1 -59
- package/dist/helpers/normalize-group-name.js +1 -16
- package/dist/helpers/normalize-page-proxy.js +1 -9
- package/dist/helpers/normalize-resolve-alias.js +1 -7
- package/dist/helpers/normalize-template-inject-tokens.js +1 -22
- package/dist/helpers/open-page.js +1 -15
- package/dist/helpers/print-log.js +1 -49
- package/dist/helpers/refresh-evolve-mock-options.js +1 -34
- package/dist/helpers/resolve-entry-map-input-files.js +1 -20
- package/dist/helpers/script-injects.d.ts +1 -1
- package/dist/helpers/script-injects.js +1 -39
- package/dist/helpers/should-enable-react-fast-refresh.js +1 -14
- package/dist/helpers/split-to-entry-group.d.ts +1 -1
- package/dist/helpers/split-to-entry-group.js +1 -139
- package/dist/helpers/verify-group-entry-options.js +1 -21
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -5
- package/dist/load-config/index.js +1 -1
- package/dist/load-config/load-evolve-config.js +1 -41
- package/dist/load-config/types.js +1 -1
- package/dist/loaders/loader-icon.cjs +2 -1
- package/dist/main/create-thread-worker.js +1 -51
- package/dist/main/env-verify.js +1 -21
- package/dist/main/get-worker-path.js +1 -5
- package/dist/main/index.d.ts +1 -1
- package/dist/main/index.js +1 -4
- package/dist/main/prepare-build.js +1 -39
- package/dist/main/prepare-serve.js +1 -69
- package/dist/main/prepare-static.js +1 -30
- package/dist/main/start-build-dynamic.js +1 -171
- package/dist/main/start-build-worker.js +1 -44
- package/dist/main/start-build.js +1 -69
- package/dist/main/start-group-entry-build.d.ts +1 -1
- package/dist/main/start-group-entry-build.js +1 -32
- package/dist/main/start-serve.js +1 -34
- package/dist/main/start-static.js +1 -19
- package/dist/minimizer/create-minimizers.js +1 -25
- package/dist/minimizer/default-options.js +1 -14
- package/dist/minimizer/image-minimizer.js +1 -65
- package/dist/minimizer/index.js +1 -1
- package/dist/minimizer/terser-minimizer.js +3 -15
- package/dist/minimizer/types.js +1 -1
- package/dist/plugins/circular-dependency/circular-dependency-plugin.js +1 -119
- package/dist/plugins/circular-dependency/index.js +1 -15
- package/dist/plugins/clean-webpack/clean-webpack-plugin.js +1 -173
- package/dist/plugins/clean-webpack/index.js +1 -22
- package/dist/plugins/define-variable/define-variable-plugin.js +1 -28
- package/dist/plugins/define-variable/index.js +1 -1
- package/dist/plugins/html-inject-scripts/plugin-html-inject-script.js +1 -27
- package/dist/plugins/module-federation/external-template-remotes.js +1 -92
- package/dist/plugins/module-federation/index.js +1 -1
- package/dist/plugins/module-federation/module-federation.js +1 -100
- package/dist/plugins/multi-html/index.js +1 -16
- package/dist/plugins/multi-html/multi-html-cdn-plugin.js +1 -83
- package/dist/plugins/multi-html/multi-html-plugin.js +1 -65
- package/dist/plugins/ts-checker/ts-checker-guard-plugin.d.ts +13 -0
- package/dist/plugins/ts-checker/ts-checker-guard-plugin.js +1 -0
- package/dist/plugins/ts-checker/ts-checker-plugin.d.ts +1 -2
- package/dist/plugins/ts-checker/ts-checker-plugin.js +1 -24
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +1 -8
- package/dist/types/types-ci.js +1 -1
- package/dist/types/types-dev-server.d.ts +5 -6
- package/dist/types/types-dev-server.js +1 -1
- package/dist/types/types-entry-map.js +1 -1
- package/dist/types/types-federation.js +1 -1
- package/dist/types/types-global-compiler-options.d.ts +7 -0
- package/dist/types/types-global-compiler-options.js +1 -0
- package/dist/types/types-loader-options.d.ts +2 -7
- package/dist/types/types-loader-options.js +1 -1
- package/dist/types/types-modular-import.js +1 -1
- package/dist/types/types-multi-html.js +1 -1
- package/dist/types/types-options.d.ts +6 -1
- package/dist/types/types-options.js +1 -1
- package/dist/types/types-plugin-options.js +1 -1
- package/dist/types/types-threads-options.js +1 -1
- package/dist/types/types-webpack.d.ts +1 -1
- package/dist/types/types-webpack.js +1 -1
- package/package.json +30 -32
- package/dist/plugins/ts-checker/index.d.ts +0 -1
- package/dist/plugins/ts-checker/index.js +0 -1
|
@@ -1,83 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import HtmlWebpackPlugin from 'html-webpack-plugin';
|
|
3
|
-
import webpack from 'webpack';
|
|
4
|
-
import { getRuntimeCDNBase } from '../../helpers/get-runtime-cdn-base.js';
|
|
5
|
-
import { findEnvCdn, httpUrlJoin } from '../../helpers/script-injects.js';
|
|
6
|
-
export class FlatEvolveMultiCdnPlugin {
|
|
7
|
-
constructor(evolveOptions) {
|
|
8
|
-
this.pluginName = 'FlatEvolveMultiCdnPlugin';
|
|
9
|
-
// https://github.com/webpack/webpack/blob/3d653290fafe385277b48e5a36807124618b9561/lib/MainTemplate.js#L12
|
|
10
|
-
// the bundle public path RuntimeGlobals.publicPath: '__webpack_require__.p';
|
|
11
|
-
this.requireFn = webpack.RuntimeGlobals.publicPath;
|
|
12
|
-
this.config = evolveOptions.multiHtmlCdn;
|
|
13
|
-
this.cdnResolver =
|
|
14
|
-
evolveOptions.multiHtmlCdnEnvResolver ||
|
|
15
|
-
function cdnResolver() {
|
|
16
|
-
return undefined;
|
|
17
|
-
};
|
|
18
|
-
// Make sure we have `prod` configuration for each cdn node at least.
|
|
19
|
-
if (!this.config?.prod) {
|
|
20
|
-
throw new Error('We must setup `prod` for each CDN config node!');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Apply the plugin to check if there are non initial chunks which need to be imported using `require-ensure` or `import`
|
|
25
|
-
* https://github.com/webpack/webpack/blob/3d653290fafe385277b48e5a36807124618b9561/lib/MainTemplate.js#L158
|
|
26
|
-
* https://www.npmjs.com/package/vscode-webpack-debugger
|
|
27
|
-
* https://www.cnblogs.com/Scar007/p/9166068.html
|
|
28
|
-
* https://www.cnblogs.com/pluslius/p/10271537.html
|
|
29
|
-
*/
|
|
30
|
-
apply(compiler) {
|
|
31
|
-
// Handle chunk assets while `Compilation:before-chunk-assets`
|
|
32
|
-
// https://github.com/webpack/webpack/blob/3d653290fafe385277b48e5a36807124618b9561/lib/MainTemplate.js#L58
|
|
33
|
-
compiler.hooks.thisCompilation.tap(this.pluginName, (compilation) => {
|
|
34
|
-
compilation.mainTemplate.hooks.requireExtensions.tap(this.pluginName, (_source, chunk) => {
|
|
35
|
-
const buf = [];
|
|
36
|
-
buf.push('// Dynamic assets path override(`@flatjs/evolve`) plugin-multi-html-cdn`)');
|
|
37
|
-
const runtimeRequirements = compilation.chunkGraph?.getTreeRuntimeRequirements(chunk);
|
|
38
|
-
if (runtimeRequirements &&
|
|
39
|
-
runtimeRequirements.has(webpack.RuntimeGlobals.requireScope)) {
|
|
40
|
-
buf.push(webpack.Template.indent(getRuntimeCDNBase(this.config, this.cdnResolver, this.requireFn)));
|
|
41
|
-
}
|
|
42
|
-
return webpack.Template.asString(buf);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
// Using html webpack plugin hooks to replace `scripts` `styles` before inject to html temlate file.
|
|
46
|
-
compiler.hooks.compilation.tap(this.pluginName, (compilation) => {
|
|
47
|
-
HtmlWebpackPlugin.getHooks(compilation).beforeAssetTagGeneration.tap(this.pluginName, (data) => {
|
|
48
|
-
const { assets, plugin, outputName } = data;
|
|
49
|
-
const chunks = plugin?.options?.chunks || [];
|
|
50
|
-
const currentChunk = Array.isArray(chunks)
|
|
51
|
-
? chunks.find((chunk) => outputName.includes(chunk))
|
|
52
|
-
: chunks;
|
|
53
|
-
const { userOptions } = data.plugin;
|
|
54
|
-
if (!currentChunk) {
|
|
55
|
-
throw new Error('We must have current chunk!');
|
|
56
|
-
}
|
|
57
|
-
const assertJsList = assets.js.filter((jsPath) => jsPath.includes(currentChunk));
|
|
58
|
-
const assertCssList = assets.css.filter((jsPath) => jsPath.includes(currentChunk));
|
|
59
|
-
const multiCdn = userOptions.multiCdn;
|
|
60
|
-
const publicPath = assets.publicPath;
|
|
61
|
-
const scripts = assertJsList.map((scriptItem) => {
|
|
62
|
-
// Normally for `index-dev.html` we need to use relative path.
|
|
63
|
-
if (multiCdn.disabled) {
|
|
64
|
-
return basename(scriptItem);
|
|
65
|
-
}
|
|
66
|
-
const randomCdn = findEnvCdn(this.config, multiCdn.env);
|
|
67
|
-
return httpUrlJoin(randomCdn, scriptItem.replace(publicPath, ''));
|
|
68
|
-
});
|
|
69
|
-
const styles = assertCssList.map((styleItem) => {
|
|
70
|
-
// Normally for `index-dev.html` we need to use relative path.
|
|
71
|
-
if (multiCdn.disabled) {
|
|
72
|
-
return basename(styleItem);
|
|
73
|
-
}
|
|
74
|
-
const randomCdn = findEnvCdn(this.config, multiCdn.env);
|
|
75
|
-
return httpUrlJoin(randomCdn, styleItem.replace(publicPath, ''));
|
|
76
|
-
});
|
|
77
|
-
data.assets.js = scripts;
|
|
78
|
-
data.assets.css = styles;
|
|
79
|
-
return data;
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
1
|
+
import HtmlWebpackPlugin from"html-webpack-plugin";import{basename}from"node:path";import webpack from"webpack";import{getRuntimeCDNBase}from"../../helpers/get-runtime-cdn-base.js";import{findEnvCdn,httpUrlJoin}from"../../helpers/script-injects.js";export class FlatEvolveMultiCdnPlugin{constructor(e){if(this.pluginName="FlatEvolveMultiCdnPlugin",this.requireFn=webpack.RuntimeGlobals.publicPath,this.config=e.multiHtmlCdn,this.cdnResolver=e.multiHtmlCdnEnvResolver||function cdnResolver(){},!this.config?.prod)throw new Error("We must setup `prod` for each CDN config node!")}apply(e){e.hooks.thisCompilation.tap(this.pluginName,(e=>{e.mainTemplate.hooks.requireExtensions.tap(this.pluginName,((t,n)=>{const i=[];i.push("// Dynamic assets path override(`@flatjs/evolve`) plugin-multi-html-cdn`)");const s=e.chunkGraph?.getTreeRuntimeRequirements(n);return s&&s.has(webpack.RuntimeGlobals.requireScope)&&i.push(webpack.Template.indent(getRuntimeCDNBase(this.config,this.cdnResolver,this.requireFn))),webpack.Template.asString(i)}))})),e.hooks.compilation.tap(this.pluginName,(e=>{HtmlWebpackPlugin.getHooks(e).beforeAssetTagGeneration.tap(this.pluginName,(e=>{const{assets:t,plugin:n,outputName:i}=e,s=n?.options?.chunks||[],r=Array.isArray(s)?s.find((e=>i.includes(e))):s,{userOptions:o}=e.plugin;if(!r)throw new Error("We must have current chunk!");const a=t.js.filter((e=>e.includes(r))),l=t.css.filter((e=>e.includes(r))),p=o.multiCdn,u=t.publicPath,c=a.map((e=>{if(p.disabled)return basename(e);const t=findEnvCdn(this.config,p.env);return httpUrlJoin(t,e.replace(u,""))})),m=l.map((e=>{if(p.disabled)return basename(e);const t=findEnvCdn(this.config,p.env);return httpUrlJoin(t,e.replace(u,""))}));return e.assets.js=c,e.assets.css=m,e}))}))}}
|
|
@@ -1,65 +1 @@
|
|
|
1
|
-
import HtmlWebpackPlugin from
|
|
2
|
-
import { allowPx2remForModule } from '../../helpers/allow-px2rem-for-module.js';
|
|
3
|
-
import { getHtmlPluginConfig, } from '../../helpers/get-html-plugin-config.js';
|
|
4
|
-
import { normalizeTemplateInjectTokens } from '../../helpers/normalize-template-inject-tokens.js';
|
|
5
|
-
import { findEnvCdn } from '../../helpers/script-injects.js';
|
|
6
|
-
const minifyOpts = {
|
|
7
|
-
minifyJS: true,
|
|
8
|
-
removeComments: true,
|
|
9
|
-
collapseWhitespace: true,
|
|
10
|
-
collapseBooleanAttributes: false,
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Create `html-webpack-plugin` for this build, refer to best practices
|
|
14
|
-
* We'd better pass only one entry for each `build` cycle
|
|
15
|
-
* @param buildEntryItem the entries for this `build`
|
|
16
|
-
* @param allEnv
|
|
17
|
-
*/
|
|
18
|
-
export const createMultiHtmlWebpackPlugin = (serveMode, evolveOptions, entryMapItemList, allEnv) => {
|
|
19
|
-
const firstEntryMap = entryMapItemList[0];
|
|
20
|
-
const [, entryConfig] = firstEntryMap;
|
|
21
|
-
const htmlPlugins = [];
|
|
22
|
-
const { options } = entryConfig;
|
|
23
|
-
const mode = serveMode ? 'development' : 'production';
|
|
24
|
-
const chunks = entryMapItemList.map((entryMap) => entryMap[0]);
|
|
25
|
-
for (const env of allEnv) {
|
|
26
|
-
const envCdn = findEnvCdn(evolveOptions.multiHtmlCdn, env);
|
|
27
|
-
const configData = {
|
|
28
|
-
mode,
|
|
29
|
-
envCdn,
|
|
30
|
-
};
|
|
31
|
-
const templateInjectTokens = normalizeTemplateInjectTokens(configData, options);
|
|
32
|
-
htmlPlugins.push(new HtmlWebpackPlugin({
|
|
33
|
-
inject: 'body',
|
|
34
|
-
title: getHtmlPluginConfig('title', configData, options?.title),
|
|
35
|
-
chunks: chunks,
|
|
36
|
-
// `minify` is true, `dev` always don't minify.
|
|
37
|
-
minify: options?.htmlMinify === false || ['me', 'dev'].includes(env)
|
|
38
|
-
? false
|
|
39
|
-
: minifyOpts,
|
|
40
|
-
// output file path
|
|
41
|
-
filename: (entryName) => `${entryName}/index${env === 'prod' ? '' : `-${env}`}.html`,
|
|
42
|
-
// html template
|
|
43
|
-
template: getHtmlPluginConfig('templatePath', configData, options?.templatePath).replace(`{0}`, env),
|
|
44
|
-
// template parameters
|
|
45
|
-
templateParameters: {
|
|
46
|
-
// The page title
|
|
47
|
-
title: getHtmlPluginConfig('title', configData, options?.title),
|
|
48
|
-
// The page favicon
|
|
49
|
-
favicon: getHtmlPluginConfig('favicon', configData, options?.favicon),
|
|
50
|
-
// `allowPx2rem` default is true
|
|
51
|
-
viewport: allowPx2remForModule(firstEntryMap, evolveOptions)
|
|
52
|
-
? getHtmlPluginConfig('viewport', configData, options?.viewport)
|
|
53
|
-
: '',
|
|
54
|
-
...templateInjectTokens,
|
|
55
|
-
},
|
|
56
|
-
// Some options for plugin used the `hook` of `html-webpack-plugin`
|
|
57
|
-
multiCdn: {
|
|
58
|
-
env,
|
|
59
|
-
// use relative path for `me`, `dev`, `ntv`
|
|
60
|
-
disabled: (options?.excludeCdnEnvs || ['me', 'dev', 'ntv']).includes(env),
|
|
61
|
-
},
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
return htmlPlugins;
|
|
65
|
-
};
|
|
1
|
+
import HtmlWebpackPlugin from"html-webpack-plugin";import{allowPx2remForModule}from"../../helpers/allow-px2rem-for-module.js";import{getHtmlPluginConfig}from"../../helpers/get-html-plugin-config.js";import{normalizeTemplateInjectTokens}from"../../helpers/normalize-template-inject-tokens.js";import{findEnvCdn}from"../../helpers/script-injects.js";const minifyOpts={minifyJS:!0,removeComments:!0,collapseWhitespace:!0,collapseBooleanAttributes:!1};export const createMultiHtmlWebpackPlugin=(e,t,l,n)=>{const i=l[0],[,o]=i,m=[],{options:p}=o,r=e?"development":"production",a=l.map((e=>e[0]));for(const e of n){const l={mode:r,envCdn:findEnvCdn(t.multiHtmlCdn,e)},n=normalizeTemplateInjectTokens(l,p);m.push(new HtmlWebpackPlugin({inject:"body",title:getHtmlPluginConfig("title",l,p?.title),chunks:a,minify:!1!==p?.htmlMinify&&!["me","dev"].includes(e)&&minifyOpts,filename:t=>`${t}/index${"prod"===e?"":`-${e}`}.html`,template:getHtmlPluginConfig("templatePath",l,p?.templatePath).replace("{0}",e),templateParameters:{title:getHtmlPluginConfig("title",l,p?.title),favicon:getHtmlPluginConfig("favicon",l,p?.favicon),viewport:allowPx2remForModule(i,t)?getHtmlPluginConfig("viewport",l,p?.viewport):"",...n},multiCdn:{env:e,disabled:(p?.excludeCdnEnvs||["me","dev","ntv"]).includes(e)}}))}return m};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Compiler } from 'webpack';
|
|
2
|
+
export interface TsCheckerGuardPluginOption {
|
|
3
|
+
/**
|
|
4
|
+
* Whether to exit the process when issues is not empty
|
|
5
|
+
* @default false
|
|
6
|
+
*/
|
|
7
|
+
autoExit?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class TsCheckerGuardPlugin {
|
|
10
|
+
private options;
|
|
11
|
+
constructor(option?: TsCheckerGuardPluginOption);
|
|
12
|
+
apply(compiler: Compiler): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import ForkTsCheckerWebpackPlugin from"fork-ts-checker-webpack-plugin";import{mergeOptions}from"@flatjs/common";export class TsCheckerGuardPlugin{constructor(r={}){this.options=mergeOptions({autoExit:!1},r)}apply(r){ForkTsCheckerWebpackPlugin.getCompilerHooks(r).issues.tap("issues",(r=>{const{autoExit:e}=this.options,o=r.filter((r=>"error"===r.severity));if(e&&o?.length>0)throw new Error(`TS_CHECKER_ERROR: \n ${JSON.stringify(o,null,2)}`);return r}))}}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { type WebpackPlugin } from '../../create-webpack/types.js';
|
|
2
|
-
import { type EntryMapItem } from '../../types/types-entry-map.js';
|
|
3
2
|
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
|
4
|
-
export declare const createTsCheckerPlugins: (serveMode: boolean,
|
|
3
|
+
export declare const createTsCheckerPlugins: (serveMode: boolean, evolveOptions: FlatEvolveOptions) => WebpackPlugin[];
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
import ForkTsCheckerWebpackPlugin from
|
|
2
|
-
export const createTsCheckerPlugins = (serveMode, entryMapItemList, evolveOptions) => {
|
|
3
|
-
const plugins = [];
|
|
4
|
-
let isVueEntryItem = false;
|
|
5
|
-
for (const [, entryMapItem] of entryMapItemList) {
|
|
6
|
-
const itemEntries = entryMapItem.entry || [];
|
|
7
|
-
if (itemEntries.find((s) => /.vue$/.test(s))) {
|
|
8
|
-
isVueEntryItem = true;
|
|
9
|
-
break;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
// Runs typescript type checker and linter on separate process.
|
|
13
|
-
if (evolveOptions.loaderOptions.runTsChecker && !isVueEntryItem) {
|
|
14
|
-
plugins.push(new ForkTsCheckerWebpackPlugin({
|
|
15
|
-
async: serveMode,
|
|
16
|
-
issue: {},
|
|
17
|
-
typescript: {
|
|
18
|
-
context: evolveOptions.projectCwd,
|
|
19
|
-
memoryLimit: 2048 * 4,
|
|
20
|
-
},
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
23
|
-
return plugins;
|
|
24
|
-
};
|
|
1
|
+
import ForkTsCheckerWebpackPlugin from"fork-ts-checker-webpack-plugin";import{TsCheckerGuardPlugin}from"./ts-checker-guard-plugin.js";export const createTsCheckerPlugins=(e,r)=>{const{entryMap:t,globalCompilerOptions:c}=r,s=[];let n=!1;for(const[,e]of Object.entries(t)){if((e.entry||[]).find((e=>/.vue$/.test(e)))){n=!0;break}}if(c?.runTsChecker&&!n){const t=new ForkTsCheckerWebpackPlugin({async:e,devServer:!1,issue:{},typescript:{context:r.projectCwd,memoryLimit:8192}});s.push(t),s.push(new TsCheckerGuardPlugin({autoExit:!e}))}return s};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export * from './types-dev-server.js';
|
|
2
2
|
export * from './types-entry-map.js';
|
|
3
3
|
export * from './types-federation.js';
|
|
4
|
+
export * from './types-global-compiler-options.js';
|
|
5
|
+
export * from './types-loader-options.js';
|
|
4
6
|
export * from './types-modular-import.js';
|
|
5
7
|
export * from './types-multi-html.js';
|
|
6
8
|
export * from './types-options.js';
|
|
7
|
-
export * from './types-loader-options.js';
|
|
8
9
|
export * from './types-webpack.js';
|
package/dist/types/index.js
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './types-entry-map.js';
|
|
3
|
-
export * from './types-federation.js';
|
|
4
|
-
export * from './types-modular-import.js';
|
|
5
|
-
export * from './types-multi-html.js';
|
|
6
|
-
export * from './types-options.js';
|
|
7
|
-
export * from './types-loader-options.js';
|
|
8
|
-
export * from './types-webpack.js';
|
|
1
|
+
export*from"./types-dev-server.js";export*from"./types-entry-map.js";export*from"./types-federation.js";export*from"./types-global-compiler-options.js";export*from"./types-loader-options.js";export*from"./types-modular-import.js";export*from"./types-multi-html.js";export*from"./types-options.js";export*from"./types-webpack.js";
|
package/dist/types/types-ci.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type SecureContextHttps, type FlatMockOptions } from '@flatjs/mock';
|
|
2
1
|
import { type RequestHandler } from 'express';
|
|
3
|
-
import { type
|
|
4
|
-
import { type
|
|
2
|
+
import { type ClientConfiguration, type WebSocketURL } from 'webpack-dev-server';
|
|
3
|
+
import { type FlatMockOptions, type SecureContextHttps } from '@flatjs/mock';
|
|
5
4
|
import { type EvolveEntryMapContent } from './types-entry-map.js';
|
|
6
5
|
export interface WebpackWatchOptions {
|
|
7
6
|
/**
|
|
@@ -13,9 +12,9 @@ export interface WebpackWatchOptions {
|
|
|
13
12
|
*/
|
|
14
13
|
followSymlinks?: boolean;
|
|
15
14
|
/**
|
|
16
|
-
* Ignore some files from watching
|
|
15
|
+
* Ignore some files from watching
|
|
17
16
|
*/
|
|
18
|
-
ignored?: string
|
|
17
|
+
ignored?: string[];
|
|
19
18
|
/**
|
|
20
19
|
* Enable polling mode for watching.
|
|
21
20
|
*/
|
|
@@ -36,7 +35,7 @@ export type FlatEvolveDevServerOptions = {
|
|
|
36
35
|
* In webpack-dev-server watch mode is enabled by default.
|
|
37
36
|
* This configuration will be merged into `webpack-dev-server`
|
|
38
37
|
*/
|
|
39
|
-
watchOptions?:
|
|
38
|
+
watchOptions?: WebpackWatchOptions;
|
|
40
39
|
/**
|
|
41
40
|
* Allow us costomized global serve data injected into `window.GLOBAL = {...globalData}`
|
|
42
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type TransformOptions } from '@babel/core';
|
|
2
|
-
import { type PostcssPluginPixelOptions } from '@flatjs/forge-postcss-plugin-pixel';
|
|
3
1
|
import { type AcceptedPlugin } from 'postcss';
|
|
4
2
|
import { type LoaderContext } from 'webpack';
|
|
3
|
+
import { type TransformOptions } from '@babel/core';
|
|
4
|
+
import { type PostcssPluginPixelOptions } from '@flatjs/forge-postcss-plugin-pixel';
|
|
5
5
|
import { type ModularImportOption } from './types-modular-import.js';
|
|
6
6
|
export type BabelInputOptions = Pick<TransformOptions, 'presets' | 'plugins'>;
|
|
7
7
|
/**
|
|
@@ -67,11 +67,6 @@ export interface RuleSetLoaderOptions {
|
|
|
67
67
|
* @default []
|
|
68
68
|
*/
|
|
69
69
|
modularImports?: ModularImportOption[];
|
|
70
|
-
/**
|
|
71
|
-
* The value indicates whether runs typescript type checker and linter on separate process.
|
|
72
|
-
* @default true
|
|
73
|
-
*/
|
|
74
|
-
runTsChecker?: boolean;
|
|
75
70
|
/**
|
|
76
71
|
* The configration options of `postcss-loader`
|
|
77
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -2,8 +2,9 @@ import { type VerifyPackagePattern } from '@armit/package';
|
|
|
2
2
|
import { type FlatEvolveCI } from './types-ci.js';
|
|
3
3
|
import { type FlatEvolveDevServerOptions } from './types-dev-server.js';
|
|
4
4
|
import { type EvolveEntryMap } from './types-entry-map.js';
|
|
5
|
+
import { type GlobalCompilerOptions } from './types-global-compiler-options.js';
|
|
5
6
|
import { type RuleSetLoaderOptions } from './types-loader-options.js';
|
|
6
|
-
import { type
|
|
7
|
+
import { type EvolveMultiCDNConfig, type EvolveMultiCDNEnvResolver } from './types-multi-html.js';
|
|
7
8
|
import { type EvolvePluginOptions } from './types-plugin-options.js';
|
|
8
9
|
import { type ThreadsOptions } from './types-threads-options.js';
|
|
9
10
|
import { type FlatEvolveWebpackOptions } from './types-webpack.js';
|
|
@@ -45,6 +46,10 @@ export interface FlatEvolveOptions {
|
|
|
45
46
|
* The configurations of `webpack`
|
|
46
47
|
*/
|
|
47
48
|
webpack?: FlatEvolveWebpackOptions;
|
|
49
|
+
/**
|
|
50
|
+
* The config options of global webpack compiler.
|
|
51
|
+
*/
|
|
52
|
+
globalCompilerOptions?: GlobalCompilerOptions;
|
|
48
53
|
/**
|
|
49
54
|
* The config options of all rule set loaders.
|
|
50
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Configuration, type RuleSetRule } from 'webpack';
|
|
2
2
|
import { type WebpackPlugin } from '../create-webpack/types.js';
|
|
3
3
|
import { type TerserMinimizerOptions } from '../minimizer/types.js';
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flatjs/evolve",
|
|
3
|
-
"version": "2.1.0-next.
|
|
3
|
+
"version": "2.1.0-next.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -18,46 +18,46 @@
|
|
|
18
18
|
"./templates"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"serve": "yarn node --import=@
|
|
22
|
-
"build": "rimraf dist && tsc -p ./tsconfig.build.json",
|
|
21
|
+
"serve": "yarn node --import=@hyperse/ts-node-paths/register ./tests/dev-server/dev-server.ts",
|
|
22
|
+
"build": "rimraf dist && tsc -p ./tsconfig.build.json && npm run minify",
|
|
23
23
|
"?build-release": "When https://github.com/atlassian/changesets/issues/432 has a solution we can remove this trick",
|
|
24
24
|
"build-release": "yarn build && rimraf ./_release && yarn pack && mkdir ./_release && tar zxvf ./package.tgz --directory ./_release && rm ./package.tgz",
|
|
25
25
|
"minify": "node ../../scripts/minify.mjs --dest=dist",
|
|
26
26
|
"codegen": "graphql-codegen --config ./codegen.cjs",
|
|
27
27
|
"clean": "rimraf --no-glob ./dist ./coverage ./__data__ ./config/__data__ ./_release ./tsconfig.tsbuildinfo",
|
|
28
|
-
"lint": "eslint . --
|
|
28
|
+
"lint": "eslint . --cache --cache-location ../../.cache/eslint/evolve.eslintcache",
|
|
29
29
|
"test": "run-s test-unit",
|
|
30
30
|
"test-task": "vitest run",
|
|
31
31
|
"test-unit": "vitest run --passWithNoTests",
|
|
32
32
|
"test-watch": "vitest watch --ui",
|
|
33
|
-
"fix-all-files": "eslint . --
|
|
33
|
+
"fix-all-files": "eslint . --fix",
|
|
34
34
|
"typecheck": "tsc --project ./tsconfig.json --noEmit"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@armit/babel-merge": "^0.1
|
|
38
|
-
"@armit/config-loader": "^0.1
|
|
39
|
-
"@armit/file-utility": "^0.1
|
|
40
|
-
"@armit/git": "^0.1
|
|
41
|
-
"@armit/package": "^0.1
|
|
42
|
-
"@babel/core": "^7.24.
|
|
43
|
-
"@flatjs/babel-plugin-import": "2.1.0-next.
|
|
44
|
-
"@flatjs/common": "2.1.0-next.
|
|
45
|
-
"@flatjs/evolve-preset-babel": "2.1.0-next.
|
|
46
|
-
"@flatjs/forge-postcss-plugin-pixel": "2.1.0-next.
|
|
47
|
-
"@flatjs/graph": "2.1.0-next.
|
|
48
|
-
"@flatjs/mock": "2.1.0-next.
|
|
49
|
-
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.
|
|
37
|
+
"@armit/babel-merge": "^0.2.1",
|
|
38
|
+
"@armit/config-loader": "^0.2.1",
|
|
39
|
+
"@armit/file-utility": "^0.2.1",
|
|
40
|
+
"@armit/git": "^0.2.1",
|
|
41
|
+
"@armit/package": "^0.2.1",
|
|
42
|
+
"@babel/core": "^7.24.7",
|
|
43
|
+
"@flatjs/babel-plugin-import": "2.1.0-next.6",
|
|
44
|
+
"@flatjs/common": "2.1.0-next.5",
|
|
45
|
+
"@flatjs/evolve-preset-babel": "2.1.0-next.5",
|
|
46
|
+
"@flatjs/forge-postcss-plugin-pixel": "2.1.0-next.5",
|
|
47
|
+
"@flatjs/graph": "2.1.0-next.7",
|
|
48
|
+
"@flatjs/mock": "2.1.0-next.7",
|
|
49
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
|
|
50
50
|
"@types/babel__core": "^7.20.5",
|
|
51
51
|
"babel-loader": "^9.1.3",
|
|
52
52
|
"better-opn": "^3.0.2",
|
|
53
53
|
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
|
54
|
-
"css-loader": "^7.1.
|
|
55
|
-
"cssnano": "^7.0.
|
|
54
|
+
"css-loader": "^7.1.2",
|
|
55
|
+
"cssnano": "^7.0.2",
|
|
56
56
|
"express": "^4.19.2",
|
|
57
57
|
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
|
58
|
-
"happy-dom": "^14.
|
|
58
|
+
"happy-dom": "^14.12.0",
|
|
59
59
|
"html-webpack-plugin": "^5.6.0",
|
|
60
|
-
"image-minimizer-webpack-plugin": "^4.0.
|
|
60
|
+
"image-minimizer-webpack-plugin": "^4.0.2",
|
|
61
61
|
"less": "^4.2.0",
|
|
62
62
|
"less-loader": "^12.2.0",
|
|
63
63
|
"listr": "^0.14.3",
|
|
@@ -69,40 +69,38 @@
|
|
|
69
69
|
"svgo": "^3.3.2",
|
|
70
70
|
"tarjan-graph": "^3.0.0",
|
|
71
71
|
"terser-webpack-plugin": "^5.3.10",
|
|
72
|
-
"tinypool": "^0.
|
|
72
|
+
"tinypool": "^1.0.0",
|
|
73
73
|
"tsconfig-paths-webpack-plugin": "^4.1.0",
|
|
74
|
-
"type-fest": "^4.
|
|
74
|
+
"type-fest": "^4.20.0",
|
|
75
75
|
"typescript": "^5.4.5",
|
|
76
|
-
"webpack": "^5.
|
|
76
|
+
"webpack": "^5.92.0",
|
|
77
77
|
"webpack-bundle-analyzer": "^4.10.2",
|
|
78
78
|
"webpack-dev-server": "^5.0.4",
|
|
79
79
|
"webpack-sources": "^3.2.3"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@armit/eslint-config-bases": "^0.1.6",
|
|
83
82
|
"@dimjs/lang": "1.5.0",
|
|
84
83
|
"@dimjs/model": "1.2.3",
|
|
85
84
|
"@dimjs/model-react": "1.2.3",
|
|
86
85
|
"@dimjs/utils": "1.5.1",
|
|
87
|
-
"@flatjs/testing": "2.1.0-next.
|
|
88
|
-
"@
|
|
86
|
+
"@flatjs/testing": "2.1.0-next.5",
|
|
87
|
+
"@hyperse/eslint-config-hyperse": "^1.0.8",
|
|
88
|
+
"@swc/core": "1.5.29",
|
|
89
89
|
"@types/express": "4.17.21",
|
|
90
90
|
"@types/listr": "0.14.9",
|
|
91
|
-
"@types/node": "20.
|
|
91
|
+
"@types/node": "20.14.2",
|
|
92
92
|
"@vitest/coverage-istanbul": "1.6.0",
|
|
93
93
|
"@vitest/ui": "1.6.0",
|
|
94
94
|
"@wove/react": "1.2.23",
|
|
95
|
-
"eslint": "
|
|
95
|
+
"eslint": "^9.4.0",
|
|
96
96
|
"imagemin-gifsicle": "7.0.0",
|
|
97
97
|
"imagemin-jpegtran": "7.0.0",
|
|
98
98
|
"imagemin-pngquant": "10.0.0",
|
|
99
99
|
"imagemin-svgo": "11.0.0",
|
|
100
100
|
"npm-run-all": "4.1.5",
|
|
101
|
-
"prettier": "3.2.5",
|
|
102
101
|
"react": "18.3.1",
|
|
103
102
|
"rimraf": "5.0.7",
|
|
104
103
|
"swc-unplugin-ts": "1.0.3",
|
|
105
|
-
"ts-node": "11.0.0-beta.1",
|
|
106
104
|
"vite-tsconfig-paths": "4.3.2",
|
|
107
105
|
"vitest": "1.6.0",
|
|
108
106
|
"vue-loader": "17.4.2"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ts-checker-plugin.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ts-checker-plugin.js';
|