Skip to content

Commit 3091956

Browse files
committed
fix(@angular/build): support import attributes in JavaScript transformer
The babel-based JavaScript transformer currently requires a syntax plugin to support import attributes. Import attributes are otherwise supported in application code. However, in production builds the JavaScript transformations such as the build optimizer passes would fail on code that contain any import attributes. The inclusion of the babel syntax plugin removes this problem. Once babel provides built-in support for this syntax feature, the plugin can be removed. (cherry picked from commit 2dc51d5)
1 parent c6fc020 commit 3091956

File tree

5 files changed

+45
-25
lines changed

5 files changed

+45
-25
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
"@babel/generator": "7.24.7",
7474
"@babel/helper-annotate-as-pure": "7.24.7",
7575
"@babel/helper-split-export-declaration": "7.24.7",
76+
"@babel/plugin-syntax-import-attributes": "7.24.7",
7677
"@babel/plugin-transform-async-generator-functions": "7.24.7",
7778
"@babel/plugin-transform-async-to-generator": "7.24.7",
7879
"@babel/plugin-transform-runtime": "7.24.7",

packages/angular/build/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ ts_library(
6767
"@npm//@babel/core",
6868
"@npm//@babel/helper-annotate-as-pure",
6969
"@npm//@babel/helper-split-export-declaration",
70+
"@npm//@babel/plugin-syntax-import-attributes",
7071
"@npm//@inquirer/confirm",
7172
"@npm//@types/babel__core",
7273
"@npm//@types/less",

packages/angular/build/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"@babel/core": "7.24.7",
2424
"@babel/helper-annotate-as-pure": "7.24.7",
2525
"@babel/helper-split-export-declaration": "7.24.7",
26+
"@babel/plugin-syntax-import-attributes": "7.24.7",
2627
"@inquirer/confirm": "3.1.11",
2728
"@vitejs/plugin-basic-ssl": "1.1.0",
2829
"ansi-colors": "4.1.3",

packages/angular/build/src/tools/esbuild/javascript-transformer-worker.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ async function transformWithBabel(
6060
options.sourcemap &&
6161
(!!options.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(filename));
6262

63-
const plugins: PluginItem[] = [];
63+
// @ts-expect-error Import attribute syntax plugin does not currently have type definitions
64+
const { default: importAttributePlugin } = await import('@babel/plugin-syntax-import-attributes');
65+
const plugins: PluginItem[] = [importAttributePlugin];
6466

6567
// Lazy load the linker plugin only when linking is required
6668
if (shouldLink) {

yarn.lock

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ __metadata:
399399
"@babel/core": "npm:7.24.7"
400400
"@babel/helper-annotate-as-pure": "npm:7.24.7"
401401
"@babel/helper-split-export-declaration": "npm:7.24.7"
402+
"@babel/plugin-syntax-import-attributes": "npm:7.24.7"
402403
"@inquirer/confirm": "npm:3.1.11"
403404
"@vitejs/plugin-basic-ssl": "npm:1.1.0"
404405
ansi-colors: "npm:4.1.3"
@@ -657,6 +658,7 @@ __metadata:
657658
"@babel/generator": "npm:7.24.7"
658659
"@babel/helper-annotate-as-pure": "npm:7.24.7"
659660
"@babel/helper-split-export-declaration": "npm:7.24.7"
661+
"@babel/plugin-syntax-import-attributes": "npm:7.24.7"
660662
"@babel/plugin-transform-async-generator-functions": "npm:7.24.7"
661663
"@babel/plugin-transform-async-to-generator": "npm:7.24.7"
662664
"@babel/plugin-transform-runtime": "npm:7.24.7"
@@ -1487,7 +1489,7 @@ __metadata:
14871489
languageName: node
14881490
linkType: hard
14891491

1490-
"@babel/plugin-syntax-import-attributes@npm:^7.24.7":
1492+
"@babel/plugin-syntax-import-attributes@npm:7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.24.7":
14911493
version: 7.24.7
14921494
resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7"
14931495
dependencies:
@@ -2998,9 +3000,11 @@ __metadata:
29983000
linkType: hard
29993001

30003002
"@inquirer/type@npm:^1.3.3":
3001-
version: 1.3.3
3002-
resolution: "@inquirer/type@npm:1.3.3"
3003-
checksum: 10c0/84048694410bb5b2c55dc4e48da6369ce942b9e8f8016d15ef63ab3f9873832a56cc12a50582b5b2b626821bfe29973dfcc19edc90f58490b51df1f4d9d0a074
3003+
version: 1.4.0
3004+
resolution: "@inquirer/type@npm:1.4.0"
3005+
dependencies:
3006+
mute-stream: "npm:^1.0.0"
3007+
checksum: 10c0/927b46eef9195523a5c4d9467fa43dcd8fde6376131c777012dd899b96b5f5c0d7276e03379f61d3209206e65ef82dc45b129eb79fb4dfe61de29d7aed437cd4
30043008
languageName: node
30053009
linkType: hard
30063010

@@ -5430,12 +5434,12 @@ __metadata:
54305434
languageName: node
54315435
linkType: hard
54325436

5433-
"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^20.14.6":
5434-
version: 20.14.8
5435-
resolution: "@types/node@npm:20.14.8"
5437+
"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^20.14.9":
5438+
version: 20.14.9
5439+
resolution: "@types/node@npm:20.14.9"
54365440
dependencies:
54375441
undici-types: "npm:~5.26.4"
5438-
checksum: 10c0/06d4643fa3b179b41fe19f9c75c240278ca1f7a313b3b837bc36ea119499c7ad77f06bbe72694ac04aa91ec77fe747baa09b889f4c435450c1724a26bd55f160
5442+
checksum: 10c0/911ffa444dc032897f4a23ed580c67903bd38ea1c5ec99b1d00fa10b83537a3adddef8e1f29710cbdd8e556a61407ed008e06537d834e48caf449ce59f87d387
54395443
languageName: node
54405444
linkType: hard
54415445

@@ -5455,12 +5459,12 @@ __metadata:
54555459
languageName: node
54565460
linkType: hard
54575461

5458-
"@types/node@npm:^20.14.9":
5459-
version: 20.14.9
5460-
resolution: "@types/node@npm:20.14.9"
5462+
"@types/node@npm:^20.14.6":
5463+
version: 20.14.8
5464+
resolution: "@types/node@npm:20.14.8"
54615465
dependencies:
54625466
undici-types: "npm:~5.26.4"
5463-
checksum: 10c0/911ffa444dc032897f4a23ed580c67903bd38ea1c5ec99b1d00fa10b83537a3adddef8e1f29710cbdd8e556a61407ed008e06537d834e48caf449ce59f87d387
5467+
checksum: 10c0/06d4643fa3b179b41fe19f9c75c240278ca1f7a313b3b837bc36ea119499c7ad77f06bbe72694ac04aa91ec77fe747baa09b889f4c435450c1724a26bd55f160
54645468
languageName: node
54655469
linkType: hard
54665470

@@ -10926,7 +10930,7 @@ __metadata:
1092610930
languageName: node
1092710931
linkType: hard
1092810932

10929-
"https-proxy-agent@npm:7.0.4, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2, https-proxy-agent@npm:^7.0.3":
10933+
"https-proxy-agent@npm:7.0.4, https-proxy-agent@npm:^7.0.2":
1093010934
version: 7.0.4
1093110935
resolution: "https-proxy-agent@npm:7.0.4"
1093210936
dependencies:
@@ -10936,7 +10940,7 @@ __metadata:
1093610940
languageName: node
1093710941
linkType: hard
1093810942

10939-
"https-proxy-agent@npm:7.0.5":
10943+
"https-proxy-agent@npm:7.0.5, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.3":
1094010944
version: 7.0.5
1094110945
resolution: "https-proxy-agent@npm:7.0.5"
1094210946
dependencies:
@@ -12022,14 +12026,14 @@ __metadata:
1202212026
languageName: node
1202312027
linkType: hard
1202412028

12025-
"jsonc-parser@npm:3.2.1, jsonc-parser@npm:^3.2.0":
12029+
"jsonc-parser@npm:3.2.1":
1202612030
version: 3.2.1
1202712031
resolution: "jsonc-parser@npm:3.2.1"
1202812032
checksum: 10c0/ada66dec143d7f9cb0e2d0d29c69e9ce40d20f3a4cb96b0c6efb745025ac7f9ba647d7ac0990d0adfc37a2d2ae084a12009a9c833dbdbeadf648879a99b9df89
1202912033
languageName: node
1203012034
linkType: hard
1203112035

12032-
"jsonc-parser@npm:3.3.1":
12036+
"jsonc-parser@npm:3.3.1, jsonc-parser@npm:^3.2.0":
1203312037
version: 3.3.1
1203412038
resolution: "jsonc-parser@npm:3.3.1"
1203512039
checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6
@@ -14605,7 +14609,7 @@ __metadata:
1460514609
languageName: node
1460614610
linkType: hard
1460714611

14608-
"piscina@npm:4.6.0, piscina@npm:^4.4.0":
14612+
"piscina@npm:4.6.0":
1460914613
version: 4.6.0
1461014614
resolution: "piscina@npm:4.6.0"
1461114615
dependencies:
@@ -14617,7 +14621,7 @@ __metadata:
1461714621
languageName: node
1461814622
linkType: hard
1461914623

14620-
"piscina@npm:4.6.1":
14624+
"piscina@npm:4.6.1, piscina@npm:^4.4.0":
1462114625
version: 4.6.1
1462214626
resolution: "piscina@npm:4.6.1"
1462314627
dependencies:
@@ -14777,7 +14781,7 @@ __metadata:
1477714781
languageName: node
1477814782
linkType: hard
1477914783

14780-
"postcss@npm:8.4.38, postcss@npm:^8.2.14, postcss@npm:^8.4.23, postcss@npm:^8.4.31, postcss@npm:^8.4.33, postcss@npm:^8.4.38":
14784+
"postcss@npm:8.4.38":
1478114785
version: 8.4.38
1478214786
resolution: "postcss@npm:8.4.38"
1478314787
dependencies:
@@ -14788,6 +14792,17 @@ __metadata:
1478814792
languageName: node
1478914793
linkType: hard
1479014794

14795+
"postcss@npm:^8.2.14, postcss@npm:^8.4.23, postcss@npm:^8.4.31, postcss@npm:^8.4.33, postcss@npm:^8.4.38":
14796+
version: 8.4.39
14797+
resolution: "postcss@npm:8.4.39"
14798+
dependencies:
14799+
nanoid: "npm:^3.3.7"
14800+
picocolors: "npm:^1.0.1"
14801+
source-map-js: "npm:^1.2.0"
14802+
checksum: 10c0/16f5ac3c4e32ee76d1582b3c0dcf1a1fdb91334a45ad755eeb881ccc50318fb8d64047de4f1601ac96e30061df203f0f2e2edbdc0bfc49b9c57bc9fb9bedaea3
14803+
languageName: node
14804+
linkType: hard
14805+
1479114806
"preact-render-to-string@npm:^6.2.1":
1479214807
version: 6.5.5
1479314808
resolution: "preact-render-to-string@npm:6.5.5"
@@ -16350,17 +16365,17 @@ __metadata:
1635016365
linkType: hard
1635116366

1635216367
"socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3":
16353-
version: 8.0.3
16354-
resolution: "socks-proxy-agent@npm:8.0.3"
16368+
version: 8.0.4
16369+
resolution: "socks-proxy-agent@npm:8.0.4"
1635516370
dependencies:
1635616371
agent-base: "npm:^7.1.1"
1635716372
debug: "npm:^4.3.4"
16358-
socks: "npm:^2.7.1"
16359-
checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d
16373+
socks: "npm:^2.8.3"
16374+
checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a
1636016375
languageName: node
1636116376
linkType: hard
1636216377

16363-
"socks@npm:^2.7.1":
16378+
"socks@npm:^2.8.3":
1636416379
version: 2.8.3
1636516380
resolution: "socks@npm:2.8.3"
1636616381
dependencies:

0 commit comments

Comments
 (0)