diff --git a/script/build b/script/build index acc54cdac..55cebe96d 100755 --- a/script/build +++ b/script/build @@ -28,6 +28,7 @@ const argv = yargs const checkChromedriverVersion = require('./lib/check-chromedriver-version') const cleanOutputDirectory = require('./lib/clean-output-directory') +const cleanPackageLock = require('./lib/clean-package-lock') const codeSignOnMac = require('./lib/code-sign-on-mac') const codeSignOnWindows = require('./lib/code-sign-on-windows') const compressArtifacts = require('./lib/compress-artifacts') @@ -58,6 +59,7 @@ const CONFIG = require('./config') let binariesPromise = Promise.resolve() if (!argv.existingBinaries) { + cleanPackageLock() checkChromedriverVersion() cleanOutputDirectory() copyAssets() diff --git a/script/lib/clean-package-lock.js b/script/lib/clean-package-lock.js new file mode 100644 index 000000000..01376c9c5 --- /dev/null +++ b/script/lib/clean-package-lock.js @@ -0,0 +1,18 @@ +// This module exports a function that deletes all `package-lock.json` files that do +// not exist under a `node_modules` directory. + +'use strict' + +const CONFIG = require('../config') +const fs = require('fs-extra') +const glob = require('glob') +const path = require('path') + +module.exports = function () { + console.log('Deleting problematic package-lock.json files') + let paths = glob.sync(path.join(CONFIG.repositoryRootPath, '**', 'package-lock.json'), {ignore: path.join('**', 'node_modules', '**')}) + + for (let path of paths) { + fs.unlinkSync(path) + } +}