Skip to content

Commit

Permalink
fix: Workaround for karma problem karma-runner/karma#2593
Browse files Browse the repository at this point in the history
  • Loading branch information
molnarzs committed Dec 12, 2017
1 parent 267a983 commit 5872761
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 1 deletion.
71 changes: 71 additions & 0 deletions angular2-common/scripts/install_dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#! /usr/bin/env node

const fs = require('fs-extra')
const _ = require('lodash')
const execute = require('child_process').execSync
const merge = require('merge')

var newDeps = {}

_.forEach(['package.workflow.json', 'package.shared.json'], filename => {
let remotePjson = {}
try {
remotePjson = fs.readJsonSync(filename);
} catch (err) {}
_.assign(newDeps, remotePjson.dependencies, remotePjson.devDependencies, remotePjson.optionalDependencies, remotePjson.peerDependencies);
})

var keys = _.keys(newDeps)

if (keys.length !== 0) {
packages = keys.reduce((current, next) => current + ` ${next}@${newDeps[next]}`, "")
execute(`npm install --save --color true ${packages}`, { stdio: [0, 1, 2] });
}

try {
let workflow = fs.readJsonSync("package.workflow.json")
let pjson = fs.readJsonSync("package.json")
pjson.scripts = merge.recursive(pjson.scripts, workflow.scripts || {})
fs.writeJsonSync("package.json", pjson, { spaces: 2 })
} catch (err) {}

try {
let internalShared = fs.readJsonSync("_package.shared.json")
let externalShared = fs.readJsonSync("package.shared.json")
let mergedShared = merge.recursive(internalShared, externalShared)
fs.writeJsonSync("_package.shared.json", mergedShared, { spaces: 2 })
} catch (err) {}

try {
let projectPjson = fs.readJsonSync("package.project.json");
let internalShared = fs.readJsonSync("_package.shared.json");

['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies'].forEach(field => {
projectPjson[field] = merge.recursive(projectPjson[field], internalShared[field])
});

fs.writeJsonSync("package.project.json", projectPjson, { spaces: 2 })
} catch (err) {}

keys = []
let remainedPackages

try {
let internalPjson = fs.readJsonSync("_package.shared.json");
let internalDeps = {}
_.assign(internalDeps, internalPjson.dependencies, internalPjson.devDependencies, internalPjson.optionalDependencies, internalPjson.peerDependencies)

let projectPjson = fs.readJsonSync('package.project.json');
let projectDeps = {}
_.assign(projectDeps, projectPjson.dependencies, projectPjson.devDependencies, projectPjson.optionalDependencies, projectPjson.peerDependencies)

remainedPackages = _.omit(projectDeps, _.keys(internalDeps))
keys = _.keys(remainedPackages)
} catch (err) {}

if (keys.length !== 0) {
packages = keys.reduce((current, next) => `${current} ${next}@${remainedPackages[next]}`, "")
execute(`npm install --save --color true ${packages}`, { stdio: [0, 1, 2] });
// Workaround for https://github.com/karma-runner/karma/issues/2593
execute(`rm -Rf /app/node_modules/bufferutil ; rm -Rf /app/node_modules/utf-8-validate`, { stdio: [0, 1, 2] });
}
2 changes: 1 addition & 1 deletion workflows-base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ COPY *.json /app/

RUN git clone https://github.com/ingydotnet/git-subrepo /app/git-subrepo && \
echo 'source /app/git-subrepo/.rc' >> ~/.bashrc && \
npm install --unsafe-perm=true -g coffee coffee-script firebase-tools prettier && \
npm install --unsafe-perm=true -g coffee coffeescript firebase-tools prettier && \
npm install && \
mkdir scripts && \
cd $HOME && \
Expand Down

0 comments on commit 5872761

Please sign in to comment.