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

wip(mp): copy assets

上级 4d8c4abf
......@@ -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),
]
......
......@@ -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<string, unknown>
}
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: {
......
......@@ -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,
......
......@@ -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<string, any>
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
}
......
......@@ -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 {
......
......@@ -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',
......
......@@ -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',
......
{
"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": []
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册