universal-webpack
Version:
Isomorphic Webpack
32 lines (25 loc) • 1.39 kB
JavaScript
import path from 'path';
import fs from 'fs-extra'; // Creates (or cleans) the server-side build folder.
//
// That's needed because Nodemon, for example,
// needs the folder to exist by the time it runs,
// otherwise it won't detect any changes to the code
// and therefore won't restart on code changes.
//
export default function prepare(settings, project_base_path) {
// By default, Webpack sets `.context` to `process.cwd()`
var base_path = project_base_path || process.cwd();
if (!settings.server.output) {
throw new Error('`settings.server.output` not specified');
}
var server_build_bundle_path = path.resolve(base_path, settings.server.output);
var server_build_folder = path.dirname(server_build_bundle_path); // Extra caution to prevent data loss
if (server_build_folder === path.normalize(base_path)) {
throw new Error('`settings.server.output` "' + server_build_folder + '" points to the project root folder. Won\'t clear that folder to prevent accidental data loss.');
} // Extra caution to prevent data loss
if (server_build_folder.indexOf(base_path) !== 0) {
throw new Error('`settings.server.output` "' + server_build_folder + '" points outside of the project root folder "' + base_path + '". Won\'t clear that folder to prevent accidental data loss');
}
fs.emptyDirSync(server_build_folder);
}
//# sourceMappingURL=prepare.js.map