npm CẢNH BÁO notsup LỰA CHỌN TÙY CHỌN TÙY CHỌN: Nền tảng không được hỗ trợ cho fsevents@1.0.14


113

Tôi đang cố gắng chạy dự án này https://github.com/Soundnode/soundnode-app sau khi cập nhật phiên bản minimatch lên 3.10.9, tôi gặp lỗi này

npm CẢNH BÁO tùy chọn SKIPPING TÙY CHỌN TÙY CHỌN: fsevents@^1.0.0 (node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents): npm CẢNH BÁO THÔNG BÁO SKIPPING TÙY CHỌN PHỤ THUỘC: Nền tảng không được hỗ trợ {1.0.14ents@1.0.14: os ":" darwin "," Arch ":" any "} (hiện tại: {" os ":" win32 "," Arch ":" ia32 "})

cấu hình của tôi là Node v - 4.4.2 npm v- 3.10.9 tôi đang làm việc trên HĐH windows 32 bit


1
Tôi nghe có vẻ không có lỗi - bạn có gặp sự cố khi chạy mã mặc dù vậy không? npm WARNchỉ là vậy - một cảnh báo có thể đáng chú ý, nhưng không thực sự phá vỡ bất cứ điều gì.
Aurora0001

2
Và cảnh báo cụ thể này chỉ cho bạn biết rằng một phần phụ thuộc tùy chọn đã không được cài đặt vì nền tảng của bạn không phù hợp với các yêu cầu của nó. Trong trường hợp này nó đang tìm kiếm darwin và bạn đang ở trên win32
Dave V

một dự án grunt của nó, sau khi chạy lệnh này "NPM cài đặt -g grunt-cli", tôi cố gắng chạy NPM cài đặt khi tôi nhận được cảnh báo này,
Aishwary Tiwari

1
@AishwaryTiwari, bạn thực sự gặp lỗi hay mã không hoạt động? Cảnh báo có thể không phải là một vấn đề thực sự, bởi vì (như thông báo lỗi cho biết), nó đã bỏ qua một phần phụ thuộc tùy chọn.
Aurora0001

1
Có một yêu cầu kéo để khắc phục sự cố: github.com/npm/npm/pull/19198 Bạn có thể đăng ký yêu cầu kéo đó, vì vậy bạn sẽ nhận được bản cập nhật khi nó bị đóng.
RiZKiT

Câu trả lời:


150

Đó là một cảnh báo, không phải một lỗi. Nó xảy ra vì fseventslà một phụ thuộc tùy chọn, chỉ được sử dụng khi dự án được chạy trên môi trường macOS (gói cung cấp 'Quyền truy cập gốc vào Mac OS-X FSEvents').

Và vì bạn đang chạy dự án của mình trên Windows, fseventsnó được bỏ qua vì không liên quan.

Có một chiêu thức PR để khắc phục hành vi này ở đây: https://github.com/npm/cli/pull/169


35
Không phải một cái gì đó là tùy chọn và phụ thuộc đang mâu thuẫn với chính nó?
Martijn Burger

7
Đó là một câu hỏi lý thuyết nhiều hơn. Có lẽ conditional dependencysẽ tốt hơn? Đặt tên thật khó. Tôi đoán không dễ để tìm được một cái tên hay cho trường hợp này mà vẫn giữ được sự súc tích.
piotr.d

10
npm cài đặt - không tùy chọn
suiwenfeng

5
Tôi hoàn toàn đồng ý, @DemPilafian. Vì vậy, tôi đã chỉnh sửa câu trả lời ban đầu của mình và loại bỏ "only". Cá nhân tôi coi các cảnh báo như lỗi, nhưng trong trường hợp này, IMHO, điều này không nên được ghi lại dưới dạng cảnh báo mà là thông tin, vì trong môi trường Windows, bạn không thể làm gì để cảnh báo biến mất.
piotr.d Ngày

23
Câu trả lời hay, bây giờ tôi phải làm thế nào để thoát khỏi nó?
TetraDev

32

Điều này dường như vẫn là một vấn đề, khiến quá trình cài đặt gói bị hủy bỏ với cảnh báo về việc các gói tùy chọn không được cài đặt do "Nền tảng không được hỗ trợ".

Vấn đề liên quan đến "thu nhỏ" hoặc package-lock.jsonvẫn tồn tại sau mỗi lần thực thi trình quản lý gói. Những lần thử tiếp theo vẫn không thành công vì tệp này được tham chiếu thay vì package.json.

Thêm các tùy chọn này vào npm installlệnh sẽ cho phép các gói cài đặt lại.

   --no-optional argument will prevent optional dependencies from being installed.

   --no-shrinkwrap argument, which will ignore an available package lock or
                   shrinkwrap file and use the package.json instead.

   --no-package-lock argument will prevent npm from creating a package-lock.json file.

Lệnh hoàn chỉnh trông như thế này:

    npm install --no-optional --no-shrinkwrap --no-package-lock

nJoy!


1
Có mạo hiểm không khi đặt --no-optional-flag cho mã hoạt động chỉ để loại bỏ cảnh báo? Tại sao nó không được đặt theo mặc định?
cederlof

5
Đây không thể là một giải pháp vì sử dụng package-lock.json là một điều tốt và giải pháp này gợi ý điều ngược lại.
ismailarilik

@ismailarilik Giải pháp này cho phép tôi cài đặt các gói để tôi có thể tiếp tục công việc của mình.
nickl-

"--không tùy chọn" là một ý tưởng thực sự, rất tệ. Thường thì có thể bỏ qua cảnh báo. Bạn cũng có thể sử dụng npm install -f: github.com/angular/angular/issues/13935
FoggyDay,

12

Sử dụng tham số --force:

npm i -f

2
Tôi đã buộc cài đặt một lần với lệnh này và bây giờ khi tôi khởi chạy, npm installtôi không có bất kỳ cảnh báo nào, cảm ơn!
Allenile

1
Tôi gặp một số lỗi khi chạy lệnh đó, nhưng sau khi chạy lại npm, hãy cài đặt các cảnh báo đã biến mất! cảm ơn ông
ccoutinho

Vì vậy, bạn đang cài đặt trong dự án của mình những phụ thuộc vô ích (trong một máy windows) để thoát khỏi các cảnh báo? Nếu vậy, tôi hy vọng cây sẽ loại bỏ chúng khi xây dựng cơ sở sản xuất. Tôi thích cách giải quyết. Nó loại bỏ những thứ liên quan đến quả táo trên màn hình của tôi.
Josep Alacid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.