`esm_loader` should use a primordial to get `cwd`
Đang mở
Chưa có ai nhận issue này.
loaders
never-stale
- Ngôn ngữ chính
- JavaScript
- Star
- 122k
- Fork
- 37.4k
- Merge trung bình
- 4 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 272
Mô tả
Version
v18.9.0
Platform
Linux vhost1 5.18.10-76051810-generic #202207071639~1657252310~22.04~7d5e891 SMP PREEMPT_DYNAMIC Fri J x86_64 x86_64 x86_64 GNU/Linux
Subsystem
esm_loader
What steps will reproduce the bug?
process.cwd = () => {
(async () => {
await import('.');
})();
};
await import('.');
How often does it reproduce? Is there a required condition?
Always.
What is the expected behavior?
No RangeErrors.
What do you see instead?
Exception in PromiseRejectCallback:
node:internal/modules/esm/resolve:1110
};
RangeError: Maximum call stack size exceeded
Exception in PromiseRejectCallback:
node:internal/modules/esm/loader:163
const output = await hook(arg0, meta.context, nextNextHook);
Additional information
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Chạy bản tái hiện được cung cấp trên Node.js v18.9.0, sau đó kiểm tra node:internal/modules/esm/resolve.js và node:internal/modules/esm/loader.js tại các vị trí trong stack trace. Theo dõi cách esm_loader lấy cwd và cập nhật nó để sử dụng primordial được yêu cầu; hoàn tất khi bản tái hiện chạy xong mà không có RangeErrors.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 55/100