-
Notifications
You must be signed in to change notification settings - Fork 5
/
build.js
34 lines (27 loc) · 1005 Bytes
/
build.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
const fs = require('fs');
const { resolve } = require('path');
const tsc = require('tsc-prog');
const rm = require('rimraf');
const package = require('./package.json');
if (fs.existsSync(resolve('dist'))) rm.sync('dist');
const file = resolve('index.ts');
let fileContents = fs.readFileSync(file, 'utf8');
let formatted = fileContents.replace(/#!\/usr\/bin\/env ts-node/g, '#!/usr/bin/env node');
package.bin.termd = 'index.js';
fs.writeFileSync(file, formatted, 'utf8');
tsc.build({
basePath: __dirname,
configFilePath: 'tsconfig.json',
compilerOptions: {
outDir: 'dist',
declaration: true,
skipLibCheck: true,
},
exclude: ['./test'],
});
fileContents = fs.readFileSync(file, 'utf8');
formatted = fileContents.replace(/#!\/usr\/bin\/env node/g, '#!/usr/bin/env ts-node');
fs.writeFileSync(file, formatted, 'utf8');
fs.copyFileSync('package.json', './dist/package.json');
fs.copyFileSync('readme.md', './dist/readme.md');
package.bin.termd = 'index.ts';