From b56be6b3f5996eafeeb607c12b5378cb8566acae Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Wed, 12 Jan 2022 21:23:00 +0800 Subject: [PATCH] wip(app): nvue --- packages/uni-app-vite/src/nvue/index.ts | 2 ++ .../uni-app-vite/src/nvue/plugins/esbuild.ts | 30 +++++++++++++++++++ packages/uni-cli-shared/src/esbuild.ts | 6 ++++ 3 files changed, 38 insertions(+) create mode 100644 packages/uni-app-vite/src/nvue/plugins/esbuild.ts diff --git a/packages/uni-app-vite/src/nvue/index.ts b/packages/uni-app-vite/src/nvue/index.ts index 36e9eae4b..d1e1b597d 100644 --- a/packages/uni-app-vite/src/nvue/index.ts +++ b/packages/uni-app-vite/src/nvue/index.ts @@ -8,6 +8,7 @@ import { import { uniEasycomPlugin } from '../plugins/easycom' import { uniManifestJsonPlugin } from '../plugins/manifestJson' import { uniAppNVuePlugin } from './plugin' +import { uniEsbuildPlugin } from './plugins/esbuild' import { uniMainJsPlugin } from './plugins/mainJs' import { uniPagesJsonPlugin } from './plugins/pagesJson' @@ -20,5 +21,6 @@ export function initNVuePlugins() { uniPagesJsonPlugin(), uniViteInjectPlugin('uni:app-inject', initAppProvide()), uniAppNVuePlugin(), + uniEsbuildPlugin(), ] } diff --git a/packages/uni-app-vite/src/nvue/plugins/esbuild.ts b/packages/uni-app-vite/src/nvue/plugins/esbuild.ts new file mode 100644 index 000000000..5f3522ebf --- /dev/null +++ b/packages/uni-app-vite/src/nvue/plugins/esbuild.ts @@ -0,0 +1,30 @@ +import { esbuild } from '@dcloudio/uni-cli-shared' +import type { Plugin } from 'vite' +import { nvueOutDir } from '../../utils' + +export function uniEsbuildPlugin(): Plugin { + return { + name: 'uni:app-nvue-esbuild', + enforce: 'post', + async writeBundle(_, bundle) { + const entryPoints: string[] = [] + Object.keys(bundle).forEach((name) => { + const chunk = bundle[name] + if ( + chunk.type === 'chunk' && + chunk.facadeModuleId && + chunk.facadeModuleId.endsWith('.nvue') + ) { + entryPoints.push(name) + } + }) + await esbuild({ + absWorkingDir: nvueOutDir(), + entryPoints, + bundle: true, + external: ['vue'], + outdir: process.env.UNI_OUTPUT_DIR, + }) + }, + } +} diff --git a/packages/uni-cli-shared/src/esbuild.ts b/packages/uni-cli-shared/src/esbuild.ts index 6041aaf37..e16bee197 100644 --- a/packages/uni-cli-shared/src/esbuild.ts +++ b/packages/uni-cli-shared/src/esbuild.ts @@ -14,3 +14,9 @@ export function transformWithEsbuild( return esbuild.build(options) }) } + +export function esbuild(options: BuildOptions) { + return import('esbuild').then((esbuild) => { + return esbuild.build(options) + }) +} -- GitLab