You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

30 lines
841 B

#! /usr/bin/env node
const { readdirSync, writeFileSync } = require('fs');
const { resolve, join } = require('path');
const { execSync } = require('child_process');
const clone = require('lodash.clonedeep');
function writeJson(destination, content) {
writeFileSync(destination, `${JSON.stringify(content, null, 2)}\n`);
}
const packages = resolve(__dirname, '../packages');
readdirSync(packages)
.map(name => {
const dir = join(packages, name);
const pkgPath = join(dir, 'package.json');
const pkg = require(pkgPath);
const original = clone(pkg);
Object
.keys(pkg.linkDependencies || {})
.map(key => {
pkg.dependencies[key] = pkg.linkDependencies[key];
});
writeJson(pkgPath, pkg);
execSync(`yarn publish ${dir}`, { stdio: 'inherit' });
writeJson(pkgPath, original);
});