@flatjs/evolve 2.3.2-next.3 → 2.3.2-next.4
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/default-options.js +1 -1
- package/dist/define-config/define-config.d.ts +3 -3
- package/dist/define-config/define-config.js +1 -1
- package/dist/dev-server/create-app-page-route.js +1 -1
- package/dist/helpers/merge-inspector-evolve-config.d.ts +2 -0
- package/dist/helpers/merge-inspector-evolve-config.js +1 -0
- package/dist/helpers/print-promotion.d.ts +3 -2
- package/dist/helpers/print-promotion.js +1 -1
- package/dist/helpers/refresh-evolve-mock-options.js +1 -1
- package/dist/load-config/load-evolve-config.d.ts +2 -2
- package/dist/load-config/load-evolve-config.js +1 -1
- package/dist/load-config/types.d.ts +2 -4
- package/dist/main/create-build-server.d.ts +2 -2
- package/dist/main/prepare-build.js +1 -1
- package/dist/main/prepare-serve.d.ts +1 -2
- package/dist/main/prepare-serve.js +1 -1
- package/dist/main/start-build-dynamic.d.ts +3 -3
- package/dist/main/start-build-dynamic.js +1 -1
- package/dist/main/start-build-worker.js +1 -1
- package/dist/main/start-build.d.ts +2 -2
- package/dist/main/start-build.js +1 -1
- package/dist/main/start-serve.d.ts +2 -3
- package/dist/main/start-serve.js +1 -1
- package/dist/main/start-static.d.ts +2 -2
- package/dist/plugins/rspack/progress-plugin/index.js +1 -1
- package/dist/rules/rspack/rule-scripts.js +1 -1
- package/dist/rules/wepack/rule-scripts.js +1 -1
- package/dist/types/types-cli-options.d.ts +0 -5
- package/dist/types/types-entry-map.d.ts +1 -1
- package/dist/types/types-options.d.ts +36 -0
- package/dist/types/types-webpack.d.ts +1 -1
- package/package.json +22 -16
package/dist/default-options.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const defaultEvolveOptions={projectCwd:process.cwd(),projectVirtualPath:"flatjs/evolve",rejectWarnings:!1,devServer:{autoOpen:!0,pageProxy:"/pages",mockOptions:{mockBaseDir:"mocks"},clientOverlay:{errors:!0,warnings:!1},webSocketURL:"localIp",middlewares:[],watchOptions:{poll:1e3,ignored:["**/node_modules","**/mocks"],aggregateTimeout:500},defaultServeGlobalData:()=>Promise.resolve({}),bundleDirResolver:e=>e},webpack:{target:["web","es5"],plugins:[],ruleSets:[],publicPath:"auto",resolve:{},externals:{vue:"Vue",react:"React","react-dom":"ReactDOM"},outputDir:"public",enableBundleHashName:!0},pluginOptions:{},loaderOptions:{assetDataUrlMaxSize:4096,babelOptions:{usePreset:"react",plugins:[],presets:[]},lessOptions:{},postcssOptions:{cssnanoOptions:{}},pixelOptions:{rootValue:{px:100,rpx:1},outputUnit:"rem"},modularImports:[]},globalCompilerOptions:{runTsChecker:!0},entryMap:{},multiHtmlCdn:{},multiHtmlCdnEnvResolver:function cdnResolver(){},needVerifyPackages:{},packageInstallChecker:{enabled:!1,detectModules:["@dimjs/*"],throwError:!1,showAllInstalledGraph:!0},ci:{basedBranch:"origin/master"},isolation:!1,maxEntryGroupSize:10,openRsdoctor:!1};
|
1
|
+
export const defaultEvolveOptions={projectCwd:process.cwd(),projectVirtualPath:"flatjs/evolve",rejectWarnings:!1,devServer:{autoOpen:!0,pageProxy:"/pages",mockOptions:{mockBaseDir:"mocks"},clientOverlay:{errors:!0,warnings:!1},webSocketURL:"localIp",middlewares:[],watchOptions:{poll:1e3,ignored:["**/node_modules","**/mocks"],aggregateTimeout:500},defaultServeGlobalData:()=>Promise.resolve({}),bundleDirResolver:e=>e},webpack:{target:["web","es5"],plugins:[],ruleSets:[],publicPath:"auto",resolve:{},externals:{vue:"Vue",react:"React","react-dom":"ReactDOM"},outputDir:"public",enableBundleHashName:!0},pluginOptions:{},loaderOptions:{assetDataUrlMaxSize:4096,babelOptions:{usePreset:"react",plugins:[],presets:[]},lessOptions:{},postcssOptions:{cssnanoOptions:{}},pixelOptions:{rootValue:{px:100,rpx:1},outputUnit:"rem"},modularImports:[]},globalCompilerOptions:{runTsChecker:!0},entryMap:{},multiHtmlCdn:{},multiHtmlCdnEnvResolver:function cdnResolver(){},needVerifyPackages:{},packageInstallChecker:{enabled:!1,detectModules:["@dimjs/*"],throwError:!1,showAllInstalledGraph:!0},ci:{basedBranch:"origin/master"},isolation:!1,maxEntryGroupSize:10,compiler:"webpack",openRsdoctor:!1,inspector:{customLaunchEditorEndpoint:"/__hps_inspector",trustedEditor:"code",injectClient:!0}};
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { type PartialDeep } from 'type-fest';
|
2
|
-
import { type ConfigEnvBase, type UserConfigExport } from '@armit/config-loader';
|
3
1
|
import { type requireResolve } from '@flatjs/common';
|
2
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
3
|
+
import { type ConfigEnvBase, type UserConfigExport } from '@hyperse/config-loader';
|
4
4
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
5
5
|
export interface EvolveConfigBase extends ConfigEnvBase {
|
6
6
|
/**
|
@@ -28,6 +28,6 @@ export interface EvolveConfigBase extends ConfigEnvBase {
|
|
28
28
|
*/
|
29
29
|
resolve: typeof requireResolve;
|
30
30
|
}
|
31
|
-
type DefineConfigFn = (userConfig: UserConfigExport<
|
31
|
+
type DefineConfigFn = (userConfig: UserConfigExport<DeepPartial<FlatEvolveOptions>, EvolveConfigBase>) => UserConfigExport<DeepPartial<FlatEvolveOptions>, EvolveConfigBase>;
|
32
32
|
export declare const defineConfig: DefineConfigFn;
|
33
33
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
import{defineConfig as myDefineConfig}from"@
|
1
|
+
import{defineConfig as myDefineConfig}from"@hyperse/config-loader";export const defineConfig=e=>myDefineConfig(e);
|
@@ -1 +1 @@
|
|
1
|
-
import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{createPageMiddleware,createPublicAssetsMiddleware}from"./middlewares/index.js";export const createAppPageRoute=(e,r,a,o
|
1
|
+
import{createLaunchEditorMiddleware}from"@hyperse/inspector-middleware";import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{createPageMiddleware,createPublicAssetsMiddleware}from"./middlewares/index.js";export const createAppPageRoute=(e,r,t,a,o)=>{const{devServer:d,inspector:i}=o,s=normalizePageProxy(d?.pageProxy||"/pages");i&&d?.middlewares?.push(createLaunchEditorMiddleware({customLaunchEditorEndpoint:i.customLaunchEditorEndpoint,trustedEditor:i.trustedEditor,projectCwd:e})),r.use(s,...createPageMiddleware(t,d?.mockOptions?.apiContext||"api",a,o)),r.use("*splat",createPublicAssetsMiddleware(e,s))};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{dirname,join}from"path";import{fileURLToPath}from"url";import{searchPackageDir}from"@armit/package";import{logger,mergeOptions,requireResolve}from"@flatjs/common";export const mergeInspectorEvolveConfig=e=>{const{inspector:r}=e;if(!r)return e;const{externals:t}=e.webpack||{};if(t){let r=t;if("function"==typeof t&&(r=t()),r.react||r["react-dom"])return logger.warn("React and ReactDOM are external dependencies, you need to manually integrate Inspector"),e}const{keys:n,customLaunchEditorEndpoint:o="/__hps_inspector"}=r,i={"process.env.INSPECTOR_ENDPOINT":JSON.stringify(`/pages/${o}`.replace(/\/\//g,"/"))};n&&(i["process.env.INSPECTOR_KEYS"]=JSON.stringify(n.join(",")));const s=mergeOptions(e,{pluginOptions:{definePlugin:i}}),a=requireResolve(import.meta.url,"@hyperse/inspector"),c=searchPackageDir({cwd:fileURLToPath(dirname(a))});if(!c)return logger.debug("@hyperse/inspector package not found"),s;const p=join(c,"dist","client","index.js"),g=s.entryMap;for(const[e,r]of Object.entries(g)){r.entry.push(p)}return s};
|
@@ -1,2 +1,3 @@
|
|
1
|
-
import type {
|
2
|
-
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
|
+
import type { FlatEvolveOptions } from '../types/types-options.js';
|
3
|
+
export declare const printPromotions: (evolveOptions?: DeepPartial<FlatEvolveOptions>) => void;
|
@@ -1 +1 @@
|
|
1
|
-
import{chalk,logger}from"@flatjs/common";export const printPromotions=(o={})=>{const{
|
1
|
+
import{chalk,logger}from"@flatjs/common";export const printPromotions=(o={})=>{const{compiler:r="webpack"}=o;logger.info(`Compiler is ${chalk(["cyan"])(r)}`)};
|
@@ -1 +1 @@
|
|
1
|
-
import _ from"lodash";import{requireResolve}from"@flatjs/common";import{getMockCwd,loadMockConfig}from"@flatjs/mock";export const refreshEvolveMockOptions=async(o,t,e)=>{const
|
1
|
+
import _ from"lodash";import{requireResolve}from"@flatjs/common";import{getMockCwd,loadMockConfig}from"@flatjs/mock";export const refreshEvolveMockOptions=async(o,t,e)=>{const r=t.devServer,s=e?.loaderOptions,i=s?.externals||[],n={projectCwd:o,resolve:requireResolve},c=await loadMockConfig(n,o,r?.mockOptions||{},_.merge({},e,{configFile:"flatjs-mock",loaderOptions:{externals:[...i,"@flatjs/mock"]}}));if(r){r.mockOptions=c||{},r.mockOptions&&!r.mockOptions.https&&(r.mockOptions.https=r?.https);const o=getMockCwd(c);Array.isArray(r?.watchOptions?.ignored)&&r?.watchOptions?.ignored.push(o)}return t};
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
2
|
import { type EvolveConfigBase } from '../define-config/define-config.js';
|
3
3
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
4
4
|
import { type ConfigLoaderOptions } from './types.js';
|
5
|
-
export declare const loadEvolveConfig: (configEnv: EvolveConfigBase, projectCwd: string, overrideOptions?:
|
5
|
+
export declare const loadEvolveConfig: (configEnv: EvolveConfigBase, projectCwd: string, overrideOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions) => Promise<FlatEvolveOptions>;
|
@@ -1 +1 @@
|
|
1
|
-
import{
|
1
|
+
import{logger,mergeOptions}from"@flatjs/common";import{searchConfig}from"@hyperse/config-loader";import{configFileName,moduleName}from"../constants.js";import{defaultEvolveOptions}from"../default-options.js";import{normalizeResolveAlias}from"../helpers/normalize-resolve-alias.js";import{refreshEvolveMockOptions}from"../helpers/refresh-evolve-mock-options.js";export const loadEvolveConfig=async(o,e,i={},l={configFile:configFileName,loaderOptions:{externals:[/^@flatjs\/.*/]}})=>{const{configFile:r,loaderOptions:s}=l,a=await searchConfig(r,e,{...s,projectCwd:e});let n={};n="function"==typeof a?.config?await(a?.config(o)):a?.config||{};const t=mergeOptions(defaultEvolveOptions,n),m=mergeOptions(t,i),f=mergeOptions(m,{projectCwd:e}),p="build"===o.command?f:await refreshEvolveMockOptions(e,f,l);return logger.debug(`Load evolve config:\n${JSON.stringify(p,null,2)}`,moduleName),p.webpack?.resolve?.alias&&(p.webpack.resolve.alias=normalizeResolveAlias(e,p.webpack?.resolve?.alias)),p};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
2
|
import { type ConfigLoaderOptions } from '../load-config/types.js';
|
3
3
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
4
4
|
export declare class BuildServer {
|
@@ -10,6 +10,6 @@ export declare class BuildServer {
|
|
10
10
|
* @param configLoaderOptions - The config loader options
|
11
11
|
* @returns The build results
|
12
12
|
*/
|
13
|
-
build(projectCwd: string, earlyCommit?: string, lastCommit?: string, overrideEvolveOptions?:
|
13
|
+
build(projectCwd: string, earlyCommit?: string, lastCommit?: string, overrideEvolveOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions): Promise<import("../index.js").EvolveBuildResult[]>;
|
14
14
|
}
|
15
15
|
export declare const createBuildServer: () => BuildServer;
|
@@ -1 +1 @@
|
|
1
|
-
import{ensureSlash,mergeOptions}from"@flatjs/common";import{ignoreEntryOptionKeys}from"../constants.js";import{startRspackBuild}from"../core/rspack/start-rspack-build.js";import{startWebpackBuild}from"../core/webpack/index.js";import{EvolveBuildError}from"../errors/evolve-build-error.js";import{printCompilerError}from"../helpers/print-log.js";import{verifyGroupEntryOptions}from"../helpers/verify-group-entry-options.js";export const prepareBuild=async(r,o,t)=>{const{
|
1
|
+
import{ensureSlash,mergeOptions}from"@flatjs/common";import{ignoreEntryOptionKeys}from"../constants.js";import{startRspackBuild}from"../core/rspack/start-rspack-build.js";import{startWebpackBuild}from"../core/webpack/index.js";import{EvolveBuildError}from"../errors/evolve-build-error.js";import{printCompilerError}from"../helpers/print-log.js";import{verifyGroupEntryOptions}from"../helpers/verify-group-entry-options.js";export const prepareBuild=async(r,o,t)=>{const{compiler:e}=o,s=Object.values(r)[0];if(!verifyGroupEntryOptions(r,ignoreEntryOptionKeys,!0))throw new Error("The entry options in a group must be the same.");const i=o.multiHtmlCdn?.prod||[];if(!i.length)throw new Error(`No CDN config for env:"prod", groupName: ${s.groupName}`);const p=ensureSlash(i[Math.floor(Math.random()*i.length)],!0);try{const i=s.options?.useRelativeAssetPath,n=mergeOptions(o,{webpack:{publicPath:i?"auto":p}});return"webpack"===e?await startWebpackBuild(r,n,t):await startRspackBuild(r,n,t)}catch(r){const o=printCompilerError(r);throw new EvolveBuildError("BUILD_ERROR",o)}};
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import type { FlatCliOptions } from '../types/types-cli-options.js';
|
2
1
|
import { type EvolveEntryMap } from '../types/types-entry-map.js';
|
3
2
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
4
3
|
/**
|
@@ -7,4 +6,4 @@ import { type FlatEvolveOptions } from '../types/types-options.js';
|
|
7
6
|
* @param servedEntries All normalized webpack entries we have served.
|
8
7
|
* @param evolveOptions FlatEvolveOptions
|
9
8
|
*/
|
10
|
-
export declare const prepareServe: (projectCwd: string, servedEntries: EvolveEntryMap, evolveOptions: FlatEvolveOptions
|
9
|
+
export declare const prepareServe: (projectCwd: string, servedEntries: EvolveEntryMap, evolveOptions: FlatEvolveOptions) => Promise<import("express-serve-static-core").Express | undefined>;
|
@@ -1 +1 @@
|
|
1
|
-
import{arrayUnique,chalk,logger,urlJoin}from"@flatjs/common";import{attachMockMiddlewares}from"@flatjs/mock";import{ignoreEntryOptionKeys,moduleName}from"../constants.js";import{createRspackCompilerTask}from"../core/rspack/dev-serve/create-rspack-compiler-task.js";import{createWebpackCompilerTask}from"../core/webpack/dev-serve/create-webpack-compiler-task.js";import{createAppPageRoute,createDevServer,createDevServerEntries}from"../dev-server/index.js";import{flatEntryMap,openPage}from"../helpers/index.js";import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{verifyGroupEntryOptions}from"../helpers/verify-group-entry-options.js";import{envVerify}from"./env-verify.js";export const prepareServe=async(e,r,o
|
1
|
+
import{arrayUnique,chalk,logger,urlJoin}from"@flatjs/common";import{attachMockMiddlewares}from"@flatjs/mock";import{ignoreEntryOptionKeys,moduleName}from"../constants.js";import{createRspackCompilerTask}from"../core/rspack/dev-serve/create-rspack-compiler-task.js";import{createWebpackCompilerTask}from"../core/webpack/dev-serve/create-webpack-compiler-task.js";import{createAppPageRoute,createDevServer,createDevServerEntries}from"../dev-server/index.js";import{flatEntryMap,openPage}from"../helpers/index.js";import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{printPromotions}from"../helpers/print-promotion.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{verifyGroupEntryOptions}from"../helpers/verify-group-entry-options.js";import{envVerify}from"./env-verify.js";export const prepareServe=async(e,r,o)=>{await envVerify(e,o);const t=splitToEntryGroup(r,o,ignoreEntryOptionKeys,!0);if(!t.length)return void logger.warn("No served entries provided!");const s=[],{app:a,devPort:n,devHostUri:p,publicIp:i}=await createDevServer(o),c=o.devServer?.mockOptions?.mockFilters||[];for(const[,e]of Object.entries(r))c.push(...e.options?.mockFilters||[]);await attachMockMiddlewares(a,{...o.devServer?.mockOptions,mockFilters:arrayUnique(c),projectCwd:e});let m=n;const l=[];for(const e of t){if(!verifyGroupEntryOptions(e,ignoreEntryOptionKeys,!0))throw new Error("The entry options in a group must be the same.");m++;const r=await createDevServerEntries(m,e,o);l.push(r)}const v=flatEntryMap(l);createAppPageRoute(e,a,p,v,o);const d=normalizePageProxy(o.devServer?.pageProxy||"/pages"),f=urlJoin(p,[d]);o.devServer?.autoOpen&&openPage(f);const{compiler:g}=o;printPromotions(o);for(const e of l){const r="webpack"===g?createWebpackCompilerTask(i,e,l,o):createRspackCompilerTask(i,e,l,o);s.push(r)}return Promise.all(s).then((()=>(logger.info(`debug page ➩ ${chalk(["cyan"])(f)}`,moduleName),process.stdin.resume(),process.stdin.setEncoding("utf8"),process.stdin.on("data",(e=>{const r=e.toString();12===r.charCodeAt(0)?console.clear():[102,70].includes(r.charCodeAt(0))&&logger.info(`debug page ➩ ${chalk(["cyan"])(f)}`,moduleName)})),a)))};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
2
|
import { type ConfigLoaderOptions } from '../load-config/types.js';
|
3
3
|
import type { EvolveBuildResult } from '../types/types-build.js';
|
4
4
|
import type { FlatCliOptions } from '../types/types-cli-options.js';
|
@@ -9,7 +9,7 @@ export declare function getBuildEntryFiles(projectCwd: string, diffFiles: string
|
|
9
9
|
* Dynamic check which entry modules need to build.
|
10
10
|
* @returns
|
11
11
|
*/
|
12
|
-
export declare function dynamicCheckBuildEntryMap(projectCwd: string, earlyCommit?: string | null, lastCommit?: string, overrideEvolveOptions?:
|
12
|
+
export declare function dynamicCheckBuildEntryMap(projectCwd: string, earlyCommit?: string | null, lastCommit?: string, overrideEvolveOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions): Promise<{
|
13
13
|
buildEntries: EvolveEntryMap;
|
14
14
|
newEvolveOptions: FlatEvolveOptions;
|
15
15
|
}>;
|
@@ -19,4 +19,4 @@ export declare function dynamicCheckBuildEntryMap(projectCwd: string, earlyCommi
|
|
19
19
|
* @param earlyCommit The diff based earlier commit hash
|
20
20
|
* @param lastCommit If is omitted, it will have the same effect as using HEAD instead.
|
21
21
|
*/
|
22
|
-
export declare const startDynamicBuild: (projectCwd: string, earlyCommit?: string, lastCommit?: string, overrideEvolveOptions?:
|
22
|
+
export declare const startDynamicBuild: (projectCwd: string, earlyCommit?: string, lastCommit?: string, overrideEvolveOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions, cliOptions?: FlatCliOptions) => Promise<EvolveBuildResult[]>;
|
@@ -1 +1 @@
|
|
1
|
-
import Listr from"listr";import{isAbsolute,join}from"node:path";import{getCommitIdOfBranch,getDiffFiles}from"@armit/git";import{arraysIntersect,chalk,logger,requireResolve}from"@flatjs/common";import{traverseGraph}from"@flatjs/graph";import{createGlobalCompiler}from"../compiler/create-global-compiler.js";import{ignoreEntryOptionKeys,moduleName}from"../constants.js";import{isCI}from"../helpers/check-runtime-env.js";import{CustomListrRenderer}from"../helpers/custom-listr-renderer.js";import{filterActivedEntriesByEntryInputs,filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{getGitRoot}from"../helpers/get-git-root.js";import{getMaxProcessTasks}from"../helpers/get-max-process-tasks.js";import{jsonSerializer}from"../helpers/json-serializer.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{printPromotions}from"../helpers/print-promotion.js";import{resolveEntryMapInputFiles}from"../helpers/resolve-entry-map-input-files.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{createThreadWorker}from"./create-thread-worker.js";import{envVerify}from"./env-verify.js";import startBuildWorker from"./start-build-worker.js";const runWebpackTask=async(e,r,t,o,i,s={})=>{const{threads:n={}}=t,a=getMaxProcessTasks(r.length,n?.maxThreads);logger.info(`Start dynamic build with (${chalk(["magenta"])(String(a))}) workers`);const l=createThreadWorker({...n,maxThreads:a}),p=new Listr([],{concurrent:a,exitOnError:!0,renderer:isCI()?void 0:CustomListrRenderer}),c=[];for(const t of r){const r=Object.values(t)?.[0]?.groupName||"",n=Object.keys(t);let a=`Group ${chalk(["magenta"])(r)} $STATUS $ENTRY_KEYS${n.join(",")}`;isCI()&&(a=`Group ${chalk(["magenta"])(r)} compiling... $ENTRY_KEYS${n.join(",")}`),p.add({title:a,task:async()=>{const t=await l.startBuildWorker({projectCwd:e,entryKeys:n,serializedEvolveOptions:jsonSerializer.stringify(o),configLoaderOptions:i,groupName:r,cliOptions:s});c.push(t)}})}if(p.tasks.length)try{await p.run()}catch(e){throw l.terminate(),e}return l.terminate(),c},runRspackTask=async(e,r,t,o,i={})=>{const s=[];for(const n of r){const r=Object.values(n)?.[0]?.groupName||"",a=Object.keys(n),l=await startBuildWorker({projectCwd:e,entryKeys:a,serializedEvolveOptions:jsonSerializer.stringify(t),configLoaderOptions:o,groupName:r,cliOptions:i});s.push(l)}return s};export async function getBuildEntryFiles(e,r,t,o,i){const s=[],n=[];for(const e of t)r.includes(e)?s.push(e):n.push(e);if(i&&logger.info("Use custom graph traverse filter",moduleName),n.length){const t=await traverseGraph({input:n,projectCwd:e,treeNodeFilter:i||(()=>!0),lessImportOptions:{projectCwd:e,aliases:o}});if(!t)return s;logger.debug(`DependencyGraph:\n${JSON.stringify(t,null,2)}`);for(const e of n){const o=t[e]||[];arraysIntersect(o,r)&&s.push(e)}}return s}export async function dynamicCheckBuildEntryMap(e,r,t,o,i){const s={projectCwd:e,command:"build",resolve:requireResolve},n=await loadEvolveConfig(s,e,o,i);if(n.ci?.fixedBuildModules&&n.ci?.fixedBuildModules.length){logger.info("Use `fixedBuildModules` configuration to build...");return{buildEntries:filterActivedEntriesByModule(n.entryMap,n.ci?.fixedBuildModules),newEvolveOptions:n}}if(logger.info("Dynamicly checking code changed modules ..."),!r){const e=n.ci?.basedBranch||"origin/master";r=await getCommitIdOfBranch(e),logger.info(`Resolving base branch "${e}" commit hash "${r}" ...`)}logger.info(`diffCommits: \n${JSON.stringify({earlyCommit:r,lastCommit:t},null,2)}`,moduleName);let a=r?await getDiffFiles(r,t):[];const l=getGitRoot(e);if(!l)throw new Error(`No .git root (${e}) found`);if(a=a.map((e=>isAbsolute(e)?e:join(l,e))),logger.debug(`Diff files: \n${JSON.stringify(a,null,2)}`),!a.length)return logger.warn("It seems that there are no code files changed."),{buildEntries:{},newEvolveOptions:n};const p=await resolveEntryMapInputFiles(e,n.entryMap),c=await getBuildEntryFiles(e,a,p,n.webpack?.resolve?.alias,n.ci?.graphTreeNodeFilter);logger.debug(`To build entry files: \n${JSON.stringify(c,null,2)}`);return{buildEntries:await filterActivedEntriesByEntryInputs(e,n.entryMap,c),newEvolveOptions:n}}export const startDynamicBuild=async(e,r,t,o={},i,s={})=>{const{
|
1
|
+
import Listr from"listr";import{isAbsolute,join}from"node:path";import{getCommitIdOfBranch,getDiffFiles}from"@armit/git";import{arraysIntersect,chalk,logger,requireResolve}from"@flatjs/common";import{traverseGraph}from"@flatjs/graph";import{createGlobalCompiler}from"../compiler/create-global-compiler.js";import{ignoreEntryOptionKeys,moduleName}from"../constants.js";import{isCI}from"../helpers/check-runtime-env.js";import{CustomListrRenderer}from"../helpers/custom-listr-renderer.js";import{filterActivedEntriesByEntryInputs,filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{getGitRoot}from"../helpers/get-git-root.js";import{getMaxProcessTasks}from"../helpers/get-max-process-tasks.js";import{jsonSerializer}from"../helpers/json-serializer.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{printPromotions}from"../helpers/print-promotion.js";import{resolveEntryMapInputFiles}from"../helpers/resolve-entry-map-input-files.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{createThreadWorker}from"./create-thread-worker.js";import{envVerify}from"./env-verify.js";import startBuildWorker from"./start-build-worker.js";const runWebpackTask=async(e,r,t,o,i,s={})=>{const{threads:n={}}=t,a=getMaxProcessTasks(r.length,n?.maxThreads);logger.info(`Start dynamic build with (${chalk(["magenta"])(String(a))}) workers`);const l=createThreadWorker({...n,maxThreads:a}),p=new Listr([],{concurrent:a,exitOnError:!0,renderer:isCI()?void 0:CustomListrRenderer}),c=[];for(const t of r){const r=Object.values(t)?.[0]?.groupName||"",n=Object.keys(t);let a=`Group ${chalk(["magenta"])(r)} $STATUS $ENTRY_KEYS${n.join(",")}`;isCI()&&(a=`Group ${chalk(["magenta"])(r)} compiling... $ENTRY_KEYS${n.join(",")}`),p.add({title:a,task:async()=>{const t=await l.startBuildWorker({projectCwd:e,entryKeys:n,serializedEvolveOptions:jsonSerializer.stringify(o),configLoaderOptions:i,groupName:r,cliOptions:s});c.push(t)}})}if(p.tasks.length)try{await p.run()}catch(e){throw l.terminate(),e}return l.terminate(),c},runRspackTask=async(e,r,t,o,i={})=>{const s=[];for(const n of r){const r=Object.values(n)?.[0]?.groupName||"",a=Object.keys(n),l=await startBuildWorker({projectCwd:e,entryKeys:a,serializedEvolveOptions:jsonSerializer.stringify(t),configLoaderOptions:o,groupName:r,cliOptions:i});s.push(l)}return s};export async function getBuildEntryFiles(e,r,t,o,i){const s=[],n=[];for(const e of t)r.includes(e)?s.push(e):n.push(e);if(i&&logger.info("Use custom graph traverse filter",moduleName),n.length){const t=await traverseGraph({input:n,projectCwd:e,treeNodeFilter:i||(()=>!0),lessImportOptions:{projectCwd:e,aliases:o}});if(!t)return s;logger.debug(`DependencyGraph:\n${JSON.stringify(t,null,2)}`);for(const e of n){const o=t[e]||[];arraysIntersect(o,r)&&s.push(e)}}return s}export async function dynamicCheckBuildEntryMap(e,r,t,o,i){const s={projectCwd:e,command:"build",resolve:requireResolve},n=await loadEvolveConfig(s,e,o,i);if(n.ci?.fixedBuildModules&&n.ci?.fixedBuildModules.length){logger.info("Use `fixedBuildModules` configuration to build...");return{buildEntries:filterActivedEntriesByModule(n.entryMap,n.ci?.fixedBuildModules),newEvolveOptions:n}}if(logger.info("Dynamicly checking code changed modules ..."),!r){const e=n.ci?.basedBranch||"origin/master";r=await getCommitIdOfBranch(e),logger.info(`Resolving base branch "${e}" commit hash "${r}" ...`)}logger.info(`diffCommits: \n${JSON.stringify({earlyCommit:r,lastCommit:t},null,2)}`,moduleName);let a=r?await getDiffFiles(r,t):[];const l=getGitRoot(e);if(!l)throw new Error(`No .git root (${e}) found`);if(a=a.map((e=>isAbsolute(e)?e:join(l,e))),logger.debug(`Diff files: \n${JSON.stringify(a,null,2)}`),!a.length)return logger.warn("It seems that there are no code files changed."),{buildEntries:{},newEvolveOptions:n};const p=await resolveEntryMapInputFiles(e,n.entryMap),c=await getBuildEntryFiles(e,a,p,n.webpack?.resolve?.alias,n.ci?.graphTreeNodeFilter);logger.debug(`To build entry files: \n${JSON.stringify(c,null,2)}`);return{buildEntries:await filterActivedEntriesByEntryInputs(e,n.entryMap,c),newEvolveOptions:n}}export const startDynamicBuild=async(e,r,t,o={},i,s={})=>{const{buildEntries:n,newEvolveOptions:a}=await dynamicCheckBuildEntryMap(e,r,t,o,i);await envVerify(e,a);const l=normalizeEvolveEntryMap(n,a.entryMap),p=splitToEntryGroup(l,a,ignoreEntryOptionKeys,!1);if(!p.length)return logger.warn("No build entries provided!"),[];await createGlobalCompiler(!1,a);const{compiler:c}=a;printPromotions(a);let m=[];return"webpack"===c?m=await runWebpackTask(e,p,a,o,i,s):"rspack"===c&&(m=await runRspackTask(e,p,o,i,s)),m};
|
@@ -1 +1 @@
|
|
1
|
-
import{configLoggerStdWriteSteam,requireResolve}from"@flatjs/common";import{ignoreEntryOptionKeys}from"../constants.js";import{isCI}from"../helpers/check-runtime-env.js";import{filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{jsonSerializer}from"../helpers/json-serializer.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{prepareBuild}from"./prepare-build.js";export default async e=>{const{
|
1
|
+
import{configLoggerStdWriteSteam,requireResolve}from"@flatjs/common";import{ignoreEntryOptionKeys}from"../constants.js";import{isCI}from"../helpers/check-runtime-env.js";import{filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{jsonSerializer}from"../helpers/json-serializer.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{prepareBuild}from"./prepare-build.js";export default async e=>{const{projectCwd:r,entryKeys:o,serializedEvolveOptions:i,configLoaderOptions:t,groupName:n="flatjs_evolve_group",cliOptions:p}=e,s={projectCwd:r,command:"build",resolve:requireResolve},l=jsonSerializer.parse(i)||{},{compiler:a}=l;isCI()||"webpack"!==a||configLoggerStdWriteSteam();const m=await loadEvolveConfig(s,r,l,t),f=o.map((e=>new RegExp(`^${e}$`))),c=filterActivedEntriesByModule(m.entryMap,f),d=normalizeEvolveEntryMap(c,m.entryMap),v=splitToEntryGroup(d,m,ignoreEntryOptionKeys,!1)[0];for(const[,e]of Object.entries(v))e.groupName=n;return prepareBuild(v,m,p).then((e=>e))};
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
2
|
import { type ConfigLoaderOptions } from '../load-config/types.js';
|
3
3
|
import type { EvolveBuildResult } from '../types/types-build.js';
|
4
4
|
import type { FlatCliOptions } from '../types/types-cli-options.js';
|
5
5
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
6
|
-
export declare const startBuild: (projectCwd: string, buildModules: string[], overrideEvolveOptions?:
|
6
|
+
export declare const startBuild: (projectCwd: string, buildModules: string[], overrideEvolveOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions, cliOptions?: FlatCliOptions) => Promise<EvolveBuildResult[]>;
|
package/dist/main/start-build.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
import Listr from"listr";import{chalk,logger,requireResolve}from"@flatjs/common";import{createGlobalCompiler}from"../compiler/create-global-compiler.js";import{ignoreEntryOptionKeys}from"../constants.js";import{isCI}from"../helpers/check-runtime-env.js";import{CustomListrRenderer}from"../helpers/custom-listr-renderer.js";import{filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{getMaxProcessTasks}from"../helpers/get-max-process-tasks.js";import{jsonSerializer}from"../helpers/json-serializer.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{printPromotions}from"../helpers/print-promotion.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{createThreadWorker}from"./create-thread-worker.js";import{envVerify}from"./env-verify.js";import{startAnalyzer}from"./start-analyzer.js";import startBuildWorker from"./start-build-worker.js";const runWebpackTask=async(r,e,t,o,s,i={})=>{const{threads:a={}}=t,n=getMaxProcessTasks(e.length,a?.maxThreads);logger.info(`Start standard build with (${chalk(["magenta"])(String(n))}) workers`);const l=createThreadWorker({...a,maxThreads:n}),p=new Listr([],{concurrent:n,exitOnError:!0,renderer:isCI()?void 0:CustomListrRenderer}),
|
1
|
+
import Listr from"listr";import{chalk,logger,requireResolve}from"@flatjs/common";import{createGlobalCompiler}from"../compiler/create-global-compiler.js";import{ignoreEntryOptionKeys}from"../constants.js";import{isCI}from"../helpers/check-runtime-env.js";import{CustomListrRenderer}from"../helpers/custom-listr-renderer.js";import{filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{getMaxProcessTasks}from"../helpers/get-max-process-tasks.js";import{jsonSerializer}from"../helpers/json-serializer.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{printPromotions}from"../helpers/print-promotion.js";import{splitToEntryGroup}from"../helpers/split-to-entry-group.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{createThreadWorker}from"./create-thread-worker.js";import{envVerify}from"./env-verify.js";import{startAnalyzer}from"./start-analyzer.js";import startBuildWorker from"./start-build-worker.js";const runWebpackTask=async(r,e,t,o,s,i={})=>{const{threads:a={}}=t,n=getMaxProcessTasks(e.length,a?.maxThreads);logger.info(`Start standard build with (${chalk(["magenta"])(String(n))}) workers`);const l=createThreadWorker({...a,maxThreads:n}),p=new Listr([],{concurrent:n,exitOnError:!0,renderer:isCI()?void 0:CustomListrRenderer}),m=[];for(const t of e){const e=Object.values(t)?.[0]?.groupName||"",a=Object.keys(t);let n=`Group ${chalk(["magenta"])(e)} $STATUS $ENTRY_KEYS${a.join(",")}`;isCI()&&(n=`Group ${chalk(["magenta"])(e)} compiling... $ENTRY_KEYS${a.join(",")}`),p.add({title:n,task:async()=>{const t=await l.startBuildWorker({projectCwd:r,entryKeys:a,groupName:e,serializedEvolveOptions:jsonSerializer.stringify(o),configLoaderOptions:s,cliOptions:i});m.push(t)}})}if(p.tasks.length)try{await p.run()}catch(r){throw l.terminate(),r}return l.terminate(),m},runRspackTask=async(r,e,t,o,s={})=>{const i=[];for(const a of e){const e=Object.values(a)?.[0]?.groupName||"",n=Object.keys(a),l=await startBuildWorker({projectCwd:r,entryKeys:n,groupName:e,serializedEvolveOptions:jsonSerializer.stringify(t),configLoaderOptions:o,cliOptions:s});i.push(l)}return i};export const startBuild=async(r,e,t={},o,s={})=>{const{analyzer:i=!1}=s,a={projectCwd:r,command:"build",resolve:requireResolve},n=await loadEvolveConfig(a,r,t,o);await envVerify(r,n);const l=filterActivedEntriesByModule(n.entryMap,e),p=normalizeEvolveEntryMap(l,n.entryMap),m=splitToEntryGroup(p,n,ignoreEntryOptionKeys,!1);if(!m.length)return logger.warn("No build entries provided!"),[];await createGlobalCompiler(!1,n);const{compiler:c}=n;printPromotions(n);let d=[];return"webpack"===c?d=await runWebpackTask(r,m,n,t,o,s):"rspack"===c&&(d=await runRspackTask(r,m,t,o,s)),i&&startAnalyzer(n),d};
|
@@ -1,6 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
2
|
import { type ConfigLoaderOptions } from '../load-config/types.js';
|
3
|
-
import type { FlatCliOptions } from '../types/types-cli-options.js';
|
4
3
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
5
4
|
/**
|
6
5
|
* The main entry to start evolve serve
|
@@ -9,4 +8,4 @@ import { type FlatEvolveOptions } from '../types/types-options.js';
|
|
9
8
|
* @param overrideEvolveOptions The overrided evolve options
|
10
9
|
* @param configLoaderOptions Evolve config loader options
|
11
10
|
*/
|
12
|
-
export declare const startServe: (projectCwd: string, serveModules: string[], overrideEvolveOptions?:
|
11
|
+
export declare const startServe: (projectCwd: string, serveModules: string[], overrideEvolveOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions) => Promise<never[] | import("express-serve-static-core").Express | undefined>;
|
package/dist/main/start-serve.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
import{logger,requireResolve}from"@flatjs/common";import{createGlobalCompiler}from"../compiler/create-global-compiler.js";import{filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{
|
1
|
+
import{logger,requireResolve}from"@flatjs/common";import{createGlobalCompiler}from"../compiler/create-global-compiler.js";import{filterActivedEntriesByModule}from"../helpers/filter-actived-entries.js";import{mergeInspectorEvolveConfig}from"../helpers/merge-inspector-evolve-config.js";import{normalizeEvolveEntryMap}from"../helpers/normalize-entry-map.js";import{loadEvolveConfig}from"../load-config/load-evolve-config.js";import{prepareServe}from"./prepare-serve.js";export const startServe=async(e,r,o={},t)=>{const i={projectCwd:e,command:"serve",resolve:requireResolve};let l=await loadEvolveConfig(i,e,o,t);const{inspector:n}=l;n&&n?.injectClient&&(l=mergeInspectorEvolveConfig(l));const s=filterActivedEntriesByModule(l.entryMap,r),p=Object.keys(s);if(!p.length)return logger.warn("No served entries providered!"),[];logger.info({servedEntries:p});const a=normalizeEvolveEntryMap(s,l.entryMap);return await createGlobalCompiler(!0,l),prepareServe(e,a,l)};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import type { DeepPartial } from '@hyperse/config-loader';
|
2
2
|
import { type ConfigLoaderOptions } from '../load-config/types.js';
|
3
3
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
4
4
|
/**
|
@@ -7,4 +7,4 @@ import { type FlatEvolveOptions } from '../types/types-options.js';
|
|
7
7
|
* @param overrideEvolveOptions The overrided evolve options
|
8
8
|
* @param configLoaderOptions Evolve config loader options
|
9
9
|
*/
|
10
|
-
export declare const startStatic: (projectCwd: string, overrideEvolveOptions?:
|
10
|
+
export declare const startStatic: (projectCwd: string, overrideEvolveOptions?: DeepPartial<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions) => Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
import{Worker}from"node:worker_threads";import{resolve}from"path";import{
|
1
|
+
import{Worker}from"node:worker_threads";import{resolve}from"path";import{getDirname}from"@armit/file-utility";import{mergeOptions}from"@hyperse/config-loader";import{ProgressPlugin}from"@rspack/core";import{progressHandler}from"./progress-handler.js";export const createProgressRspackPlugins=(r,e={})=>{if("test"===process.env.NODE_ENV)return console.warn("[WARNING] Using fake thread pool worker for unittest!"),[new ProgressPlugin({prefix:"[ evolve vite progress ]"})];const o=resolve(getDirname(import.meta.url),"./progress-worker.js"),s=new Worker(o,{env:{...process.env,FORCE_COLOR:"3"}}),t=mergeOptions(progressHandler(s,r),e);return[new ProgressPlugin(t),{apply(r){r.hooks.done.tap("shutdown",(()=>{s.terminate()}))}}]};
|
@@ -1 +1 @@
|
|
1
|
-
import{assertSwcImportOptions}from"@flatjs/babel-plugin-import/helpers";import{requireResolve}from"@flatjs/common";import{shouldEnableReactFastRefresh}from"../../helpers/should-enable-react-fast-refresh.js";export const rspackRuleScripts=(e,r,t)=>{const{loaderOptions:s,projectCwd:a}=t,{modularImports:
|
1
|
+
import{assertSwcImportOptions}from"@flatjs/babel-plugin-import/helpers";import{requireResolve}from"@flatjs/common";import{shouldEnableReactFastRefresh}from"../../helpers/should-enable-react-fast-refresh.js";export const rspackRuleScripts=(e,r,t)=>{const{loaderOptions:s,projectCwd:o,inspector:a}=t,{modularImports:p=[]}=s,l=assertSwcImportOptions(o,p),m=shouldEnableReactFastRefresh(e,r,t),c=[];return c.push([requireResolve(import.meta.url,"@flatjs/swc-plugin-import"),{modularImports:l}]),e&&a&&c.push(["@hyperse/inspector-swc-plugin",{projectCwd:o}]),{test:/\.(jsx|tsx|ts|js|mjs|cjs|mts|cts)$/,exclude:/node_modules/,use:[{loader:"builtin:swc-loader",options:{jsc:{parser:{decorators:!0,syntax:"typescript",tsx:!0},externalHelpers:!0,experimental:{keepImportAttributes:!0,plugins:[...c]},transform:{legacyDecorator:!0,react:{runtime:"automatic",pragma:"React.createElement",pragmaFrag:"React.Fragment",throwIfNamespace:!0,development:m,refresh:m}}},env:{mode:"entry",targets:{browsers:["ie >= 11","safari > 10"]}}}}]}};
|
@@ -1 +1 @@
|
|
1
|
-
import{requireResolve}from"@flatjs/common";import{mergeBabelOption}from"../../helpers/merge-babel-options.js";import{shouldEnableReactFastRefresh}from"../../helpers/should-enable-react-fast-refresh.js";export const ruleBabel=e=>({test:/\.(tsx|ts|js|jsx|mjs|cjs|mts|cts)$/,use:[{loader:requireResolve(import.meta.url,"babel-loader"),options:e}]});export const webpackRuleScripts=(e,r,s)=>{const{projectCwd:t}=s,{babelOptions:o={},modularImports:
|
1
|
+
import{requireResolve}from"@flatjs/common";import{mergeBabelOption}from"../../helpers/merge-babel-options.js";import{shouldEnableReactFastRefresh}from"../../helpers/should-enable-react-fast-refresh.js";export const ruleBabel=e=>({test:/\.(tsx|ts|js|jsx|mjs|cjs|mts|cts)$/,use:[{loader:requireResolve(import.meta.url,"babel-loader"),options:e}]});export const webpackRuleScripts=(e,r,s)=>{const{projectCwd:t,inspector:l}=s,{babelOptions:o={},modularImports:p=[]}=s.loaderOptions,a=mergeBabelOption(e,p,o,t);return shouldEnableReactFastRefresh(e,r,s)&&(a.plugins?a.plugins.push(requireResolve(import.meta.url,"react-refresh/babel")):a.plugins=[requireResolve(import.meta.url,"react-refresh/babel")]),e&&l&&(a.plugins?a.plugins.push([requireResolve(import.meta.url,"@hyperse/inspector-babel-plugin"),{projectCwd:t}]):a.plugins=[[requireResolve(import.meta.url,"@hyperse/inspector-babel-plugin"),{projectCwd:t}]]),ruleBabel(a)};
|
@@ -81,7 +81,7 @@ export interface EvolveEntryItemOption extends MultiHtmlCDNEntryItem {
|
|
81
81
|
output?: Omit<Required<Configuration>['output'], 'chunkFilename' | 'cssChunkFilename'>;
|
82
82
|
}
|
83
83
|
export type EvolveEntryMapContent = {
|
84
|
-
entry:
|
84
|
+
entry: string[];
|
85
85
|
options?: EvolveEntryItemOption;
|
86
86
|
/**
|
87
87
|
* An alias used when grouping builds
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { type VerifyPackagePattern } from '@armit/package';
|
2
|
+
import type { TrustedEditor } from '@hyperse/inspector-common';
|
2
3
|
import { type FlatEvolveCI } from './types-ci.js';
|
3
4
|
import { type FlatEvolveDevServerOptions } from './types-dev-server.js';
|
4
5
|
import { type EvolveEntryMap } from './types-entry-map.js';
|
@@ -134,9 +135,44 @@ export interface FlatEvolveOptions {
|
|
134
135
|
* @default 10
|
135
136
|
*/
|
136
137
|
maxEntryGroupSize?: number;
|
138
|
+
/**
|
139
|
+
* The kernel types used for building currently offer webpack and rspack
|
140
|
+
* @default 'webpack'
|
141
|
+
*/
|
142
|
+
compiler?: 'webpack' | 'rspack';
|
137
143
|
/**
|
138
144
|
* Whether to open the rs-evolve doctor plugin.
|
139
145
|
* @default false
|
140
146
|
*/
|
141
147
|
openRsdoctor?: boolean;
|
148
|
+
/**
|
149
|
+
* The options of code inspector.
|
150
|
+
*
|
151
|
+
* If `serveMode` is `false`, it will be ignored. and close code inspector.
|
152
|
+
*
|
153
|
+
*/
|
154
|
+
inspector?: false | {
|
155
|
+
/**
|
156
|
+
* Inspector Component toggle hotkeys,
|
157
|
+
*
|
158
|
+
* @default - `['$mod', 'i']` on macOS, `['Ctrl', 'i']` on other platforms.
|
159
|
+
*
|
160
|
+
*/
|
161
|
+
keys?: string[];
|
162
|
+
/**
|
163
|
+
* Whether to automatically inject the code inspector client entry.
|
164
|
+
* @default true
|
165
|
+
*/
|
166
|
+
injectClient?: boolean;
|
167
|
+
/**
|
168
|
+
* The base path of the launch editor endpoint.
|
169
|
+
* @default '/__hps_inspector'
|
170
|
+
*/
|
171
|
+
customLaunchEditorEndpoint?: string;
|
172
|
+
/**
|
173
|
+
* The trusted editors that can be launched from browser.
|
174
|
+
* @default 'code'
|
175
|
+
*/
|
176
|
+
trustedEditor?: `${TrustedEditor}`;
|
177
|
+
};
|
142
178
|
}
|
@@ -6,7 +6,7 @@ export type WebpackPlugin = ((this: Compiler, compiler: Compiler) => void) | Web
|
|
6
6
|
* The webpack entry configuration.
|
7
7
|
*/
|
8
8
|
export interface WebpackEntryObject {
|
9
|
-
[index: string]: string
|
9
|
+
[index: string]: string[];
|
10
10
|
}
|
11
11
|
export interface FlatEvolveWebpackOptions extends Pick<Configuration, 'infrastructureLogging'> {
|
12
12
|
/**
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@flatjs/evolve",
|
3
|
-
"version": "2.3.2-next.
|
3
|
+
"version": "2.3.2-next.4",
|
4
4
|
"license": "MIT",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -18,8 +18,9 @@
|
|
18
18
|
"./templates"
|
19
19
|
],
|
20
20
|
"scripts": {
|
21
|
-
"serve": "yarn node --import=@hyperse/ts-node
|
22
|
-
"
|
21
|
+
"serve:react19": "yarn node --import=@hyperse/ts-node/register ./tests/dev-server-react19/dev-server.ts",
|
22
|
+
"serve": "yarn node --import=@hyperse/ts-node/register ./tests/dev-server/dev-server.ts",
|
23
|
+
"analyzer": "yarn node --import=@hyperse/ts-node/register ./tests/build-analyzer/start-analyzer.ts",
|
23
24
|
"build": "rimraf dist && tsc -p ./tsconfig.build.json && npm run minify",
|
24
25
|
"?build-release": "When https://github.com/atlassian/changesets/issues/432 has a solution we can remove this trick",
|
25
26
|
"build-release": "yarn build && rimraf ./_release && yarn pack && mkdir ./_release && tar zxvf ./package.tgz --directory ./_release && rm ./package.tgz",
|
@@ -42,25 +43,30 @@
|
|
42
43
|
},
|
43
44
|
"dependencies": {
|
44
45
|
"@armit/babel-merge": "^0.2.11",
|
45
|
-
"@armit/config-loader": "^0.3.5",
|
46
46
|
"@armit/file-utility": "^0.2.11",
|
47
47
|
"@armit/git": "^0.2.11",
|
48
48
|
"@armit/package": "^0.2.15",
|
49
49
|
"@babel/core": "^7.26.10",
|
50
50
|
"@clack/prompts": "^0.10.1",
|
51
51
|
"@discoveryjs/json-ext": "0.6.3",
|
52
|
-
"@flatjs/babel-plugin-import": "2.2.9-next.
|
53
|
-
"@flatjs/common": "2.2.4-next.
|
54
|
-
"@flatjs/evolve-preset-babel": "2.2.4-next.
|
55
|
-
"@flatjs/forge-postcss-plugin-pixel": "2.2.4-next.
|
56
|
-
"@flatjs/forge-ts-checker": "1.1.2-next.
|
57
|
-
"@flatjs/graph": "2.2.9-next.
|
58
|
-
"@flatjs/mock": "2.4.1-next.
|
59
|
-
"@flatjs/swc-plugin-import": "1.0.0-next.
|
52
|
+
"@flatjs/babel-plugin-import": "2.2.9-next.3",
|
53
|
+
"@flatjs/common": "2.2.4-next.1",
|
54
|
+
"@flatjs/evolve-preset-babel": "2.2.4-next.1",
|
55
|
+
"@flatjs/forge-postcss-plugin-pixel": "2.2.4-next.1",
|
56
|
+
"@flatjs/forge-ts-checker": "1.1.2-next.1",
|
57
|
+
"@flatjs/graph": "2.2.9-next.3",
|
58
|
+
"@flatjs/mock": "2.4.1-next.3",
|
59
|
+
"@flatjs/swc-plugin-import": "1.0.0-next.4",
|
60
|
+
"@hyperse/config-loader": "^1.0.5",
|
61
|
+
"@hyperse/inspector": "^1.1.6",
|
62
|
+
"@hyperse/inspector-babel-plugin": "^1.1.5",
|
63
|
+
"@hyperse/inspector-common": "^1.1.3",
|
64
|
+
"@hyperse/inspector-middleware": "^1.1.5",
|
65
|
+
"@hyperse/inspector-swc-plugin": "^1.1.7",
|
60
66
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.16",
|
61
67
|
"@rsdoctor/rspack-plugin": "^1.1.2",
|
62
|
-
"@rspack/core": "^1.3.
|
63
|
-
"@rspack/dev-server": "^1.1.
|
68
|
+
"@rspack/core": "^1.3.13",
|
69
|
+
"@rspack/dev-server": "^1.1.2",
|
64
70
|
"@rspack/plugin-react-refresh": "^1.4.3",
|
65
71
|
"@swc/helpers": "^0.5.17",
|
66
72
|
"@types/babel__core": "^7.20.5",
|
@@ -102,7 +108,7 @@
|
|
102
108
|
"@dimjs/model": "2.1.1",
|
103
109
|
"@dimjs/model-react": "2.1.1",
|
104
110
|
"@dimjs/utils": "2.1.2",
|
105
|
-
"@flatjs/testing": "2.2.4-next.
|
111
|
+
"@flatjs/testing": "2.2.4-next.1",
|
106
112
|
"@hyperse/eslint-config-hyperse": "^1.4.1",
|
107
113
|
"@swc/core": "1.11.21",
|
108
114
|
"@types/express": "5.0.1",
|
@@ -117,7 +123,7 @@
|
|
117
123
|
"react": "19.1.0",
|
118
124
|
"rimraf": "6.0.1",
|
119
125
|
"vite-tsconfig-paths": "5.1.4",
|
120
|
-
"vitest": "3.
|
126
|
+
"vitest": "3.2.2",
|
121
127
|
"vue-loader": "17.4.2"
|
122
128
|
},
|
123
129
|
"peerDependencies": {
|