@roots/bud-compiler 5.0.0-next.9 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -28
- package/lib/cjs/Compiler/index.js +34 -37
- package/lib/cjs/Compiler/index.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/esm/Compiler/index.js +35 -38
- package/lib/esm/Compiler/index.js.map +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/tsconfig-esm.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/types/Compiler/index.d.ts +6 -9
- package/types/Compiler/index.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
package/README.md
CHANGED
@@ -1,41 +1,25 @@
|
|
1
1
|
<p align="center">
|
2
|
-
<img
|
2
|
+
<img src="https://cdn.roots.io/app/uploads/logo-bud.svg" height="100" alt="Bud" />
|
3
3
|
</p>
|
4
4
|
|
5
5
|
<p align="center">
|
6
|
-
<img
|
7
|
-
alt="MIT License"
|
8
|
-
src="https://img.shields.io/github/license/roots/bud?color=%23525ddc&style=flat-square"
|
9
|
-
/>
|
10
|
-
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Froots%2Fbud?ref=badge_small" alt="FOSSA Status">
|
11
|
-
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Froots%2Fbud.svg?type=small"/>
|
12
|
-
</a>
|
13
|
-
<a href="https://www.npmjs.com/package/@roots/bud">
|
14
|
-
<img src="https://img.shields.io/npm/v/@roots/bud.svg?color=%23525ddc&style=flat-square" />
|
15
|
-
</a>
|
16
|
-
<a href="https://codecov.io/gh/roots/bud">
|
17
|
-
<img src="https://codecov.io/gh/roots/bud/branch/next/graph/badge.svg?token=DRJ28OD8XD"/>
|
18
|
-
</a>
|
19
|
-
<a href="https://twitter.com/rootswp">
|
20
|
-
<img
|
21
|
-
alt="Follow Roots"
|
22
|
-
src="https://img.shields.io/twitter/follow/rootswp.svg?color=%23525ddc&style=flat-square"
|
23
|
-
/>
|
24
|
-
</a>
|
6
|
+
<img alt="MIT License" src="https://img.shields.io/github/license/roots/bud?color=%23525ddc&style=flat-square" /> <img alt="npm" src="https://img.shields.io/npm/v/@roots/bud.svg?color=%23525ddc&style=flat-square" /> <img alt="Follow Roots" src="https://img.shields.io/twitter/follow/rootswp.svg?color=%23525ddc&style=flat-square" />
|
25
7
|
</p>
|
26
8
|
|
27
|
-
|
28
9
|
<h1 align="center">
|
29
10
|
<strong>@roots/bud-compiler</strong>
|
30
11
|
</h1>
|
31
12
|
|
32
|
-
>
|
13
|
+
<p align="center">
|
14
|
+
Compilation handler
|
15
|
+
</p>
|
16
|
+
|
33
17
|
## Installation
|
34
18
|
|
35
19
|
Install **@roots/bud-compiler** to your project.
|
36
20
|
|
37
21
|
```shell
|
38
|
-
yarn add @roots/bud-compiler
|
22
|
+
yarn add @roots/bud-compiler --dev
|
39
23
|
```
|
40
24
|
|
41
25
|
## Documentation
|
@@ -67,8 +51,4 @@ Help support our open-source development efforts by [becoming a patron](https://
|
|
67
51
|
<a href="https://carrot.com/"><img src="https://cdn.roots.io/app/uploads/carrot.svg" alt="Carrot" width="200" height="150"/></a>
|
68
52
|
<a href="https://www.c21redwood.com/"><img src="https://cdn.roots.io/app/uploads/c21redwood.svg" alt="C21 Redwood Realty" width="200" height="150"/></a>
|
69
53
|
<a href="https://wordpress.com/"><img src="https://cdn.roots.io/app/uploads/wordpress.svg" alt="WordPress.com" width="200" height="150"/></a>
|
70
|
-
<a href="https://
|
71
|
-
<a href="https://www.harnessup.com/"><img src="https://cdn.roots.io/app/uploads/harness-software.svg" alt="Harness Software" width="200" height="150"/></a>
|
72
|
-
<a href="https://www.codersclan.com/"><img src="https://cdn.roots.io/app/uploads/coders-clan.svg" alt="Coders Clan" width="200" height="150"/></a>
|
73
|
-
<a href="https://generodigital.com/"><img src="https://cdn.roots.io/app/uploads/genero.svg" alt="Genero" width="200" height="150"/></a>
|
74
|
-
<a href="https://motto.ca/roots"><img src="https://cdn.roots.io/app/uploads/motto.svg" alt="Motto" width="200" height="150"/></a>
|
54
|
+
<a href="https://pantheon.io/"><img src="https://cdn.roots.io/app/uploads/pantheon.svg" alt="Pantheon" width="200" height="150"/></a>
|
@@ -6,7 +6,6 @@ const bud_framework_1 = require("@roots/bud-framework");
|
|
6
6
|
const bud_support_1 = require("@roots/bud-support");
|
7
7
|
const webpack_1 = require("webpack");
|
8
8
|
const { isFunction } = bud_support_1.lodash;
|
9
|
-
const helpful_decorators_1 = require("helpful-decorators");
|
10
9
|
/**
|
11
10
|
* Initial state
|
12
11
|
*
|
@@ -31,6 +30,10 @@ class Compiler extends bud_framework_1.Service {
|
|
31
30
|
* @public
|
32
31
|
*/
|
33
32
|
this.stats = INITIAL_STATS;
|
33
|
+
/**
|
34
|
+
* Compiler errors
|
35
|
+
*/
|
36
|
+
this.errors = [];
|
34
37
|
/**
|
35
38
|
* True if compiler is already instantiated
|
36
39
|
*
|
@@ -42,15 +45,6 @@ class Compiler extends bud_framework_1.Service {
|
|
42
45
|
*/
|
43
46
|
this.config = [];
|
44
47
|
}
|
45
|
-
/**
|
46
|
-
* {@inheritDoc @roots/bud-framework#Service.register}
|
47
|
-
*
|
48
|
-
* @public
|
49
|
-
* @decorator `@bind`
|
50
|
-
*/
|
51
|
-
register() {
|
52
|
-
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { });
|
53
|
-
}
|
54
48
|
/**
|
55
49
|
* Initiates compilation
|
56
50
|
*
|
@@ -62,7 +56,7 @@ class Compiler extends bud_framework_1.Service {
|
|
62
56
|
compile() {
|
63
57
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
64
58
|
const config = yield this.before();
|
65
|
-
const compiler = yield this.
|
59
|
+
const compiler = yield this.invoke(config);
|
66
60
|
this.app.timeEnd('bud');
|
67
61
|
return compiler;
|
68
62
|
});
|
@@ -71,34 +65,33 @@ class Compiler extends bud_framework_1.Service {
|
|
71
65
|
* @public
|
72
66
|
* @decorator `@bind`
|
73
67
|
*/
|
74
|
-
|
68
|
+
invoke(config) {
|
75
69
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
76
|
-
|
70
|
+
config =
|
71
|
+
yield this.app.hooks.filterAsync('event.compiler.before', config);
|
72
|
+
config = this.app.hooks.filter('config.override', config);
|
77
73
|
this.instance = (0, webpack_1.webpack)(config);
|
78
74
|
this.instance.hooks.done.tap(config[0].name, (stats) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
79
|
-
|
75
|
+
this.app.hooks.filter('event.compiler.done', stats);
|
80
76
|
stats && Object.assign(this.stats, stats.toJson());
|
77
|
+
if (this.app.store.is('features.dashboard', false)) {
|
78
|
+
this.log('log', stats.toString(this.app.store.get('build.stats')));
|
79
|
+
}
|
81
80
|
if (this.app.isProduction) {
|
82
81
|
this.instance.close(err => {
|
83
82
|
if (err) {
|
83
|
+
err = this.app.hooks.filter('event.compiler.error', err);
|
84
84
|
this.stats.errors.push(err);
|
85
85
|
this.log('error', err);
|
86
86
|
}
|
87
|
-
this.app.close(
|
87
|
+
!this.app.dashboard.instance && this.app.close();
|
88
88
|
});
|
89
89
|
}
|
90
|
-
else {
|
91
|
-
((_b = (_a = this.app.server.middlewareStack) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish) &&
|
92
|
-
this.app.server.middlewareStack.hot.publish({
|
93
|
-
action: 'webpack_stats',
|
94
|
-
data: { stats: this.stats },
|
95
|
-
});
|
96
|
-
}
|
97
90
|
}));
|
98
91
|
new webpack_1.ProgressPlugin((...args) => {
|
99
92
|
this.progress = args;
|
100
93
|
}).apply(this.instance);
|
101
|
-
this.app.hooks.filter('
|
94
|
+
this.app.hooks.filter('event.compiler.after', this.app);
|
102
95
|
return this.instance;
|
103
96
|
});
|
104
97
|
}
|
@@ -109,6 +102,7 @@ class Compiler extends bud_framework_1.Service {
|
|
109
102
|
* @decorator `@bind`
|
110
103
|
*/
|
111
104
|
before() {
|
105
|
+
var _a;
|
112
106
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
113
107
|
const config = [];
|
114
108
|
this.stats = INITIAL_STATS;
|
@@ -120,7 +114,7 @@ class Compiler extends bud_framework_1.Service {
|
|
120
114
|
* Attempt to use the parent instance in the compilation if there are entries
|
121
115
|
* registered to it or if it has no child instances registered.
|
122
116
|
*/
|
123
|
-
if (this.app.
|
117
|
+
if (!this.app.hasChildren) {
|
124
118
|
this.app.info(`using config from parent compiler`);
|
125
119
|
config.push(this.app.build.config);
|
126
120
|
return config;
|
@@ -132,7 +126,7 @@ class Compiler extends bud_framework_1.Service {
|
|
132
126
|
* If there are {@link Framework.children} instances, iterate through
|
133
127
|
* them and add to `config`
|
134
128
|
*/
|
135
|
-
yield Promise.all(this.app.children.getValues().map((instance) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
129
|
+
yield Promise.all((_a = this.app.children) === null || _a === void 0 ? void 0 : _a.getValues().map((instance) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
136
130
|
if (!instance.name)
|
137
131
|
return;
|
138
132
|
this.log('success', `\`${instance.name}\` compiler will be tapped`);
|
@@ -149,7 +143,7 @@ class Compiler extends bud_framework_1.Service {
|
|
149
143
|
* @decorator `@bind`
|
150
144
|
*/
|
151
145
|
callback(...args) {
|
152
|
-
var _a;
|
146
|
+
var _a, _b;
|
153
147
|
/**
|
154
148
|
* production mode callback takes two parameters (webpack err and stats)
|
155
149
|
* however, the done hook used in development just takes one (stats)
|
@@ -157,31 +151,34 @@ class Compiler extends bud_framework_1.Service {
|
|
157
151
|
* here we parse the callback args so that we dont have to
|
158
152
|
* duplicate the callback.
|
159
153
|
*/
|
160
|
-
|
154
|
+
let [err, stats] = args.length > 1 ? args : [null, args.pop()];
|
161
155
|
if ((stats === null || stats === void 0 ? void 0 : stats.toJson) && isFunction(stats.toJson)) {
|
162
|
-
this.stats = stats.toJson(
|
163
|
-
this.app.
|
164
|
-
this.app.log(stats.toString());
|
156
|
+
this.stats = stats.toJson(this.app.store.get('build.stats'));
|
157
|
+
this.stats = this.app.hooks.filter('event.compiler.stats', this.stats);
|
165
158
|
}
|
166
159
|
if (err) {
|
167
|
-
this.
|
160
|
+
if (this.app.isDevelopment) {
|
161
|
+
(_b = (_a = this.app.server.middleware) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish({
|
162
|
+
errors: stats.toJson(this.app.store.get('build.stats'))
|
163
|
+
.errors,
|
164
|
+
});
|
165
|
+
}
|
166
|
+
this.errors.push(this.app.hooks.filter('event.compiler.error', err));
|
168
167
|
this.app.store.is('features.dashboard', false) &&
|
169
168
|
this.log('error', err);
|
170
169
|
}
|
171
170
|
}
|
172
171
|
}
|
173
172
|
(0, tslib_1.__decorate)([
|
174
|
-
bud_support_1.bind
|
175
|
-
|
176
|
-
(0, tslib_1.__decorate)([
|
177
|
-
bud_support_1.bind
|
173
|
+
bud_support_1.bind,
|
174
|
+
bud_support_1.once
|
178
175
|
], Compiler.prototype, "compile", null);
|
179
176
|
(0, tslib_1.__decorate)([
|
180
177
|
bud_support_1.bind
|
181
|
-
], Compiler.prototype, "
|
178
|
+
], Compiler.prototype, "invoke", null);
|
182
179
|
(0, tslib_1.__decorate)([
|
183
180
|
bud_support_1.bind,
|
184
|
-
|
181
|
+
bud_support_1.once
|
185
182
|
], Compiler.prototype, "before", null);
|
186
183
|
(0, tslib_1.__decorate)([
|
187
184
|
bud_support_1.bind
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":";;;;AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
@@ -10,7 +10,7 @@ exports.Compiler = void 0;
|
|
10
10
|
* @see https://roots.io/bud
|
11
11
|
* @see https://github.com/roots/bud
|
12
12
|
*
|
13
|
-
*
|
13
|
+
* @packageDocumentation
|
14
14
|
*/
|
15
15
|
var Compiler_1 = require("./Compiler");
|
16
16
|
Object.defineProperty(exports, "Compiler", { enumerable: true, get: function () { return Compiler_1.Compiler; } });
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { __awaiter, __decorate } from "tslib";
|
2
2
|
import { Service, } from '@roots/bud-framework';
|
3
|
-
import { bind, lodash } from '@roots/bud-support';
|
4
|
-
import { ProgressPlugin, webpack } from 'webpack';
|
3
|
+
import { bind, lodash, once } from '@roots/bud-support';
|
4
|
+
import { ProgressPlugin, webpack, } from 'webpack';
|
5
5
|
const { isFunction } = lodash;
|
6
|
-
import { once } from 'helpful-decorators';
|
7
6
|
/**
|
8
7
|
* Initial state
|
9
8
|
*
|
@@ -28,6 +27,10 @@ export class Compiler extends Service {
|
|
28
27
|
* @public
|
29
28
|
*/
|
30
29
|
this.stats = INITIAL_STATS;
|
30
|
+
/**
|
31
|
+
* Compiler errors
|
32
|
+
*/
|
33
|
+
this.errors = [];
|
31
34
|
/**
|
32
35
|
* True if compiler is already instantiated
|
33
36
|
*
|
@@ -39,15 +42,6 @@ export class Compiler extends Service {
|
|
39
42
|
*/
|
40
43
|
this.config = [];
|
41
44
|
}
|
42
|
-
/**
|
43
|
-
* {@inheritDoc @roots/bud-framework#Service.register}
|
44
|
-
*
|
45
|
-
* @public
|
46
|
-
* @decorator `@bind`
|
47
|
-
*/
|
48
|
-
register() {
|
49
|
-
return __awaiter(this, void 0, void 0, function* () { });
|
50
|
-
}
|
51
45
|
/**
|
52
46
|
* Initiates compilation
|
53
47
|
*
|
@@ -59,7 +53,7 @@ export class Compiler extends Service {
|
|
59
53
|
compile() {
|
60
54
|
return __awaiter(this, void 0, void 0, function* () {
|
61
55
|
const config = yield this.before();
|
62
|
-
const compiler = yield this.
|
56
|
+
const compiler = yield this.invoke(config);
|
63
57
|
this.app.timeEnd('bud');
|
64
58
|
return compiler;
|
65
59
|
});
|
@@ -68,34 +62,33 @@ export class Compiler extends Service {
|
|
68
62
|
* @public
|
69
63
|
* @decorator `@bind`
|
70
64
|
*/
|
71
|
-
|
65
|
+
invoke(config) {
|
72
66
|
return __awaiter(this, void 0, void 0, function* () {
|
73
|
-
|
67
|
+
config =
|
68
|
+
yield this.app.hooks.filterAsync('event.compiler.before', config);
|
69
|
+
config = this.app.hooks.filter('config.override', config);
|
74
70
|
this.instance = webpack(config);
|
75
71
|
this.instance.hooks.done.tap(config[0].name, (stats) => __awaiter(this, void 0, void 0, function* () {
|
76
|
-
|
72
|
+
this.app.hooks.filter('event.compiler.done', stats);
|
77
73
|
stats && Object.assign(this.stats, stats.toJson());
|
74
|
+
if (this.app.store.is('features.dashboard', false)) {
|
75
|
+
this.log('log', stats.toString(this.app.store.get('build.stats')));
|
76
|
+
}
|
78
77
|
if (this.app.isProduction) {
|
79
78
|
this.instance.close(err => {
|
80
79
|
if (err) {
|
80
|
+
err = this.app.hooks.filter('event.compiler.error', err);
|
81
81
|
this.stats.errors.push(err);
|
82
82
|
this.log('error', err);
|
83
83
|
}
|
84
|
-
this.app.close(
|
84
|
+
!this.app.dashboard.instance && this.app.close();
|
85
85
|
});
|
86
86
|
}
|
87
|
-
else {
|
88
|
-
((_b = (_a = this.app.server.middlewareStack) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish) &&
|
89
|
-
this.app.server.middlewareStack.hot.publish({
|
90
|
-
action: 'webpack_stats',
|
91
|
-
data: { stats: this.stats },
|
92
|
-
});
|
93
|
-
}
|
94
87
|
}));
|
95
88
|
new ProgressPlugin((...args) => {
|
96
89
|
this.progress = args;
|
97
90
|
}).apply(this.instance);
|
98
|
-
this.app.hooks.filter('
|
91
|
+
this.app.hooks.filter('event.compiler.after', this.app);
|
99
92
|
return this.instance;
|
100
93
|
});
|
101
94
|
}
|
@@ -106,6 +99,7 @@ export class Compiler extends Service {
|
|
106
99
|
* @decorator `@bind`
|
107
100
|
*/
|
108
101
|
before() {
|
102
|
+
var _a;
|
109
103
|
return __awaiter(this, void 0, void 0, function* () {
|
110
104
|
const config = [];
|
111
105
|
this.stats = INITIAL_STATS;
|
@@ -117,7 +111,7 @@ export class Compiler extends Service {
|
|
117
111
|
* Attempt to use the parent instance in the compilation if there are entries
|
118
112
|
* registered to it or if it has no child instances registered.
|
119
113
|
*/
|
120
|
-
if (this.app.
|
114
|
+
if (!this.app.hasChildren) {
|
121
115
|
this.app.info(`using config from parent compiler`);
|
122
116
|
config.push(this.app.build.config);
|
123
117
|
return config;
|
@@ -129,7 +123,7 @@ export class Compiler extends Service {
|
|
129
123
|
* If there are {@link Framework.children} instances, iterate through
|
130
124
|
* them and add to `config`
|
131
125
|
*/
|
132
|
-
yield Promise.all(this.app.children.getValues().map((instance) => __awaiter(this, void 0, void 0, function* () {
|
126
|
+
yield Promise.all((_a = this.app.children) === null || _a === void 0 ? void 0 : _a.getValues().map((instance) => __awaiter(this, void 0, void 0, function* () {
|
133
127
|
if (!instance.name)
|
134
128
|
return;
|
135
129
|
this.log('success', `\`${instance.name}\` compiler will be tapped`);
|
@@ -146,7 +140,7 @@ export class Compiler extends Service {
|
|
146
140
|
* @decorator `@bind`
|
147
141
|
*/
|
148
142
|
callback(...args) {
|
149
|
-
var _a;
|
143
|
+
var _a, _b;
|
150
144
|
/**
|
151
145
|
* production mode callback takes two parameters (webpack err and stats)
|
152
146
|
* however, the done hook used in development just takes one (stats)
|
@@ -154,28 +148,31 @@ export class Compiler extends Service {
|
|
154
148
|
* here we parse the callback args so that we dont have to
|
155
149
|
* duplicate the callback.
|
156
150
|
*/
|
157
|
-
|
151
|
+
let [err, stats] = args.length > 1 ? args : [null, args.pop()];
|
158
152
|
if ((stats === null || stats === void 0 ? void 0 : stats.toJson) && isFunction(stats.toJson)) {
|
159
|
-
this.stats = stats.toJson(
|
160
|
-
this.app.
|
161
|
-
this.app.log(stats.toString());
|
153
|
+
this.stats = stats.toJson(this.app.store.get('build.stats'));
|
154
|
+
this.stats = this.app.hooks.filter('event.compiler.stats', this.stats);
|
162
155
|
}
|
163
156
|
if (err) {
|
164
|
-
this.
|
157
|
+
if (this.app.isDevelopment) {
|
158
|
+
(_b = (_a = this.app.server.middleware) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish({
|
159
|
+
errors: stats.toJson(this.app.store.get('build.stats'))
|
160
|
+
.errors,
|
161
|
+
});
|
162
|
+
}
|
163
|
+
this.errors.push(this.app.hooks.filter('event.compiler.error', err));
|
165
164
|
this.app.store.is('features.dashboard', false) &&
|
166
165
|
this.log('error', err);
|
167
166
|
}
|
168
167
|
}
|
169
168
|
}
|
170
169
|
__decorate([
|
171
|
-
bind
|
172
|
-
|
173
|
-
__decorate([
|
174
|
-
bind
|
170
|
+
bind,
|
171
|
+
once
|
175
172
|
], Compiler.prototype, "compile", null);
|
176
173
|
__decorate([
|
177
174
|
bind
|
178
|
-
], Compiler.prototype, "
|
175
|
+
], Compiler.prototype, "invoke", null);
|
179
176
|
__decorate([
|
180
177
|
bind,
|
181
178
|
once
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":";AAAA,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.js
CHANGED