TL: DR
Gulp 3.*
không hoạt động trên Node 12.*
trở lên. Bạn phải hạ cấp Node hoặc nâng cấp Gulp.
Nếu bạn thiếu thời gian, hãy hạ cấp Node xuống v11. * Hoặc bên dưới; nếu bạn cần các tính năng mới hơn và có thời gian để có thể khắc phục tải phụ thuộc bị hỏng, hãy nâng cấp Gulp lên 4. * trở lên!
Như những người khác đã đề cập, Gulp 3.*
không được hỗ trợ trên Node 12
trở lên, vì vậy bạn sẽ phải hạ phiên bản Node của mình xuống 11.*
hoặc bên dưới, HOẶC nâng cấp Gulp của bạn lên4.0
.
Tùy chọn tốt nhất cuối cùng phụ thuộc vào thời gian bạn có, vì việc nâng cấp Gulp mang lại lợi ích của gulpfiles sạch hơn và kiểm soát được xây dựng để có các tác vụ chạy theo chuỗi hoặc song song , nhưng cũng phụ thuộc vào việc bạn viết lại gulpfile của mình theo cú pháp mới và might (đọc: có thể sẽ - xem phần cuối của bình luận này) gây ra xung đột với một số phụ thuộc.
Nút hạ cấp
Đây là lựa chọn dễ dàng và nhanh nhất. Đặc biệt nếu bạn sử dụng n hoặc nvm , vì những điều này cho phép bạn cài đặt và chuyển đổi rất nhanh giữa các phiên bản Node.
Cài đặt phiên bản Node trên N
n 10.16.0
Phiên bản cài đặtNode trên NVM
nvm install 10.16.0
Một khi bạn đã thực hiện điều này, bạn có thể cần phải xây dựng lại các phụ thuộc npm của mình hoặc loại bỏ cả node_modules
thư mục VÀ package-lock.json
tệp của bạn và cài đặt lại các phụ thuộc của bạn. Mặc dù nếu bạn chỉ đơn thuần trở lại phiên bản Node có sẵn, có lẽ bạn sẽ ổn.
Nâng cấp Gulp
Như đã đề cập ở trên, đây là một nhiệm vụ tốn nhiều thời gian hơn, nhưng có thể mang lại lợi ích về lâu dài. Ví dụ, Node 12
hiện đã giới thiệu hỗ trợ riêng cho các Mô-đun ES (đằng sau một cờ thử nghiệm) và hỗ trợ đầy đủ trong Node 13
.
Bạn có thể cần nâng cấp Node để sử dụng nó, buộc bạn phải nâng cấp Gulp. Hoặc bạn có thể chỉ đơn giản muốn những lợi ích của việc sử dụng Gulp 4, vì nó cung cấp khả năng kiểm soát tốt hơn và hiệu quả hơn đối với các tác vụ viết.
Đã có một số bài viết về vấn đề này, vì vậy tôi sẽ không giải thích thêm về các chi tiết cụ thể, nhưng để nhắc lại - đây không phải là một công việc nhanh chóng . Tùy thuộc vào quy mô của dự án của bạn, có thể có một số yêu cầu viết lại đáng chú ý và bạn có thể có các phụ thuộc bị phá vỡ. Nếu bạn đang thiếu thời gian, bạn nên chọn cách đơn giản là hạ cấp Node, ít nhất là tạm thời.
Nhưng tôi đã có Gulp 4, và nó vẫn không hoạt động!
Nếu, giống như tôi, bạn đã sử dụng Gulp 4+ (Tôi đã sử dụng Gulp 4.0.2
, ban đầu trên Node 10) và gần đây đã nâng cấp (tôi đã nâng cấp lênNode 13.8.0
) thì bạn vẫn gặp sự cố, có thể là do người phụ thuộc đang phụ thuộc vào phiên bản cũ hơn của Gulp, và điều đó đang bị cuốn vào đường ống dẫn.
Trong trường hợp của tôi, gulp-combine-mq
là một phụ thuộc sử dụng Gulp3.9.*
. Vô hiệu hóa nhiệm vụ này trong gulpfile của tôi cho phép Gulp chạy lại.
Nếu điều này xảy ra, bạn có một vài lựa chọn: bạn có thể,
- Không có plugin nếu không thực sự cần thiết
- Tìm một sự thay thế,
- Sửa plugin
Không cần phải nói, nếu bạn có một số plugin dựa trên phiên bản Gulp cũ hơn - đặc biệt là nếu các plugin này rất quan trọng cho ứng dụng của bạn - đây là nơi có thể có thêm một lượng lớn thời gian để nâng cấp Gulp (do đó là các cảnh báo ở trên).
Nếu điều này xảy ra, tốt nhất là hạ cấp Node, ít nhất là cho đến khi các bản vá có thể được ban hành.