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

feat(mp-weixin): keep project.private.config.json

import { emptyDirSync } from 'fs-extra'
export function emptyDir(dir: string): void {
return emptyDirSync(dir)
import { resolve } from 'path'
import { emptyDirSync, lstatSync, readdirSync, unlinkSync } from 'fs-extra'
import { rmdirSync } from 'fs'
export function emptyDir(dir: string, skip: string[] = []) {
for (const file of readdirSync(dir)) {
if (skip.includes(file)) {
continue
}
const abs = resolve(dir, file)
// baseline is Node 12 so can't use rmSync :(
if (lstatSync(abs).isDirectory()) {
emptyDirSync(abs)
rmdirSync(abs)
} else {
unlinkSync(abs)
}
}
}
......@@ -34,7 +34,7 @@ export function buildOptions(): UserConfig['build'] {
const outputDir = process.env.UNI_OUTPUT_DIR
// 开始编译时,清空输出目录
if (fs.existsSync(outputDir)) {
emptyDir(outputDir)
emptyDir(outputDir, ['project.config.json', 'project.private.config.json'])
}
return createBuildOptions(inputDir, platform)
}
......
......@@ -179,6 +179,7 @@ const options = {
'ext.json',
'custom-tab-bar',
'functional-pages',
'project.private.config.json',
projectConfigFilename,
],
get dest() {
......
......@@ -7,17 +7,16 @@ const bindings = !!bindingsOverride
? require(resolve(bindingsOverride))
: require('./binding').default
export function toKotlin(options: UtsKotlinOptions): Promise<UtsResult> {
const result = Promise.resolve({})
function resolveOptions(options: UtsKotlinOptions | UtsSwiftOptions) {
const { input, output } = options
if (!input?.root) {
return result
return
}
if (!input?.filename) {
return result
return
}
if (!output?.outDir) {
return result
return
}
if (output.sourceMap === true) {
output.sourceMap = output.outDir
......@@ -33,15 +32,26 @@ export function toKotlin(options: UtsKotlinOptions): Promise<UtsResult> {
input.filename = normalizePath(input.filename)
output.outDir = normalizePath(output.outDir)
output.sourceMap = normalizePath(output.sourceMap)
return options
}
export function toKotlin(options: UtsKotlinOptions): Promise<UtsResult> {
const kotlinOptions = resolveOptions(options)
if (!kotlinOptions) {
return Promise.resolve({})
}
return bindings
.toKotlin(toBuffer(options))
.toKotlin(toBuffer(kotlinOptions))
.then((res: string) => JSON.parse(res))
}
export function toSwift(options: UtsSwiftOptions): Promise<UtsResult> {
const swiftOptions = resolveOptions(options)
if (!swiftOptions) {
return Promise.resolve({})
}
return bindings
.toSwift(toBuffer(options))
.toSwift(toBuffer(swiftOptions))
.then((res: string) => JSON.parse(res))
}
......
......@@ -35,8 +35,12 @@ export interface UtsKotlinOptions {
output: OutputKotlinOptions
}
export type InputSwiftOptions = UtsParseOptions
export type OutputSwiftOptions = {}
export type InputSwiftOptions = UtsParseOptions & {
root: string
filename: string
}
export type OutputSwiftOptions = OutputKotlinOptions
export interface UtsSwiftOptions {
input: InputSwiftOptions
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册