-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathclean-package.config.js
65 lines (51 loc) · 1.39 KB
/
clean-package.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright (c) roydukkey. All rights reserved.
// Licensed under the MIT. See LICENSE file in the project root for full license information.
const { copySync, removeSync } = require('fs-extra');
const { buildName, buildRelativePath } = require('./utils/build');
const {
author,
bugs,
devDependencies,
homepage,
keywords: parentKeywords,
license,
repository,
files
} = require('./package.json');
// These files should be included from project root in every package.
const commonFiles = [
'./LICENSE'
];
repository.directory = `packages/${buildName}`;
const branch = repository.branch;
delete repository.branch;
const completePackage = require(buildRelativePath('package.json'));
const { name, description, version, keywords, dependencies, publishConfig, ...package } = completePackage;
delete package.scripts;
delete package['//'];
module.exports = {
indent: '\t',
remove: Object.keys(completePackage),
replace: {
name,
description,
version,
author,
license,
repository,
homepage: homepage.replace('#readme', `/tree/${branch}/${repository.directory}$&`),
bugs,
keywords: [...parentKeywords, ...keywords],
...package,
dependencies,
devDependencies,
publishConfig,
files
},
onClean: () => commonFiles.forEach((file) => {
copySync(file, buildRelativePath(file));
}),
onRestore: () => commonFiles.forEach((file) => {
removeSync(buildRelativePath(file));
})
};