first commit

This commit is contained in:
2026-09-08 20:28:54 +08:00
commit 2ada8d3d5a
37380 changed files with 4886169 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
const ATTRS = {
'name': 'name',
'versionName': 'versionName',
'versionCode': 'versionCode'
}
function merge(to, from) {
Object.keys(ATTRS).forEach(name => {
if (!to[name]) {
to[name] = from[name]
}
})
}
module.exports = function parseBase(manifest, manifestJson) {
merge(manifest, manifestJson)
manifest.versionCode = parseInt(manifest.versionCode) || 1
if (!manifest.package) {
manifest.package = manifest.name || 'Bundle'
}
if (!manifest.config) {
manifest.config = {}
}
if (!manifest.config.dsl) {
manifest.config.dsl = {}
}
manifest.config.dsl.name = 'vue'
return manifest
}
@@ -0,0 +1,67 @@
const PLATFORMS = [
'h5',
'app-plus',
'mp-weixin',
'mp-qq',
'mp-baidu',
'mp-alipay',
'mp-jd',
'mp-xhs',
'mp-toutiao',
'quickapp-native'
]
const DISPLAY = {
'navigationBarBackgroundColor': 'titleBarBackgroundColor',
'navigationBarTextStyle': (style, val) => {
if (val === 'black') {
style.titleBarTextColor = '#000000'
style.statusBarTextStyle = 'dark'
} else {
style.titleBarTextColor = '#ffffff'
style.statusBarTextStyle = 'light'
}
},
'navigationBarTitleText': 'titleBarText',
'navigationStyle': (style, val) => {
if (val === 'custom') {
style.titleBar = false
}
}
}
function parseStyle(style = {}) {
const ret = {}
Object.keys(style).forEach(name => {
if (!PLATFORMS.includes(name)) {
const transform = DISPLAY[name]
if (transform) {
if (typeof transform === 'string') {
ret[transform] = style[name]
} else if (typeof transform === 'function') {
transform(ret, style[name])
}
} else {
ret[name] = style[name]
}
}
})
if (style['quickapp-native']) {
Object.assign(ret, style['quickapp-native'])
}
return ret
}
module.exports = function parseDisplay(manifest, pages, globalStyle = {}) {
const display = {
pages: {}
}
// globalStyle
Object.assign(display, parseStyle(globalStyle))
pages.forEach(page => {
const key = page.path.substr(0, page.path.lastIndexOf('/'))
display.pages[key] = parseStyle(page.style)
})
manifest.display = display
}
@@ -0,0 +1,16 @@
const fs = require('fs')
const path = require('path')
module.exports = function parseEntry(pages) {
const entry = {
'app': path.resolve(process.env.UNI_INPUT_DIR, 'main.js')
}
pages.forEach(page => {
const filepath = path.resolve(process.env.UNI_INPUT_DIR, page.path)
if (fs.existsSync(filepath + '.nvue')) {
entry[page.path] = filepath + '.nvue?uxType=page'
} else {
entry[page.path] = filepath + '.vue?uxType=page'
}
})
return entry
}
+46
View File
@@ -0,0 +1,46 @@
const parseBase = require('./base-parser')
const parsePages = require('./pages-parser')
const parseDisplay = require('./display-parser')
const parseEntry = require('./entry-parser')
function getPages(pagesJson) {
const ret = pagesJson.pages
const subPackages = pagesJson.subPackages
if (!subPackages || !subPackages.length) {
return ret
}
subPackages.forEach(({
root,
pages
}) => {
if (!Array.isArray(pages)) {
return
}
pages.forEach(page => {
page.path = root + '/' + page.path
ret.push(page)
})
})
return ret
}
module.exports = function(pagesJson, manifestJson, loader) {
const manifest = manifestJson['quickapp-native'] || {}
parseBase(manifest, manifestJson)
const pages = getPages(pagesJson)
parsePages(manifest, pages)
parseDisplay(manifest, pages, pagesJson.globalStyle)
process.UNI_ENTRY = parseEntry(pages)
global.framework.manifest = manifest
loader && loader.emitFile('manifest.json', JSON.stringify(manifest))
return ''
}
@@ -0,0 +1,15 @@
module.exports = function parsePages(manifest, pages) {
const entryPagePath = pages[0].path
const router = {
entry: entryPagePath.substr(0, entryPagePath.lastIndexOf('/')),
pages: {}
}
pages.forEach(page => {
const lastIndex = page.path.lastIndexOf('/')
const key = page.path.substr(0, lastIndex)
router.pages[key] = {
component: page.path.substr(lastIndex + 1)
}
})
manifest.router = router
}