Extract backup-node-modules.js

This commit is contained in:
Michelle Tilley 2017-05-17 15:51:19 +02:00
parent effd0f5adf
commit e01721f24a
No known key found for this signature in database
GPG Key ID: CD86C13E51F378DA
3 changed files with 25 additions and 10 deletions

View File

@ -0,0 +1,20 @@
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")
}
fs.copySync(nodeModulesPath, nodeModulesBackupPath)
return function restoreNodeModules() {
if (!fs.existsSync(nodeModulesBackupPath)) {
throw new Error("Cannot restore " + nodeModulesPath + "; " + nodeModulesBackupPath + " does not exist")
}
fs.removeSync(nodeModulesPath)
fs.renameSync(nodeModulesBackupPath, nodeModulesPath)
}
}

View File

@ -6,6 +6,7 @@ const glob = require('glob')
const path = require('path')
const CONFIG = require('../config')
const backupNodeModules = require('./backup-node-modules')
const runApmInstall = require('./run-apm-install')
require('colors')
@ -19,9 +20,7 @@ module.exports = function () {
const metadata = require(metadataPath)
if (metadata.atomTranspilers) {
console.log(' transpiling for package '.cyan + packageName.cyan)
const nodeModulesPath = path.join(packagePath, 'node_modules')
const nodeModulesBackupPath = path.join(packagePath, 'node_modules.bak')
fs.copySync(nodeModulesPath, nodeModulesBackupPath)
const restoreNodeModules = backupNodeModules(packagePath)
runApmInstall(packagePath)
CompileCache.addTranspilerConfigForPath(packagePath, metadata.name, metadata, metadata.atomTranspilers)
@ -30,8 +29,7 @@ module.exports = function () {
pathsToCompile.forEach(transpilePath)
}
fs.removeSync(nodeModulesPath)
fs.renameSync(nodeModulesBackupPath, nodeModulesPath)
restoreNodeModules()
}
}
}

View File

@ -11,6 +11,7 @@ const glob = require('glob')
const path = require('path')
const CONFIG = require('./config')
const backupNodeModules = require('./lib/backup-node-modules')
const runApmInstall = require('./lib/run-apm-install')
const resourcePath = CONFIG.repositoryRootPath
@ -94,11 +95,7 @@ for (let packageName in CONFIG.appMetadata.packageDependencies) {
if (require(pkgJsonPath).atomTestRunner) {
console.log(`Installing test runner dependencies for ${packageName}`.bold.green)
if (fs.existsSync(nodeModulesPath)) {
fs.copySync(nodeModulesPath, nodeModulesBackupPath)
finalize = () => {
fs.removeSync(nodeModulesPath)
fs.renameSync(nodeModulesBackupPath, nodeModulesPath)
}
finalize = backupNodeModules(repositoryPackagePath)
} else {
finalize = () => fs.removeSync(nodeModulesPath)
}