diff --git a/src/utils/component.ts b/src/utils/component.ts index 018818b..490c0fc 100644 --- a/src/utils/component.ts +++ b/src/utils/component.ts @@ -73,4 +73,16 @@ export class Component { writeFileSync(address, html) return address } + + /** + * 将 React 元素渲染为其初始 HTML。这 + * 应该只在服务器上使用。 + * React 将返回一个 HTML 字符串。 + * 您可以使用此方法在服务器上生成 HTML 并在初始请求上发送标记, + * 以加快页面加载速度并允许搜索 出 + * 于 SEO 目的而抓取您的页面的引擎。 + * 如果你打电话ReactDOMClient.hydrateRoot()在已经具有此服务器渲染标记的节点上, + * React 将保留它并仅附加事件处理程序,允许您 获得非常高性能的首次加载体验。 + */ + render = renderToString } diff --git a/src/utils/module.ts b/src/utils/module.ts index d818c7c..ca17d9c 100644 --- a/src/utils/module.ts +++ b/src/utils/module.ts @@ -1,20 +1,55 @@ import { createRequire as cRequire } from 'module' import path from 'path' + +const CustomExtensions = [ + // + '.css', + // + '.apng', + '.png', + '.jpg', + '.jpeg', + '.jfif', + '.pjpeg', + '.pjp', + '.gif', + '.svg', + '.ico', + '.webp', + '.avif', + '.mp4', + '.webm', + '.ogg', + '.mp3', + '.wav', + '.flac', + '.aac', + '.opus', + '.mov', + '.m4a', + '.vtt', + '.woff', + '.woff2', + '.eot', + '.ttf', + '.otf' +] + /** * 加载指定资源的本地路径 * @param basePath 引入模块地址 - * @param customExtensions ['.css', '.png', '.jpg', '.less', '.scss'] + * @param customExtensions * @returns */ export function createRequire( basePath: string, - customExtensions = ['.css', '.png', '.jpg', '.less', '.scss'] + customExtensions = CustomExtensions ) { const require = cRequire(basePath) - customExtensions.forEach(ext => { + for (const ext of customExtensions) { require.extensions[ext] = (module, filename) => { module.exports = path.resolve(filename) } - }) + } return require }