UNPKG

@vue/cli

Version:

Command line interface for rapid Vue.js development

36 lines (32 loc) 1.07 kB
const fs = require('fs-extra') const path = require('path') function deleteRemovedFiles (directory, newFiles, previousFiles) { // get all files that are not in the new filesystem and are still existing const filesToDelete = Object.keys(previousFiles) .filter(filename => !newFiles[filename]) // delete each of these files return Promise.all(filesToDelete.map(filename => { return fs.unlink(path.join(directory, filename)) })) } /** * * @param {string} dir * @param {Record<string,string|Buffer>} files * @param {Record<string,string|Buffer>} [previousFiles] * @param {Set<string>} [include] */ module.exports = async function writeFileTree (dir, files, previousFiles, include) { if (process.env.VUE_CLI_SKIP_WRITE) { return } if (previousFiles) { await deleteRemovedFiles(dir, files, previousFiles) } Object.keys(files).forEach((name) => { if (include && !include.has(name)) return const filePath = path.join(dir, name) fs.ensureDirSync(path.dirname(filePath)) fs.writeFileSync(filePath, files[name]) }) }