fix: detect lerna version in dependencies or devDependencies

This commit is contained in:
Rhys Arkins
2018-02-06 10:56:21 +01:00
parent 95289592a0
commit 6d7bbaefcc
+8 -5
View File
@@ -10,17 +10,20 @@ async function generateLockFiles(manager, tmpDir, env) {
let stderr;
try {
const startTime = process.hrtime();
let lernaVersion = 'latest';
let lernaVersion;
try {
lernaVersion = JSON.parse(await platform.getFile('package.json'))
.devDependencies.lerna;
lernaVersion =
JSON.parse(await platform.getFile('package.json')).dependencies.lerna ||
JSON.parse(await platform.getFile('package.json')).devDependencies
.lerna;
} catch (err) {
logger.warn('Could not detect lerna in devDependencies');
logger.warn('Could not detect lerna version in package.json');
}
logger.debug('Using lerna version ' + lernaVersion);
const params =
manager === 'npm' ? '--package-lock-only' : '--ignore-scripts';
const cmd = `${manager} install ${params} && npx lerna@${lernaVersion} bootstrap -- ${params}`;
const cmd = `${manager} install ${params} && npx lerna@${lernaVersion ||
'latest'} bootstrap -- ${params}`;
logger.debug({ cmd });
// TODO: Switch to native util.promisify once using only node 8
({ stdout, stderr } = await exec(cmd, {