Files
vue-cli/packages/@vue/cli/lib/util/loadRemotePreset.js

25 lines
663 B
JavaScript

const fs = require('fs-extra')
const loadPresetFromDir = require('./loadPresetFromDir')
module.exports = async function fetchRemotePreset (name, clone) {
const os = require('os')
const path = require('path')
const download = require('download-git-repo')
const tmpdir = path.join(os.tmpdir(), 'vue-cli')
// clone will fail if tmpdir already exists
// https://github.com/flipxfx/download-git-repo/issues/41
if (clone) {
await fs.remove(tmpdir)
}
await new Promise((resolve, reject) => {
download(name, tmpdir, { clone }, err => {
if (err) return reject(err)
resolve()
})
})
return await loadPresetFromDir(tmpdir)
}