Skip to content

Commit

Permalink
feat: 改同步为异步
Browse files Browse the repository at this point in the history
  • Loading branch information
yangpu committed Aug 31, 2020
1 parent 930224e commit 7cbcaae
Showing 1 changed file with 52 additions and 25 deletions.
77 changes: 52 additions & 25 deletions packages/root-html-file/public/generate-app.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,45 @@
const path = require('path')
const fs = require('fs')
const fs = require('fs');
const root = process.cwd()
console.log(`当前工作目录是: ${root}`);
function readDir(root) {

const callback = (resolve, reject) => (err, data) => err ? reject(err) : resolve(data)

const createPromise = (func) => (...args) => {
return new Promise((resolve, reject) => {
func(...args, callback(resolve, reject))
})
}



main(root)

/**
* 读取文件夹的路径
* @param {*} root
*/
async function readDir(root) {
const manifests = []
const files = fs.readdirSync(root)
console.log(files)
files.forEach(i => {
const statPromise = createPromise(fs.stat)
for (let i of files) {
const filePath = path.resolve(root, '.', i)
const stat = fs.statSync(filePath);
const stat = await statPromise(filePath);
const is_direc = stat.isDirectory();

if (is_direc) {
manifests.push(filePath)
}
}

})
return manifests
}


/**
* 读取json
* @param {*} files
*/
function readManifests(files) {
const jsons = {}
files.forEach(i => {
Expand All @@ -36,11 +56,16 @@ function readManifests(files) {
}



function generateFile(jsons) {
/**
* 生成文件
* @param {}} jsons
*/
async function generateFile(jsons) {
const { apps } = require('./app.config.json')
const { imports } = require('./importmap.json')

const writeFilePromise = createPromise(fs.writeFile)


Object.keys(jsons).forEach(key => {
imports[key] = jsons[key]
Expand All @@ -55,29 +80,31 @@ function generateFile(jsons) {
})



fs.writeFileSync('./importmap.json', JSON.stringify(
{
imports
}
))

fs.writeFileSync('./app.config.json', JSON.stringify(
{
apps
}
))
Promise.all([
writeFilePromise('./importmap.json', JSON.stringify(
{
imports
}
)),
writeFilePromise('./app.config.json', JSON.stringify(
{
apps
}
))
])

}


async function main(root) {
const dir = await readDir(root)
const jsons = readManifests(dir)
await generateFile(jsons)
console.log('生成配置文件成功')
}

const dir = readDir(root)

const jsons = readManifests(dir)

generateFile(jsons)

console.log('生成配置文件成功')


0 comments on commit 7cbcaae

Please sign in to comment.