summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2017-12-09 14:14:04 +0100
committerPierre Ossman <ossman@cendio.se>2018-01-05 16:17:29 +0100
commitbe7b4e88f003cea6f90b67a3d347b30272fb7512 (patch)
tree7be3ed8df33d8cf51b401554320dc6eaf8a90d17
parent2163326888129b34f9dc2b836b03985bc4fab0e2 (diff)
downloadnovnc-be7b4e88f003cea6f90b67a3d347b30272fb7512.tar.gz
Remove intermediate files when bundling
-rwxr-xr-xutils/use_require.js27
-rw-r--r--utils/use_require_helpers.js1
2 files changed, 27 insertions, 1 deletions
diff --git a/utils/use_require.js b/utils/use_require.js
index 2e1e2d0..cfac079 100755
--- a/utils/use_require.js
+++ b/utils/use_require.js
@@ -60,7 +60,9 @@ const readdir = promisify(fs.readdir);
const lstat = promisify(fs.lstat);
const copy = promisify(fse.copy);
+const unlink = promisify(fse.unlink);
const ensureDir = promisify(fse.ensureDir);
+const rmdir = promisify(fse.rmdir);
const babelTransformFile = promisify(babel.transformFile);
@@ -133,6 +135,8 @@ var make_lib_files = function (import_format, source_maps, with_app_dir) {
const helpers = require('./use_require_helpers');
const helper = helpers[import_format];
+ const outFiles = [];
+
var handleDir = (js_only, vendor_rewrite, in_path_base, filename) => Promise.resolve()
.then(() => {
if (no_copy_files.has(filename)) return;
@@ -173,10 +177,12 @@ var make_lib_files = function (import_format, source_maps, with_app_dir) {
// append URL for external source map
code += `\n//# sourceMappingURL=${path.basename(out_path)}.map\n`;
}
+ outFiles.push(`${out_path}`);
return writeFile(out_path, code)
.then(() => {
if (source_maps === true || source_maps === 'both') {
console.log(` and ${out_path}.map`);
+ outFiles.push(`${out_path}.map`);
return writeFile(`${out_path}.map`, JSON.stringify(map));
}
});
@@ -215,7 +221,26 @@ var make_lib_files = function (import_format, source_maps, with_app_dir) {
const out_app_path = path.join(out_path_base, 'app.js');
console.log(`Writing ${out_app_path}`);
return helper.appWriter(out_path_base, out_app_path)
- .then(transform_html);
+ .then(transform_html)
+ .then(() => {
+ if (!helper.removeModules) return;
+ console.log(`Cleaning up temporary files...`);
+ return Promise.all(outFiles.map(filepath => {
+ unlink(filepath)
+ .then(() => {
+ // Try to clean up any empty directories if this
+ // was the last file in there
+ let rmdir_r = dir => {
+ return rmdir(dir)
+ .then(() => rmdir_r(path.dirname(dir)))
+ .catch(() => {
+ // Assume the error was ENOTEMPTY and ignore it
+ });
+ };
+ return rmdir_r(path.dirname(filepath));
+ });
+ }));
+ });
})
.catch((err) => {
console.error(`Failure converting modules: ${err}`);
diff --git a/utils/use_require_helpers.js b/utils/use_require_helpers.js
index 6659854..d9138ba 100644
--- a/utils/use_require_helpers.js
+++ b/utils/use_require_helpers.js
@@ -44,6 +44,7 @@ module.exports = {
.then(() => `<script src="${path.relative(base_out_path, out_path)}"></script>`);
},
noCopyOverride: () => {},
+ removeModules: true,
},
'systemjs': {
appWriter: (base_out_path, out_path) => {