gmove
Version:
小程序转换器,基于支付宝/微信小程序转换为多端小程序,让小程序跨平台开发变得简单。init from antmove@1.2.2
77 lines (73 loc) • 1.92 kB
JavaScript
const path = require('path')
const exec = require('child_process').execSync
const fs = require('fs-extra')
const { comStores } = require('@antmove/utils')
function recordOptions(options, _input, _output) {
if (!options.input || !options.output || !options.type) {
return
}
const configPath = path.join(options.input, './antmove.config.js')
options = JSON.parse(JSON.stringify(options))
const ifNpm = getLastVersion(options)
if (ifNpm) {
options.npm = getLastVersion(options)
}
options.input = _input
options.output = _output
delete options.remote
delete options.defaultInput
options = JSON.stringify(options, null, 4)
const _options = `module.exports = ${options}`
fs.outputFileSync(configPath, _options)
}
function getLastVersion(options) {
const packJsonPath = path.join(options.input, './package.json')
const isExist = fs.existsSync(packJsonPath)
if (!isExist) {
return false
}
const obj = {}
let code = ''
let ifVant = false
let _obj = {}
code = fs.readFileSync(packJsonPath)
code = code.toString()
code = JSON.parse(code)
Object.keys(code).forEach((name) => {
if (name === 'dependencies' || name === 'devDependencies') {
_obj = { ..._obj, ...code[name] }
}
})
Object.keys(_obj).forEach((name) => {
if (name === 'vant-weapp') {
ifVant = true
}
})
if (!ifVant) {
return false
}
Object.keys(comStores).forEach((key) => {
const version = exec(`npm view ${comStores[key]} version`)
.toString()
.replace(/\n|\r|\t/, '')
obj[key] = {
name: comStores[key],
version,
}
})
return obj
}
function returnOptions(res) {
const _path = path.join(res, './antmove.config.js')
const isExist = fs.existsSync(_path)
if (isExist) {
const _options = require(_path)
return _options
} else {
return false
}
}
module.exports = {
recordOptions,
returnOptions,
}