@flatjs/evolve 2.0.13 → 2.1.0-next.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/dev-server/create-app-page-route.d.ts +1 -1
- package/dist/dev-server/create-app-page-route.js +1 -1
- package/dist/dev-server/create-dev-server-compiler-tasks.d.ts +1 -1
- package/dist/dev-server/create-dev-server-entries.d.ts +1 -1
- package/dist/dev-server/middlewares/create-page-middleware.d.ts +1 -24
- package/dist/dev-server/middlewares/create-page-middleware.js +1 -1
- package/dist/dev-server/middlewares/get-all-sorted-modules.d.ts +34 -0
- package/dist/dev-server/middlewares/get-all-sorted-modules.js +1 -0
- package/dist/dev-server/middlewares/get-bundle-asset.d.ts +1 -0
- package/dist/dev-server/middlewares/get-bundle-asset.js +1 -0
- package/dist/dev-server/middlewares/get-dev-server-host-uri.d.ts +2 -0
- package/dist/dev-server/middlewares/get-dev-server-host-uri.js +1 -0
- package/dist/dev-server/middlewares/get-hmr-runtime-chunks.d.ts +4 -0
- package/dist/dev-server/middlewares/get-hmr-runtime-chunks.js +1 -0
- package/dist/dev-server/middlewares/get-normalized-entry-name.d.ts +3 -0
- package/dist/dev-server/middlewares/get-normalized-entry-name.js +1 -0
- package/dist/dev-server/middlewares/get-page-main-html.d.ts +3 -0
- package/dist/dev-server/middlewares/get-page-main-html.js +1 -0
- package/dist/dev-server/middlewares/get-page-module-html.d.ts +4 -0
- package/dist/dev-server/middlewares/get-page-module-html.js +1 -0
- package/dist/dev-server/middlewares/get-project-virtual-path.d.ts +2 -0
- package/dist/dev-server/middlewares/get-project-virtual-path.js +1 -0
- package/dist/dev-server/middlewares/get-runtime-manifest.d.ts +13 -0
- package/dist/dev-server/middlewares/get-runtime-manifest.js +1 -0
- package/dist/dev-server/middlewares/types.d.ts +24 -0
- package/dist/dev-server/middlewares/types.js +1 -0
- package/dist/helpers/get-html-plugin-config.d.ts +1 -1
- package/dist/helpers/normalize-page-proxy.d.ts +6 -0
- package/dist/helpers/normalize-page-proxy.js +1 -0
- package/dist/main/create-thread-worker.d.ts +3 -3
- package/dist/main/prepare-serve.js +1 -1
- package/dist/main/prepare-static.js +1 -1
- package/dist/main/start-build-dynamic.d.ts +1 -1
- package/dist/types/types-dev-server.d.ts +21 -1
- package/package.json +38 -38
@@ -1,6 +1,6 @@
|
|
1
1
|
import { type Application } from 'express';
|
2
2
|
import { type FlatEvolveOptions } from '../types/index.js';
|
3
|
-
import { type EvolveDevServerEntryMap } from './middlewares/
|
3
|
+
import { type EvolveDevServerEntryMap } from './middlewares/types.js';
|
4
4
|
/**
|
5
5
|
* Add route `/pages`, `*` to main web-server
|
6
6
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
import{createPageMiddleware,createPublicAssetsMiddleware}from"./middlewares/index.js";export const createAppPageRoute=(e,a,
|
1
|
+
import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{createPageMiddleware,createPublicAssetsMiddleware}from"./middlewares/index.js";export const createAppPageRoute=(e,r,a,o,i)=>{const{devServer:s}=i,t=normalizePageProxy(s?.pageProxy||"/pages");r.use(t,...createPageMiddleware(a,s?.mockOptions?.apiContext||"api",o,i)),r.use("*",createPublicAssetsMiddleware(e,t))};
|
@@ -1,3 +1,3 @@
|
|
1
1
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
2
|
-
import { type EvolveDevServerEntryMap } from './middlewares/
|
2
|
+
import { type EvolveDevServerEntryMap } from './middlewares/types.js';
|
3
3
|
export declare const createDevServerCompilerTasks: (projectCwd: string, mainPage: string, publicIp: string, servedDevServerEntries: EvolveDevServerEntryMap, evolveOptions: FlatEvolveOptions) => Promise<Promise<boolean>[]>;
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { type EvolveEntryMap } from '../types/types-entry-map.js';
|
2
2
|
import { type FlatEvolveOptions } from '../types/types-options.js';
|
3
|
-
import { type EvolveDevServerEntryMap } from './middlewares/
|
3
|
+
import { type EvolveDevServerEntryMap } from './middlewares/types.js';
|
4
4
|
export declare const createDevServerEntries: (startPort: number, servedEntries: EvolveEntryMap, evolveOptions: FlatEvolveOptions) => Promise<EvolveDevServerEntryMap>;
|
@@ -1,29 +1,6 @@
|
|
1
1
|
import { type RequestHandler } from 'express';
|
2
|
-
import { type EvolveEntryMapContent } from '../../types/types-entry-map.js';
|
3
2
|
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* entryName: `home`
|
7
|
-
*/
|
8
|
-
[entryName: string]: {
|
9
|
-
/**
|
10
|
-
* entryMapItem config options.
|
11
|
-
*/
|
12
|
-
entryConfig: EvolveEntryMapContent;
|
13
|
-
/**
|
14
|
-
* dev server port number
|
15
|
-
*/
|
16
|
-
devServerPort: number;
|
17
|
-
/**
|
18
|
-
* dev server host uri.
|
19
|
-
*/
|
20
|
-
devServerHostUri: string;
|
21
|
-
/**
|
22
|
-
* entryName: `home` should be normallized to ${`projectVirtualPath`}/home
|
23
|
-
*/
|
24
|
-
normalizedEntryName: string;
|
25
|
-
};
|
26
|
-
};
|
3
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
27
4
|
/**
|
28
5
|
* A middleware to proxy the page modules template.
|
29
6
|
* @example `http://dev.flatjs.com:3001/pages`
|
@@ -1 +1 @@
|
|
1
|
-
import{
|
1
|
+
import{getPageMainHtml}from"./get-page-main-html.js";import{getPageModuleHtml}from"./get-page-module-html.js";import{getRuntimeManifest}from"./get-runtime-manifest.js";export const createPageMiddleware=(e,t,a,m)=>(m.devServer?.middlewares||[]).concat((async(i,n)=>{let g;if("/runtime/manifest.json"===i.path){const t=await getRuntimeManifest(a,e,m);return n.json(t)}g="/"===i.path?await getPageMainHtml(a,e,m):await getPageModuleHtml(a,i,e,t,m),n.send(g)}));
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { type EvolveEntryMapContent } from '../../types/types-entry-map.js';
|
2
|
+
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
3
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
4
|
+
export interface SortedModuleItem {
|
5
|
+
/**
|
6
|
+
* The entry name defined in `entryMap`
|
7
|
+
*/
|
8
|
+
entryName: string;
|
9
|
+
/**
|
10
|
+
* The value indicates whether the entry is served by the dev server.
|
11
|
+
*/
|
12
|
+
isServedEntry: boolean;
|
13
|
+
/**
|
14
|
+
* The normalized project virtual path.
|
15
|
+
*/
|
16
|
+
projectVirtualPath: string;
|
17
|
+
/**
|
18
|
+
* THe entry content defined in `entryMap`
|
19
|
+
*/
|
20
|
+
entryContent: EvolveEntryMapContent;
|
21
|
+
/**
|
22
|
+
* The main dev server host uri
|
23
|
+
*/
|
24
|
+
devHostUri: string;
|
25
|
+
/**
|
26
|
+
* The normalized dev server host uri
|
27
|
+
*/
|
28
|
+
devServerHostUri: string;
|
29
|
+
/**
|
30
|
+
* The normalized entry name.
|
31
|
+
*/
|
32
|
+
normalizedEntryName: string;
|
33
|
+
}
|
34
|
+
export declare function getSortedModules(evolveOptions: FlatEvolveOptions, servedDevServerEntries: EvolveDevServerEntryMap, devHostUri: string): SortedModuleItem[];
|
@@ -0,0 +1 @@
|
|
1
|
+
import{getDevServerHostUri}from"./get-dev-server-host-uri.js";import{getNormalizedEntryName}from"./get-normalized-entry-name.js";import{getProjectVirtualPath}from"./get-project-virtual-path.js";export function getSortedModules(e,t,r){const o=[],n=getProjectVirtualPath(e);for(const[i,a]of Object.entries(e.entryMap)){const s=Object.keys(t).includes(i),m=getDevServerHostUri(t,i,r),v=getNormalizedEntryName(i,n,t,e.devServer);o.push({entryName:i,entryContent:a,devHostUri:r,devServerHostUri:m,normalizedEntryName:v,projectVirtualPath:n,isServedEntry:s})}return o}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const getBundleAsset: (devServerHostUri: string, normalizedCurrEntry: string, extension: '.css' | '.js') => string;
|
@@ -0,0 +1 @@
|
|
1
|
+
import{join}from"node:path/posix";import{urlJoin}from"@flatjs/common";export const getBundleAsset=(o,n,i)=>urlJoin(o,[join("public",n,`bundle${i}`)]);
|
@@ -0,0 +1 @@
|
|
1
|
+
export function getDevServerHostUri(e,r,t){const o=e[r];return o?.devServerHostUri||t}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { type EvolveEntryMapContent } from '../../types/types-entry-map.js';
|
2
|
+
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
3
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
4
|
+
export declare function getHmrRuntimeChunks(servedDevServerEntries: EvolveDevServerEntryMap, entryName: string, normalizedCurrEntry: string, currEntryItem: EvolveEntryMapContent, evolveOptions: FlatEvolveOptions, devServerHostUri: string): string[];
|
@@ -0,0 +1 @@
|
|
1
|
+
import{join}from"node:path";import{devReactFastRefresh}from"../../constants.js";import{shouldEnableReactFastRefresh}from"../../helpers/should-enable-react-fast-refresh.js";import{getBundleAsset}from"./get-bundle-asset.js";export function getHmrRuntimeChunks(e,t,s,r,n,a){if(e[t]&&shouldEnableReactFastRefresh(!0,[s,r],n)){return[getBundleAsset(a,join(s,devReactFastRefresh.runtime),".js"),getBundleAsset(a,join(s,devReactFastRefresh.reactRefreshSetup),".js")]}return[]}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { type FlatEvolveDevServerOptions } from '../../types/types-dev-server.js';
|
2
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
3
|
+
export declare function getNormalizedEntryName(entryName: string, projectVirtualPath: string, servedDevServerEntries: EvolveDevServerEntryMap, devServer?: FlatEvolveDevServerOptions): string;
|
@@ -0,0 +1 @@
|
|
1
|
+
import{normalizeEvolveEntryName}from"../../helpers/normalize-entry-map.js";export function getNormalizedEntryName(e,r,t,l){let n=normalizeEvolveEntryName(e,r);if(l?.bundleDirResolver){const o=Object.keys(t).includes(e);n=l?.bundleDirResolver(n,{currEntry:e,projectVirtualPath:r,isServedModule:o})}return n}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
2
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
3
|
+
export declare const getPageMainHtml: (servedDevServerEntries: EvolveDevServerEntryMap, devHostUri: string, evolveOptions: FlatEvolveOptions) => Promise<string>;
|
@@ -0,0 +1 @@
|
|
1
|
+
import{readFileSync}from"node:fs";import{join}from"node:path";import{urlJoin}from"@flatjs/common";import _ from"lodash";import{getPackageDir}from"../../helpers/get-pacakge-dir.js";import{normalizePageProxy}from"../../helpers/normalize-page-proxy.js";import{getSortedModules}from"./get-all-sorted-modules.js";export const getPageMainHtml=async(e,r,t)=>{const o=getPackageDir(),a=readFileSync(join(o,"./templates/main.html"),"utf-8"),i=getSortedModules(t,e,r),n=normalizePageProxy(t.devServer?.pageProxy||"/pages"),m={title:"@flatjs/evolve",modules:i.map((e=>{const{entryName:t,entryContent:o,isServedEntry:a,projectVirtualPath:i,normalizedEntryName:m}=e,l=urlJoin(r,[n,m],{env:"me"}),s=o.options?.servePageMainLinkFn||(e=>e);return{link:s(l,{hostUri:r,entryName:t,virtualPath:i}),name:t.replace(i,"").replace(/^\//,""),flagText:a?"serve":"static",isServed:a?1:0}})).sort(((e,r)=>r.isServed-e.isServed))};return _.template(a)(m)};
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { type Request } from 'express';
|
2
|
+
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
3
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
4
|
+
export declare const getPageModuleHtml: (servedDevServerEntries: EvolveDevServerEntryMap, req: Request, devHostUri: string, apiContext: string, evolveOptions: FlatEvolveOptions) => Promise<string>;
|
@@ -0,0 +1 @@
|
|
1
|
+
import{existsSync,readFileSync}from"node:fs";import{isAbsolute,join}from"node:path";import{ensureSlash,urlJoin}from"@flatjs/common";import _ from"lodash";import{allowPx2remForModule}from"../../helpers/allow-px2rem-for-module.js";import{getHtmlPluginConfig}from"../../helpers/get-html-plugin-config.js";import{getPackageDir}from"../../helpers/get-pacakge-dir.js";import{normalizeEvolveEntryName}from"../../helpers/normalize-entry-map.js";import{normalizePageProxy}from"../../helpers/normalize-page-proxy.js";import{injectFederationScripts}from"../../helpers/script-injects.js";import{getBundleAsset}from"./get-bundle-asset.js";import{getDevServerHostUri}from"./get-dev-server-host-uri.js";import{getHmrRuntimeChunks}from"./get-hmr-runtime-chunks.js";import{getNormalizedEntryName}from"./get-normalized-entry-name.js";export const getPageModuleHtml=async(e,t,r,o,l)=>{const{entryMap:i,projectVirtualPath:a}=l,s=Object.keys(i).sort(((e,t)=>t.length-e.length)),n=getPackageDir(),m=s.find((e=>{const r=normalizeEvolveEntryName(e,a);return ensureSlash(t.path.replace(/^\//,""),!0).startsWith(ensureSlash(r,!0))}));if(!m){const e=readFileSync(join(n,"./templates/module-404.html"),"utf-8");return _.template(e)({title:"404 Not Found",errorMeta:[{name:"@flatjs/evolve workspace",value:n},{name:"served entry names",value:JSON.stringify(s)},{name:"module path",value:`${t.path}`}]})}const p=i[m],g=p.options,u=getDevServerHostUri(e,m,r),d=g?.serveModuleTemplate||"./templates/module.html",f=join(l.projectCwd,"./templates/module.html"),c=readFileSync(isAbsolute(d)?d:existsSync(f)?f:join(n,"./templates/module.html"),"utf-8"),h=l.devServer,v=h?.defaultServeGlobalData?await h.defaultServeGlobalData(p,r):{},S={mode:"development",envCdn:urlJoin(r,["public"])},y=getNormalizedEntryName(m,a,e,h),j=normalizePageProxy(h?.pageProxy||"/pages"),H={title:getHtmlPluginConfig("title",S,g?.title),favicon:getHtmlPluginConfig("favicon",S,g?.favicon),viewport:allowPx2remForModule([m,p],l)?getHtmlPluginConfig("viewport",S,g?.viewport):"",headBeforeHtmlTags:getHtmlPluginConfig("headBeforeHtmlTags",S,g?.headBeforeHtmlTags),inlineScripts:getHtmlPluginConfig("inlineScripts",S,g?.inlineScripts),headBeforeStyles:getHtmlPluginConfig("headBeforeStyles",S,g?.headBeforeStyles),headBeforeScripts:getHtmlPluginConfig("headBeforeScripts",S,g?.headBeforeScripts),bodyAfterScripts:getHtmlPluginConfig("bodyAfterScripts",S,g?.bodyAfterScripts),moduleFederationScripts:injectFederationScripts({me:[urlJoin(r,["public"])]},l.multiHtmlCdnEnvResolver),global:{hostUrl:r,apiBase:urlJoin(r,[o]),virtualPath:join(j,a),moduleName:m.replace(a,"").replace(/^\//,""),...v,...g?.serveGlobalData||{}},styles:[getBundleAsset(u,y,".css")],scripts:[getBundleAsset(u,y,".js")]};H.headBeforeHtmlTags?H.headBeforeHtmlTags=H.headBeforeHtmlTags.slice(0):H.headBeforeHtmlTags=[];return getHmrRuntimeChunks(e,m,y,p,l,u).forEach((e=>{H.headBeforeHtmlTags?.push(`<script src="${e}"><\/script>`)})),_.template(c)(H)};
|
@@ -0,0 +1 @@
|
|
1
|
+
export const getProjectVirtualPath=t=>t.projectVirtualPath.replace(/^\//,"");
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { type FlatEvolveOptions } from '../../types/types-options.js';
|
2
|
+
import { type EvolveDevServerEntryMap } from './types.js';
|
3
|
+
interface RuntimeManifest {
|
4
|
+
[normalizedEntryName: string]: {
|
5
|
+
entryName: string;
|
6
|
+
styles: string[];
|
7
|
+
scripts: string[];
|
8
|
+
runtimeChunks: string[];
|
9
|
+
isServed: boolean;
|
10
|
+
};
|
11
|
+
}
|
12
|
+
export declare const getRuntimeManifest: (servedDevServerEntries: EvolveDevServerEntryMap, devHostUri: string, evolveOptions: FlatEvolveOptions) => Promise<RuntimeManifest>;
|
13
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{getSortedModules}from"./get-all-sorted-modules.js";import{getBundleAsset}from"./get-bundle-asset.js";import{getHmrRuntimeChunks}from"./get-hmr-runtime-chunks.js";export const getRuntimeManifest=async(e,t,s)=>{const r=getSortedModules(s,e,t),n={};for(const t of r){const{entryName:r,isServedEntry:o,entryContent:m,devServerHostUri:u,normalizedEntryName:d}=t,i=[getBundleAsset(u,d,".js")],g=[getBundleAsset(u,d,".css")],l=getHmrRuntimeChunks(e,r,d,m,s,u);n[d]={entryName:r,styles:g,scripts:i,isServed:o,runtimeChunks:l}}return n};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { type EvolveEntryMapContent } from '../../types/types-entry-map.js';
|
2
|
+
export type EvolveDevServerEntryMap = {
|
3
|
+
/**
|
4
|
+
* entryName: `home`
|
5
|
+
*/
|
6
|
+
[entryName: string]: {
|
7
|
+
/**
|
8
|
+
* entryMapItem config options.
|
9
|
+
*/
|
10
|
+
entryConfig: EvolveEntryMapContent;
|
11
|
+
/**
|
12
|
+
* dev server port number
|
13
|
+
*/
|
14
|
+
devServerPort: number;
|
15
|
+
/**
|
16
|
+
* dev server host uri.
|
17
|
+
*/
|
18
|
+
devServerHostUri: string;
|
19
|
+
/**
|
20
|
+
* entryName: `home` should be normallized to ${`projectVirtualPath`}/home
|
21
|
+
*/
|
22
|
+
normalizedEntryName: string;
|
23
|
+
};
|
24
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export{};
|
@@ -16,5 +16,5 @@ export type HtmlPluginConfigTokenType<T extends Json> = T | ((configData: HtmlPl
|
|
16
16
|
* @param preferredValue 用户首选的值, 如果返回为undefined, 将使用默认值
|
17
17
|
* @returns
|
18
18
|
*/
|
19
|
-
export declare const getHtmlPluginConfig: <T extends Json>(key: keyof typeof defaultHtmlPluginConfig, configData: HtmlPluginConfigConfigData, preferredValue?: HtmlPluginConfigTokenType<T>
|
19
|
+
export declare const getHtmlPluginConfig: <T extends Json>(key: keyof typeof defaultHtmlPluginConfig, configData: HtmlPluginConfigConfigData, preferredValue?: HtmlPluginConfigTokenType<T>) => T;
|
20
20
|
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
export const normalizePageProxy=(e="/pages")=>"/"+(e.replace(/^\//,"").replace(/\/$/,"")||"pages");
|
@@ -3,14 +3,14 @@ import { startBuildWorker } from './start-build-worker.js';
|
|
3
3
|
declare class ThreadPoolForUnittest implements BaseWorker {
|
4
4
|
private workerSize;
|
5
5
|
constructor(workerSize: number);
|
6
|
-
startBuildWorker(...args: Parameters<typeof startBuildWorker>): Promise<import("
|
6
|
+
startBuildWorker(...args: Parameters<typeof startBuildWorker>): Promise<import("src/main/start-one-entry-build.js").EvolveBuildResult>;
|
7
7
|
get pool(): PoolInterface;
|
8
8
|
}
|
9
9
|
export declare const createThreadWorker: (workerSize: number) => Promise<ThreadPoolForUnittest | (BaseWorker & {
|
10
10
|
all: {
|
11
|
-
readonly startBuildWorker: (projectCwd: string, entryKey: string, serializedEvolveOptions: string, configLoaderOptions?: import("
|
11
|
+
readonly startBuildWorker: (projectCwd: string, entryKey: string, serializedEvolveOptions: string, configLoaderOptions?: import("src/load-config/types.js").ConfigLoaderOptions | undefined) => Promise<import("src/main/start-one-entry-build.js").EvolveBuildResult>;
|
12
12
|
};
|
13
13
|
} & {
|
14
|
-
readonly startBuildWorker: (projectCwd: string, entryKey: string, serializedEvolveOptions: string, configLoaderOptions?: import("
|
14
|
+
readonly startBuildWorker: (projectCwd: string, entryKey: string, serializedEvolveOptions: string, configLoaderOptions?: import("src/load-config/types.js").ConfigLoaderOptions | undefined) => Promise<import("src/main/start-one-entry-build.js").EvolveBuildResult>;
|
15
15
|
})>;
|
16
16
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
import{arrayUnique,urlJoin}from"@flatjs/common";import{attachMockMiddlewares}from"@flatjs/mock";import{createAppPageRoute,createDevServer,createDevServerCompilerTasks,createDevServerEntries}from"../dev-server/index.js";import{openPage}from"../helpers/index.js";import{envVerify}from"./env-verify.js";export const prepareServe=async(e,r,
|
1
|
+
import{arrayUnique,urlJoin}from"@flatjs/common";import{attachMockMiddlewares}from"@flatjs/mock";import{createAppPageRoute,createDevServer,createDevServerCompilerTasks,createDevServerEntries}from"../dev-server/index.js";import{openPage}from"../helpers/index.js";import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{envVerify}from"./env-verify.js";export const prepareServe=async(e,r,o)=>{await envVerify(e,o);const{app:t,devPort:a,devHostUri:i,publicIp:s}=await createDevServer(o),p=o.devServer?.mockOptions?.mockFilters||[];for(const[,e]of Object.entries(r))p.push(...e.options?.mockFilters||[]);await attachMockMiddlewares(t,{...o.devServer?.mockOptions,mockFilters:arrayUnique(p),projectCwd:e});const n=await createDevServerEntries(a,r,o);createAppPageRoute(e,t,i,n,o);const c=normalizePageProxy(o.devServer?.pageProxy||"/pages"),v=urlJoin(i,[c]);o.devServer?.autoOpen&&openPage(v);const m=await createDevServerCompilerTasks(e,v,s,n,o);return Promise.all(m).then((()=>t))};
|
@@ -1 +1 @@
|
|
1
|
-
import{chalk,logger,urlJoin}from"@flatjs/common";import{attachMockMiddlewares}from"@flatjs/mock";import{createAppPageRoute}from"../dev-server/create-app-page-route.js";import{createDevServer}from"../dev-server/create-dev-server.js";import{openPage}from"../helpers/open-page.js";export const prepareStatic=async(e,r)=>{const{app:a,devHostUri:o}=await createDevServer(r);await attachMockMiddlewares(a,{...r.devServer?.mockOptions,projectCwd:e}),createAppPageRoute(e,a,o,{},r);const t=r.devServer?.pageProxy||"/pages",p=urlJoin(o,[t]);r.devServer?.autoOpen&&openPage(p),logger.info(`${"static page".padEnd(12," ")} ➩ ${chalk(["cyan"])(p)}`)};
|
1
|
+
import{chalk,logger,urlJoin}from"@flatjs/common";import{attachMockMiddlewares}from"@flatjs/mock";import{createAppPageRoute}from"../dev-server/create-app-page-route.js";import{createDevServer}from"../dev-server/create-dev-server.js";import{normalizePageProxy}from"../helpers/normalize-page-proxy.js";import{openPage}from"../helpers/open-page.js";export const prepareStatic=async(e,r)=>{const{app:a,devHostUri:o}=await createDevServer(r);await attachMockMiddlewares(a,{...r.devServer?.mockOptions,projectCwd:e}),createAppPageRoute(e,a,o,{},r);const t=normalizePageProxy(r.devServer?.pageProxy||"/pages"),p=urlJoin(o,[t]);r.devServer?.autoOpen&&openPage(p),logger.info(`${"static page".padEnd(12," ")} ➩ ${chalk(["cyan"])(p)}`)};
|
@@ -8,7 +8,7 @@ export declare function getBuildEntryFiles(projectCwd: string, diffFiles: string
|
|
8
8
|
* @returns
|
9
9
|
*/
|
10
10
|
export declare function dynamicCheckBuildEntryMap(projectCwd: string, earlyCommit?: string | null, lastCommit?: string, overrideEvolveOptions?: PartialDeep<FlatEvolveOptions>, configLoaderOptions?: ConfigLoaderOptions): Promise<{
|
11
|
-
buildEntries: import("
|
11
|
+
buildEntries: import("src/index.js").EvolveEntryMap;
|
12
12
|
newEvolveOptions: FlatEvolveOptions;
|
13
13
|
}>;
|
14
14
|
/**
|
@@ -23,6 +23,7 @@ export interface WebpackWatchOptions {
|
|
23
23
|
}
|
24
24
|
export type FlatEvolveDevServerOptions = {
|
25
25
|
/**
|
26
|
+
* must have prefix slash `/`
|
26
27
|
* @default `/pages`
|
27
28
|
*/
|
28
29
|
pageProxy?: string;
|
@@ -46,9 +47,28 @@ export type FlatEvolveDevServerOptions = {
|
|
46
47
|
* @default `(dir)=>dir`
|
47
48
|
* @returns
|
48
49
|
*/
|
49
|
-
bundleDirResolver?: (
|
50
|
+
bundleDirResolver?: (
|
51
|
+
/**
|
52
|
+
* The default normalized dir path
|
53
|
+
*/
|
54
|
+
dir: string,
|
55
|
+
/**
|
56
|
+
* The resolver parameters
|
57
|
+
* @param data.currEntry ddd
|
58
|
+
*/
|
59
|
+
data: {
|
60
|
+
/**
|
61
|
+
* The current entry
|
62
|
+
*/
|
50
63
|
currEntry: string;
|
64
|
+
/**
|
65
|
+
* The project virtual path
|
66
|
+
*/
|
51
67
|
projectVirtualPath: string;
|
68
|
+
/**
|
69
|
+
* The value indicates if current module is `static` or `served` module.
|
70
|
+
*/
|
71
|
+
isServedModule: boolean;
|
52
72
|
}) => string;
|
53
73
|
/**
|
54
74
|
* The value indicates if we will auto open broswers page for `serve`
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@flatjs/evolve",
|
3
|
-
"version": "2.0.
|
3
|
+
"version": "2.1.0-next.0",
|
4
4
|
"license": "MIT",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -18,7 +18,7 @@
|
|
18
18
|
"./templates"
|
19
19
|
],
|
20
20
|
"scripts": {
|
21
|
-
"serve": "yarn
|
21
|
+
"serve": "yarn node --import=@armit/path-alias/register ./tests/dev-server/dev-server.ts",
|
22
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",
|
@@ -34,72 +34,72 @@
|
|
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
|
-
"@armit/worker-threads": "^0.1.
|
43
|
-
"@babel/core": "7.
|
44
|
-
"@flatjs/common": "2.0.
|
45
|
-
"@flatjs/evolve-preset-babel": "2.0.
|
46
|
-
"@flatjs/forge-postcss-plugin-pixel": "2.0.
|
47
|
-
"@flatjs/graph": "2.0.
|
48
|
-
"@flatjs/mock": "2.0.
|
37
|
+
"@armit/babel-merge": "^0.1.5",
|
38
|
+
"@armit/config-loader": "^0.1.6",
|
39
|
+
"@armit/file-utility": "^0.1.4",
|
40
|
+
"@armit/git": "^0.1.4",
|
41
|
+
"@armit/package": "^0.1.5",
|
42
|
+
"@armit/worker-threads": "^0.1.4",
|
43
|
+
"@babel/core": "7.24.3",
|
44
|
+
"@flatjs/common": "2.1.0-next.0",
|
45
|
+
"@flatjs/evolve-preset-babel": "2.1.0-next.0",
|
46
|
+
"@flatjs/forge-postcss-plugin-pixel": "2.1.0-next.0",
|
47
|
+
"@flatjs/graph": "2.1.0-next.0",
|
48
|
+
"@flatjs/mock": "2.1.0-next.0",
|
49
49
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
|
50
50
|
"@types/babel__core": "7.20.5",
|
51
51
|
"babel-loader": "9.1.3",
|
52
52
|
"babel-plugin-import": "1.13.8",
|
53
53
|
"better-opn": "3.0.2",
|
54
54
|
"case-sensitive-paths-webpack-plugin": "2.4.0",
|
55
|
-
"css-loader": "6.
|
56
|
-
"cssnano": "6.
|
57
|
-
"express": "4.
|
55
|
+
"css-loader": "6.10.0",
|
56
|
+
"cssnano": "6.1.2",
|
57
|
+
"express": "4.19.2",
|
58
58
|
"fork-ts-checker-webpack-plugin": "9.0.2",
|
59
|
-
"happy-dom": "
|
59
|
+
"happy-dom": "14.3.10",
|
60
60
|
"html-webpack-plugin": "5.6.0",
|
61
61
|
"image-minimizer-webpack-plugin": "4.0.0",
|
62
62
|
"less": "4.2.0",
|
63
|
-
"less-loader": "12.
|
63
|
+
"less-loader": "12.2.0",
|
64
64
|
"listr": "0.14.3",
|
65
65
|
"lodash": "4.17.21",
|
66
|
-
"mini-css-extract-plugin": "2.
|
67
|
-
"postcss": "8.4.
|
68
|
-
"postcss-loader": "8.
|
66
|
+
"mini-css-extract-plugin": "2.8.1",
|
67
|
+
"postcss": "8.4.38",
|
68
|
+
"postcss-loader": "8.1.1",
|
69
69
|
"react-refresh": "0.14.0",
|
70
70
|
"svgo": "3.2.0",
|
71
71
|
"tarjan-graph": "3.0.0",
|
72
72
|
"terser-webpack-plugin": "5.3.10",
|
73
73
|
"tsconfig-paths-webpack-plugin": "4.1.0",
|
74
|
-
"type-fest": "^4.
|
75
|
-
"typescript": "5.
|
76
|
-
"webpack": "5.
|
74
|
+
"type-fest": "^4.14.0",
|
75
|
+
"typescript": "5.4.3",
|
76
|
+
"webpack": "5.91.0",
|
77
77
|
"webpack-bundle-analyzer": "4.10.1",
|
78
|
-
"webpack-dev-server": "
|
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.
|
83
|
-
"@flatjs/testing": "2.0.
|
84
|
-
"@swc/core": "1.
|
82
|
+
"@armit/eslint-config-bases": "^0.1.5",
|
83
|
+
"@flatjs/testing": "2.1.0-next.0",
|
84
|
+
"@swc/core": "1.4.11",
|
85
85
|
"@types/express": "4.17.21",
|
86
86
|
"@types/listr": "0.14.9",
|
87
|
-
"@types/node": "20.
|
88
|
-
"@vitest/coverage-istanbul": "1.
|
89
|
-
"@vitest/ui": "1.
|
90
|
-
"eslint": "8.
|
87
|
+
"@types/node": "20.12.2",
|
88
|
+
"@vitest/coverage-istanbul": "1.4.0",
|
89
|
+
"@vitest/ui": "1.4.0",
|
90
|
+
"eslint": "8.57.0",
|
91
91
|
"imagemin-gifsicle": "7.0.0",
|
92
92
|
"imagemin-jpegtran": "7.0.0",
|
93
93
|
"imagemin-pngquant": "9.0.2",
|
94
94
|
"imagemin-svgo": "10.0.1",
|
95
95
|
"npm-run-all": "4.1.5",
|
96
|
-
"prettier": "3.2.
|
96
|
+
"prettier": "3.2.5",
|
97
97
|
"react": "18.2.0",
|
98
98
|
"rimraf": "5.0.5",
|
99
|
-
"swc-unplugin-ts": "1.0.
|
100
|
-
"ts-node": "
|
101
|
-
"vite-tsconfig-paths": "4.3.
|
102
|
-
"vitest": "1.
|
99
|
+
"swc-unplugin-ts": "1.0.3",
|
100
|
+
"ts-node": "11.0.0-beta.1",
|
101
|
+
"vite-tsconfig-paths": "4.3.2",
|
102
|
+
"vitest": "1.4.0",
|
103
103
|
"vue-loader": "17.4.2"
|
104
104
|
},
|
105
105
|
"peerDependencies": {
|