/
webpack.ts
47 lines (39 loc) · 1.05 KB
/
webpack.ts
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
import * as webpack from "webpack";
export class Webpack {
private compiler: webpack.Compiler;
constructor(
private config: Webpack.Config,
) {
this.initialize();
}
public initialize (): void {
this.compiler = webpack(this.config);
}
public build (): Promise<any> {
return new Promise((resolve, reject) => {
console.log("netlify-local: webpack build started");
this.compiler.run((error, status) => {
if(error) {
console.log("netlify-local: webpack build failure");
return reject(error);
}
console.log("netlify-local: webpack build success");
return resolve(status);
});
});
}
public watch (): void {
console.log("netlify-local: webpack watching");
this.compiler.watch({}, (error, status) => {
if(error) {
console.log("netlify-local: webpack build failure");
console.error(error);
return;
}
console.log("netlify-local: webpack build success");
});
}
}
export namespace Webpack {
export type Config = any;
}