mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 15:37:46 +03:00
55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
const fs = require('fs-extra');
|
|
const path = require('path');
|
|
|
|
module.exports = function(packagePath) {
|
|
const nodeModulesPath = path.join(packagePath, 'node_modules');
|
|
const nodeModulesBackupPath = path.join(packagePath, 'node_modules.bak');
|
|
|
|
if (fs.existsSync(nodeModulesBackupPath)) {
|
|
throw new Error(
|
|
'Cannot back up ' +
|
|
nodeModulesPath +
|
|
'; ' +
|
|
nodeModulesBackupPath +
|
|
' already exists'
|
|
);
|
|
}
|
|
|
|
// some packages may have no node_modules after deduping, but we still want
|
|
// to "back-up" and later restore that fact
|
|
if (!fs.existsSync(nodeModulesPath)) {
|
|
const msg =
|
|
'Skipping backing up ' + nodeModulesPath + ' as it does not exist';
|
|
console.log(msg.gray);
|
|
|
|
const restore = function stubRestoreNodeModules() {
|
|
if (fs.existsSync(nodeModulesPath)) {
|
|
fs.removeSync(nodeModulesPath);
|
|
}
|
|
};
|
|
|
|
return { restore, nodeModulesPath, nodeModulesBackupPath };
|
|
}
|
|
|
|
fs.copySync(nodeModulesPath, nodeModulesBackupPath);
|
|
|
|
const restore = function restoreNodeModules() {
|
|
if (!fs.existsSync(nodeModulesBackupPath)) {
|
|
throw new Error(
|
|
'Cannot restore ' +
|
|
nodeModulesPath +
|
|
'; ' +
|
|
nodeModulesBackupPath +
|
|
' does not exist'
|
|
);
|
|
}
|
|
|
|
if (fs.existsSync(nodeModulesPath)) {
|
|
fs.removeSync(nodeModulesPath);
|
|
}
|
|
fs.renameSync(nodeModulesBackupPath, nodeModulesPath);
|
|
};
|
|
|
|
return { restore, nodeModulesPath, nodeModulesBackupPath };
|
|
};
|