diff --git a/packages/uni-mp-vite/src/index.ts b/packages/uni-mp-vite/src/index.ts index 1aaaf55a6cdc09a864a928b9b66335bb96967aed..c958be4c5479d02d38911a3ab07da69817b59238 100644 --- a/packages/uni-mp-vite/src/index.ts +++ b/packages/uni-mp-vite/src/index.ts @@ -7,8 +7,8 @@ export { UniMiniProgramPluginOptions } from './plugin' export default (options: UniMiniProgramPluginOptions) => { return [ uniMainJsPlugin(options), - uniManifestJsonPlugin(), - uniPagesJsonPlugin(), + uniManifestJsonPlugin(options), + uniPagesJsonPlugin(options), uniVirtualPlugin(options), uniMiniProgramPlugin(options), ] diff --git a/packages/uni-mp-vite/src/plugin/index.ts b/packages/uni-mp-vite/src/plugin/index.ts index ef487a229b259420e84d5cf1e56f0da1cdd7dcbd..101b371a9f1783a4040e3a20baf75c0826dca23c 100644 --- a/packages/uni-mp-vite/src/plugin/index.ts +++ b/packages/uni-mp-vite/src/plugin/index.ts @@ -3,6 +3,7 @@ import debug from 'debug' import fs from 'fs-extra' import { AliasOptions } from 'vite' import { + CopyOptions, EXTNAME_VUE_RE, normalizeNodeModules, resolveBuiltIn, @@ -18,6 +19,7 @@ const debugMp = debug('vite:uni:mp') export interface UniMiniProgramPluginOptions { vite: { alias: AliasOptions + copyOptions: CopyOptions } global: string app: { @@ -26,6 +28,7 @@ export interface UniMiniProgramPluginOptions { } project: { filename: string + source: Record } template: { extname: string @@ -50,7 +53,7 @@ export function uniMiniProgramPlugin( options: UniMiniProgramPluginOptions ): UniVitePlugin { const { - vite: { alias }, + vite: { alias, copyOptions }, template, } = options const emitFile: (emittedFile: EmittedFile) => string = (emittedFile) => { @@ -70,7 +73,10 @@ export function uniMiniProgramPlugin( } return { name: 'vite:uni-mp', - uni: uniOptions({ emitFile }), + uni: uniOptions({ + copyOptions, + miniProgram: { emitFile }, + }), config() { return { resolve: { diff --git a/packages/uni-mp-vite/src/plugin/uni/index.ts b/packages/uni-mp-vite/src/plugin/uni/index.ts index f2539197462840de1973657159793697f340346a..224052a37df708bffc0ee12f3c848638f7add0b1 100644 --- a/packages/uni-mp-vite/src/plugin/uni/index.ts +++ b/packages/uni-mp-vite/src/plugin/uni/index.ts @@ -3,15 +3,22 @@ import { isServiceCustomElement, } from '@dcloudio/uni-shared' import { EmittedFile } from 'rollup' -import { UniVitePlugin } from '@dcloudio/uni-cli-shared' +import { CopyOptions, UniVitePlugin } from '@dcloudio/uni-cli-shared' import { TemplateCompiler } from '@vue/compiler-sfc' import * as compiler from '@dcloudio/uni-mp-compiler' -export function uniOptions(miniProgram: { - emitFile?: (emittedFile: EmittedFile) => string +export function uniOptions({ + copyOptions, + miniProgram, +}: { + copyOptions: CopyOptions + miniProgram: { + emitFile?: (emittedFile: EmittedFile) => string + } }): UniVitePlugin['uni'] { return { + copyOptions, compiler: compiler as TemplateCompiler, compilerOptions: { miniProgram, diff --git a/packages/uni-mp-vite/src/plugins/manifestJson.ts b/packages/uni-mp-vite/src/plugins/manifestJson.ts index 9fc6e54e52d7480870a59aaf260b048df89106a9..7073dee4c8c4cfb6251ecf3aa188b48a2ca9f6fa 100644 --- a/packages/uni-mp-vite/src/plugins/manifestJson.ts +++ b/packages/uni-mp-vite/src/plugins/manifestJson.ts @@ -4,18 +4,17 @@ import { Plugin } from 'vite' import { defineUniManifestJsonPlugin, getLocaleFiles, - // normalizeAppManifestJson, - // parseJson, - // parsePagesJsonOnce, } from '@dcloudio/uni-cli-shared' +import { UniMiniProgramPluginOptions } from '../plugin' -export function uniManifestJsonPlugin(): Plugin { - // let manifestJson: Record +export function uniManifestJsonPlugin( + options: UniMiniProgramPluginOptions +): Plugin { return defineUniManifestJsonPlugin((opts) => { return { name: 'vite:uni-mp-manifest-json', enforce: 'pre', - transform(code, id) { + transform(_code, id) { if (!opts.filter(id)) { return } diff --git a/packages/uni-mp-vite/src/plugins/pagesJson.ts b/packages/uni-mp-vite/src/plugins/pagesJson.ts index 617687deac5d5515d64bb42a5c0032ad131383e1..4e98d9600cad98976f1fdcecbecd730dfd972a8c 100644 --- a/packages/uni-mp-vite/src/plugins/pagesJson.ts +++ b/packages/uni-mp-vite/src/plugins/pagesJson.ts @@ -8,8 +8,11 @@ import { normalizePagePath, } from '@dcloudio/uni-cli-shared' import { virtualPagePath } from './virtual' +import { UniMiniProgramPluginOptions } from '../plugin' -export function uniPagesJsonPlugin(): Plugin { +export function uniPagesJsonPlugin( + options: UniMiniProgramPluginOptions +): Plugin { let pagesJson: UniApp.PagesJson return defineUniPagesJsonPlugin((opts) => { return { diff --git a/packages/uni-mp-weixin/dist/uni.compiler.js b/packages/uni-mp-weixin/dist/uni.compiler.js index 34e8dae63e3a384715d3d904313acb59e712b858..8a044218954521a787777b2baca152de1c5e56f0 100644 --- a/packages/uni-mp-weixin/dist/uni.compiler.js +++ b/packages/uni-mp-weixin/dist/uni.compiler.js @@ -7,6 +7,55 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau var initMiniProgramPlugin__default = /*#__PURE__*/_interopDefaultLegacy(initMiniProgramPlugin); +var description = "项目配置文件。"; +var packOptions = { + ignore: [ + ] +}; +var setting = { + urlCheck: true, + es6: false, + postcss: false, + minified: false, + newFeature: true +}; +var compileType = "miniprogram"; +var libVersion = ""; +var appid = "touristappid"; +var projectname = ""; +var condition = { + search: { + current: -1, + list: [ + ] + }, + conversation: { + current: -1, + list: [ + ] + }, + game: { + current: -1, + list: [ + ] + }, + miniprogram: { + current: -1, + list: [ + ] + } +}; +var source = { + description: description, + packOptions: packOptions, + setting: setting, + compileType: compileType, + libVersion: libVersion, + appid: appid, + projectname: projectname, + condition: condition +}; + const uniMiniProgramWeixinPlugin = { name: 'vite:uni-mp-weixin', config() { @@ -17,11 +66,30 @@ const uniMiniProgramWeixinPlugin = { }; }, }; +const projectConfigFilename = 'project.config.json'; const options = { vite: { alias: { 'uni-mp-runtime': uniCliShared.resolveBuiltIn('@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js'), }, + copyOptions: { + assets: ['wxcomponents'], + targets: [ + { + src: [ + 'theme.json', + 'sitemap.json', + 'ext.json', + 'custom-tab-bar', + 'functional-pages', + projectConfigFilename, + ], + get dest() { + return process.env.UNI_OUTPUT_DIR; + }, + }, + ], + }, }, global: 'wx', app: { @@ -29,7 +97,8 @@ const options = { subpackages: true, }, project: { - filename: 'project.config.json', + filename: projectConfigFilename, + source, }, template: { extname: '.wxml', diff --git a/packages/uni-mp-weixin/src/plugin/index.ts b/packages/uni-mp-weixin/src/plugin/index.ts index 244819e6a8b37d95e7df4ff5ffbb72300c29e613..21027dbdca86e24fd276ae495472726043bc3a2d 100644 --- a/packages/uni-mp-weixin/src/plugin/index.ts +++ b/packages/uni-mp-weixin/src/plugin/index.ts @@ -4,6 +4,8 @@ import initMiniProgramPlugin, { UniMiniProgramPluginOptions, } from '@dcloudio/uni-mp-vite' +import source from './project.config.json' + const uniMiniProgramWeixinPlugin: Plugin = { name: 'vite:uni-mp-weixin', config() { @@ -15,6 +17,8 @@ const uniMiniProgramWeixinPlugin: Plugin = { }, } +const projectConfigFilename = 'project.config.json' + const options: UniMiniProgramPluginOptions = { vite: { alias: { @@ -22,6 +26,24 @@ const options: UniMiniProgramPluginOptions = { '@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js' ), }, + copyOptions: { + assets: ['wxcomponents'], + targets: [ + { + src: [ + 'theme.json', + 'sitemap.json', + 'ext.json', + 'custom-tab-bar', + 'functional-pages', + projectConfigFilename, + ], + get dest() { + return process.env.UNI_OUTPUT_DIR + }, + }, + ], + }, }, global: 'wx', app: { @@ -29,7 +51,8 @@ const options: UniMiniProgramPluginOptions = { subpackages: true, }, project: { - filename: 'project.config.json', + filename: projectConfigFilename, + source, }, template: { extname: '.wxml', diff --git a/packages/uni-mp-weixin/src/plugin/project.config.json b/packages/uni-mp-weixin/src/plugin/project.config.json new file mode 100644 index 0000000000000000000000000000000000000000..4b015db77f56655d884d49a952391afd3ee752b1 --- /dev/null +++ b/packages/uni-mp-weixin/src/plugin/project.config.json @@ -0,0 +1,35 @@ +{ + "description": "项目配置文件。", + "packOptions": { + "ignore": [] + }, + "setting": { + "urlCheck": true, + "es6": false, + "postcss": false, + "minified": false, + "newFeature": true + }, + "compileType": "miniprogram", + "libVersion": "", + "appid": "touristappid", + "projectname": "", + "condition": { + "search": { + "current": -1, + "list": [] + }, + "conversation": { + "current": -1, + "list": [] + }, + "game": { + "current": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [] + } + } +}