Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Deployment to Google Cloud Run using Angular v17 Application Builder not working

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

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
angular, firebase, google-cloud, typescript
Lĩnh vực
build-system, cloud, devops

Hướng nghiên cứu

Bắt đầu bằng cách chạy npx nx run app:build --configuration=production và kiểm tra src/schematics/deploy/actions.ts quanh phần mã triển khai Cloud Run được liên kết trong issue. So sánh đầu ra dist/.../browserserver của Angular application builder với các đường dẫn được sử dụng để triển khai, sau đó xác minh rằng việc triển khai thành công với cấu hình này.

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

Mô tả

Version info

Angular:
17.2.2
Firebase:
13.3.1
AngularFire:
17.0.1
Other (e.g. Ionic/Cordova, Node, browser, operating system):
Node 20

How to reproduce these conditions

Use @angular/fire with the new @angular-devkit/build-angular:application.
Failing test unit, Stackblitz demonstrating the problem

Steps to set up and reproduce
Start a new repo with the following configuration (I used Nx with project.json, but vanilla angular.json also works):

  // ...
  "targets": {
    "build": {
      "executor": "@angular-devkit/build-angular:application",
      "outputs": ["{options.outputPath}"],
      "options": {
        "outputPath": "dist/apps/app",
      }
    }
    "deploy": {
      "executor": "@angular/fire:deploy",
      "configurations": {
        "production": {
          "buildTarget": "app:build:production",
          "serveTarget": "app:build:production"
        }
      },
}

Then execute the target using npx nx run app:build --configuration=production. This creates the following structre:

dist/
  |_ apps/
    |_ app/
      |_ browser/
      |_ server/
        |_ ...
        |_ main.server.mjs
        |_ server.mjs

But this code to deploy to Cloud Run still uses the old main.js. Also, it is using the outputPath from the build target, but since that outputPath does not contain browser or server, the final path needs to have this folder added too.

The change can be something like this (I have not tested this):

const packageJson = getPackageJson(context, workspaceRoot, options, join(serverBuildOptions.outputPath, 'main.js'));

...to something like this:

const packageJson = getPackageJson(context, workspaceRoot, options, join(serverBuildOptions.outputPath, 'server', 'main.server.mjs'));

...and probably more than this.

Sample data and security rules

Debug output

** Errors in the JavaScript console **

** Output from firebase.database().enableLogging(true); **

** Screenshots **

Expected behavior

Upload to Cloud Run using Angular v17 @angular-devkit/build-angular:application should work.

Actual behavior

Upload to Cloud Run fails for Angular v17 with @angular-devkit/build-angular:application.

Ngôn ngữ chính
TypeScript
Star
7.8k
Fork
2.2k
Merge trung bình
3 ngày 6 giờ
Pull request đã merge (30 ngày)
5

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

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/angularfire

Tất cả issue của angular/angularfire

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.