Skip to content

Commit df16d6a

Browse files
committed
Add clean builds script to remove all build files.
1 parent e408e7c commit df16d6a

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

package.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
"lint": "yarn eslint .",
2020
"lint:ts": "tslint -c ./tslint.json 'packages/**/*.d.ts'",
2121
"generate-template": "node ./scripts/generate-mapper.js",
22-
"preinstall": "git ls-files -i --exclude-from=.gitignore | xargs git rm --cached"
22+
"clean-build": "node ./scripts/clean-build.js",
23+
"preinstall": "node ./scripts/clean-build.js"
2324
},
2425
"workspaces": [
2526
"packages/**"
@@ -92,7 +93,20 @@
9293
},
9394
"release": {
9495
"monorepo": "./packages",
95-
"branches": ["+([0-9])?(.{+([0-9]),x}).x", "master", "next", "next-major", {"name": "beta", "prerelease": true}, {"name": "alpha", "prerelease": true}],
96+
"branches": [
97+
"+([0-9])?(.{+([0-9]),x}).x",
98+
"master",
99+
"next",
100+
"next-major",
101+
{
102+
"name": "beta",
103+
"prerelease": true
104+
},
105+
{
106+
"name": "alpha",
107+
"prerelease": true
108+
}
109+
],
96110
"plugins": [
97111
"@khala/npm-release-monorepo",
98112
[

packages/common/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ vendor
7272
!src
7373
!src/
7474
!demo/
75+
!demo
7576
!src/*
7677
!demo/*
7778
!config

scripts/clean-build.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
const path = require('path');
2+
const fse = require('fs-extra');
3+
const glob = require('glob');
4+
5+
const root = path.resolve(__dirname, '../');
6+
const x = glob.sync(path.resolve(root, './packages/*'));
7+
8+
function cleanPackage(p) {
9+
const ignore = fse.readFileSync(path.resolve(p, './.gitignore'), 'utf8');
10+
const ignores = ignore
11+
.split('\n')
12+
.filter((line) => !(line.length === 0 || line[0] === '#'))
13+
.filter((item) => !item.includes('node_modules'));
14+
const positive = [];
15+
const negative = [];
16+
ignores.forEach((item) => {
17+
if (item[0] === '!') {
18+
negative.push(item.replace(/^!/, ''));
19+
} else {
20+
positive.push(item);
21+
}
22+
});
23+
const pattern = `{${positive.join(',')}}`;
24+
const files = glob.sync(path.resolve(p, `./${pattern}`)).filter((item) => !negative.find((n) => item.includes(n) || item.includes('node_modules')));
25+
files.forEach((file) => {
26+
fse.removeSync(file);
27+
});
28+
}
29+
30+
function run() {
31+
try {
32+
x.forEach((p) => {
33+
cleanPackage(p);
34+
});
35+
} catch (err) {
36+
console.error(err);
37+
process.exit(1);
38+
}
39+
}
40+
41+
run();

0 commit comments

Comments
 (0)