-
Notifications
You must be signed in to change notification settings - Fork 15
/
pre_publish.js
33 lines (26 loc) · 975 Bytes
/
pre_publish.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
const path = require("path");
const fs = require("fs");
const packageJson = require("./package.json");
const devMode = process.argv.length !== 3 || process.argv[2] !== "--prod";
const distDirName = devMode ? "build" : "dist";
const distDir = path.join(__dirname, distDirName);
if(fs.existsSync(distDir)){
fs.rmSync(distDir, {recursive: true});
}
fs.mkdirSync(distDir);
if(devMode){
return;
}
const copyFileToPublish = (fileName) => {
const srcPath = path.join(__dirname, fileName);
const distPath = path.join(distDir, fileName);
if(fs.existsSync(srcPath)){
fs.copyFileSync(srcPath, distPath);
}
};
copyFileToPublish("README.md");
copyFileToPublish("CHANGELOG.md");
copyFileToPublish("LICENSE");
if(typeof packageJson.devDependencies !== "undefined") delete packageJson.devDependencies;
if(typeof packageJson.scripts !== "undefined") delete packageJson.scripts;
fs.writeFileSync(path.join(distDir, "package.json"), JSON.stringify(packageJson, null, 2));