提交 b56be6b3 编写于 作者: fxy060608's avatar fxy060608

wip(app): nvue

上级 1094a63f
......@@ -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(),
]
}
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,
})
},
}
}
......@@ -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)
})
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册