Skip to content

Commit dfa3d4c

Browse files
committed
refactor(@angular/ssr): switch from esbuild to rollup for bundling critters/beasties
Esbuild exhibits issues when handling code that is generated and then reprocessed by itself, creating challenges when using it to bundle libraries or library components. To remove these issues, we've replaced Esbuild with Rollup for bundling `beasties`. See: evanw/esbuild#3723 (cherry picked from commit b3fe50f)
1 parent 1534f46 commit dfa3d4c

File tree

6 files changed

+168
-240
lines changed

6 files changed

+168
-240
lines changed

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,13 @@
8383
"@bazel/buildifier": "7.3.1",
8484
"@bazel/concatjs": "patch:@bazel/concatjs@npm%3A5.8.1#~/.yarn/patches/@bazel-concatjs-npm-5.8.1-1bf81df846.patch",
8585
"@bazel/jasmine": "patch:@bazel/jasmine@npm%3A5.8.1#~/.yarn/patches/@bazel-jasmine-npm-5.8.1-3370fee155.patch",
86+
"@bazel/rollup": "^5.8.1",
8687
"@bazel/runfiles": "^5.8.1",
8788
"@discoveryjs/json-ext": "0.6.2",
8889
"@inquirer/confirm": "5.0.0",
8990
"@inquirer/prompts": "7.0.0",
9091
"@listr2/prompt-adapter-inquirer": "2.0.17",
92+
"@rollup/plugin-alias": "^5.1.1",
9193
"@rollup/plugin-commonjs": "^28.0.0",
9294
"@rollup/plugin-node-resolve": "^13.0.5",
9395
"@stylistic/eslint-plugin": "^2.8.0",
@@ -184,6 +186,7 @@
184186
"quicktype-core": "23.0.170",
185187
"resolve-url-loader": "5.0.0",
186188
"rollup": "4.24.0",
189+
"rollup-license-plugin": "^3.0.0",
187190
"rollup-plugin-sourcemaps": "^0.6.0",
188191
"rxjs": "7.8.1",
189192
"sass": "1.80.4",

packages/angular/ssr/test/npm_package/THIRD_PARTY_LICENSES.txt.golden

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
--------------------------------------------------------------------------------
33
Package: beasties
4-
License: "Apache-2.0"
4+
License: Apache-2.0
55

66
Apache License
77
Version 2.0, January 2004
@@ -207,12 +207,12 @@ Apache License
207207
limitations under the License.
208208
--------------------------------------------------------------------------------
209209
Package: boolbase
210-
License: "ISC"
210+
License: ISC
211211

212212

213213
--------------------------------------------------------------------------------
214214
Package: css-select
215-
License: "BSD-2-Clause"
215+
License: BSD-2-Clause
216216

217217
Copyright (c) Felix Böhm
218218
All rights reserved.
@@ -227,7 +227,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
227227
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
228228
--------------------------------------------------------------------------------
229229
Package: css-what
230-
License: "BSD-2-Clause"
230+
License: BSD-2-Clause
231231

232232
Copyright (c) Felix Böhm
233233
All rights reserved.
@@ -242,7 +242,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
242242
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
243243
--------------------------------------------------------------------------------
244244
Package: dom-serializer
245-
License: "MIT"
245+
License: MIT
246246

247247
License
248248

@@ -257,7 +257,7 @@ The above copyright notice and this permission notice shall be included in all c
257257
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
258258
--------------------------------------------------------------------------------
259259
Package: domelementtype
260-
License: "BSD-2-Clause"
260+
License: BSD-2-Clause
261261

262262
Copyright (c) Felix Böhm
263263
All rights reserved.
@@ -272,7 +272,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
272272
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
273273
--------------------------------------------------------------------------------
274274
Package: domhandler
275-
License: "BSD-2-Clause"
275+
License: BSD-2-Clause
276276

277277
Copyright (c) Felix Böhm
278278
All rights reserved.
@@ -287,7 +287,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
287287
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
288288
--------------------------------------------------------------------------------
289289
Package: domutils
290-
License: "BSD-2-Clause"
290+
License: BSD-2-Clause
291291

