pnpm add and pnpm install fail after ng new on pnpm 11+ (ERR_PNPM_IGNORED_BUILDS)

Đang mở
#34,622 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@alan-agius4 đang làm issue này rồi.

Từ ngày 2/11/2026.

  • #34630 của @alan-agius4 — đang mở

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
node.js, typescript
Lĩnh vực
cli

Hướng nghiên cứu

Start with the ng new path that runs the package-manager install with --ignore-scripts, then look at how the generated project files are written. The report proposes adding a pnpm-workspace.yaml with allowBuilds entries for @parcel/watcher, esbuild, lmdb and msgpackr-extract, but it leaves open whether that needs a pnpm version check. Done means a fresh ng new --package-manager pnpm followed by pnpm add succeeds on pnpm 11+ and older pnpm versions still work. The version-gating question should be settled with a maintainer before coding.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area: @angular/cli
Command

new

Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

When I create a new project with ng new --package-manager pnpm on pnpm 11 or later, ng new itself works, but the next pnpm add fails. A fresh pnpm install (after a clone, or on CI) fails the same way.

@angular/build depends on esbuild, @parcel/watcher and lmdb (which brings in msgpackr-extract), and they all have install scripts. Since pnpm 11, strictDepBuilds is on by default, so pnpm fails the install unless each of them is approved or denied under allowBuilds in pnpm-workspace.yaml. ng new doesn't hit it because it installs with --ignore-scripts, so it only shows up afterwards.

I ran into this in my project: https://github.com/Blotch-Smart-Frames/AngularLynx/issues/188

I have worked around it in my own ng add schematic, but every pnpm user gets this from a plain ng new, so I think ng new should write the pnpm-workspace.yaml for pnpm projects.

Minimal Reproduction
npx @angular/[email protected] new repro --package-manager pnpm --defaults
cd repro
pnpm add date-fns

A fresh install fails too:

rm -rf node_modules
pnpm install
Exception or Error
Error: ERR_PNPM_IGNORED_BUILDS

  × adding a new package
  ╰─▶ Ignored build scripts: @parcel/[email protected], [email protected],
      [email protected], [email protected]
  help: Run "pnpm approve-builds" to pick which dependencies should be allowed
        to run scripts.
Your Environment
Angular CLI       : 22.2.5
Angular           : 22.2.4
Node.js           : 24.22.0
Package Manager   : pnpm 12.16.1
Operating System  : darwin arm64

┌───────────────────────────┬───────────────────┬───────────────────┐
│ Package                   │ Installed Version │ Requested Version │
├───────────────────────────┼───────────────────┼───────────────────┤
│ @angular/build            │ 22.2.5            │ ^22.2.5           │
│ @angular/cli              │ 22.2.5            │ ^22.2.5           │
│ @angular/common           │ 22.2.4            │ ^22.2.0           │
│ @angular/compiler         │ 22.2.4            │ ^22.2.0           │
│ @angular/compiler-cli     │ 22.2.4            │ ^22.2.0           │
│ @angular/core             │ 22.2.4            │ ^22.2.0           │
│ @angular/forms            │ 22.2.4            │ ^22.2.0           │
│ @angular/platform-browser │ 22.2.4            │ ^22.2.0           │
│ @angular/router           │ 22.2.4            │ ^22.2.0           │
│ rxjs                      │ 7.8.2             │ ~7.8.0            │
│ typescript                │ 6.0.3             │ ~6.0.2            │
│ vitest                    │ 5.0.5             │ ^5.0.0            │
└───────────────────────────┴───────────────────┴───────────────────┘
Anything else relevant?

On pnpm 10 it's only a warning, so it works there.

Adding this pnpm-workspace.yaml to the new project fixes it. pnpm install, pnpm add and ng build all work after. It's the same as what this repo has in its own pnpm-workspace.yaml:

allowBuilds:
  '@parcel/watcher': false
  esbuild: false
  lmdb: false
  msgpackr-extract: false

One thing to watch out for: pnpm older than 10.26 doesn't read allowBuilds, and pnpm 9 and 10.0 fail on a pnpm-workspace.yaml that has no packages field. So it probably needs a pnpm version check.

Ngôn ngữ chính
TypeScript
Star
27k
Fork
11.8k
Merge trung bình
1 ngày 34 phút
Pull request đã merge (30 ngày)
275

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của angular/angular-cli

Tất cả issue của angular/angular-cli

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.