292292
Copyright (c) Felix Böhm
293293
All rights reserved.
@@ -302,7 +302,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
302302
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
303303
--------------------------------------------------------------------------------
304304
Package: entities
305-
License: "BSD-2-Clause"
305+
License: BSD-2-Clause
306306

307307
Copyright (c) Felix Böhm
308308
All rights reserved.
@@ -317,7 +317,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
317317
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
318318
--------------------------------------------------------------------------------
319319
Package: htmlparser2
320-
License: "MIT"
320+
License: MIT
321321

322322
Copyright 2010, 2011, Chris Winberry <[email protected]>. All rights reserved.
323323
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -339,7 +339,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
339339
IN THE SOFTWARE.
340340
--------------------------------------------------------------------------------
341341
Package: nanoid
342-
License: "MIT"
342+
License: MIT
343343

344344
The MIT License (MIT)
345345

@@ -363,7 +363,7 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
363363
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
364364
--------------------------------------------------------------------------------
365365
Package: nth-check
366-
License: "BSD-2-Clause"
366+
License: BSD-2-Clause
367367

368368
Copyright (c) Felix Böhm
369369
All rights reserved.
@@ -378,7 +378,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
378378
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
379379
--------------------------------------------------------------------------------
380380
Package: pathe
381-
License: "MIT"
381+
License: MIT
382382

383383
MIT License
384384

@@ -426,7 +426,7 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
426426
USE OR OTHER DEALINGS IN THE SOFTWARE.
427427
--------------------------------------------------------------------------------
428428
Package: picocolors
429-
License: "ISC"
429+
License: ISC
430430

431431
ISC License
432432

@@ -445,7 +445,7 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
445445
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
446446
--------------------------------------------------------------------------------
447447
Package: postcss
448-
License: "MIT"
448+
License: MIT
449449

450450
The MIT License (MIT)
451451

@@ -469,12 +469,12 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
469469
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
470470
--------------------------------------------------------------------------------
471471
Package: postcss-media-query-parser
472-
License: "MIT"
472+
License: MIT
473473

474474

475475
--------------------------------------------------------------------------------
476476
Package: unenv
477-
License: "MIT"
477+
License: MIT
478478

479479
MIT License
480480

packages/angular/ssr/third_party/beasties/BUILD.bazel

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,8 @@
1-
load("@npm//@angular/build-tooling/bazel/esbuild:index.bzl", "esbuild", "esbuild_config")
1+
load("@npm//@bazel/rollup:index.bzl", "rollup_bundle")
22
load("//tools:defaults.bzl", "js_library")
33

44
package(default_visibility = ["//visibility:public"])
55

6-
esbuild(
7-
name = "bundled_beasties",
8-
config = ":esbuild_config",
9-
entry_point = "@npm//:node_modules/beasties/dist/index.mjs",
10-
metafile = True,
11-
splitting = True,
12-
deps = [
13-
"@npm//beasties",
14-
"@npm//unenv",
15-
],
16-
)
17-
18-
esbuild_config(
19-
name = "esbuild_config",
20-
config_file = "esbuild.config.mjs",
21-
)
22-
236
js_library(
247
name = "bundled_beasties_lib",
258
srcs = [
@@ -53,3 +36,23 @@ genrule(
5336
done
5437
""",
5538
)
39+
40+
rollup_bundle(
41+
name = "bundled_beasties",
42+
config_file = ":rollup.config.mjs",
43+
entry_points = {
44+
"@npm//:node_modules/beasties/dist/index.mjs": "index",
45+
},
46+
format = "esm",
47+
link_workspace_root = True,
48+
output_dir = True,
49+
sourcemap = "true",
50+
deps = [
51+
"@npm//@rollup/plugin-alias",
52+
"@npm//@rollup/plugin-commonjs",
53+
"@npm//@rollup/plugin-node-resolve",
54+
"@npm//beasties",
55+
"@npm//rollup-license-plugin",
56+
"@npm//unenv",
57+
],
58+
)

0 commit comments

Comments
 (0)