Danh sách trình duyệt: caniuse-lite đã lỗi thời. Vui lòng chạy lệnh tiếp theo `npm update caniuse-lite browserlist`


91

Gần đây, khi tôi biên dịch các tệp scss của mình, tôi gặp lỗi. Thông báo lỗi cho biết:

Danh sách trình duyệt: caniuse-lite đã lỗi thời. Vui lòng chạy lệnh tiếp theonpm update caniuse-lite browserslist

Đầu tiên, như thông báo cho biết, tôi đã chạy npm update caniuse-lite browserslistnhưng nó không khắc phục được sự cố. Tôi đã xóa toàn bộ thư mục gật đầu và cài đặt lại, tôi cũng đã cập nhật toàn bộ thư mục npm updatenhưng không có thư mục nào giải quyết được vấn đề. Tôi cũng đã cài đặt lại trình sửa lỗi tự động và danh sách trình duyệt nhưng không ai trong số họ giải quyết được sự cố.

Nếu tôi loại bỏ

"options": {
      "autoPrefix": "> 1%"
    }

từ của tôi compilerconfig.json, mọi thứ hoạt động tốt có nghĩa là có thể nó liên quan đến trình sửa lỗi tự động. Ngoài ra, tôi đã thay đổi thủ công phiên bản gói thành phiên bản mới nhất trên package.jsonvà cài đặt lại nhưng không may mắn.

Câu trả lời:


44

Có vẻ như bạn đang sử dụng tiện ích mở rộng Trình biên dịch Web của Visual Studio. Có một vấn đề mở cho điều này được tìm thấy tại đây: https://github.com/madskristensen/WebCompiler/issues/413

Có một giải pháp được đăng trong vấn đề đó:

  1. Đóng Visual Studio
  2. Đi tới C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X(X là phiên bản của WebCompiler)
  3. Xóa các thư mục sau khỏi node_modulesthư mục: caniuse-litebrowserslist Mở CMD (bên trong C:\Users\USERNAME\AppData\Local\Temp\WebCompilerX.X.X) và chạy:npm i caniuse-lite browserslist

1
Tôi đã làm điều đó và tôi không gặp lỗi đó nữa nhưng tôi gặp một lỗi mới: Lỗi plugin: Không thể tìm thấy mô-đun 'autoprefixer'. Tôi đã cố gắng cài đặt lại và cập nhật trình sửa lỗi tự động nhưng tôi vẫn gặp lỗi đó.
Mehrdad Babaki

Có vẻ như một vấn đề khác. Nếu bạn có một liên kết đến dự án của mình trực tuyến hoặc có thể kết hợp một dự án khác có vấn đề, tôi rất vui khi xem xét nó.
Scott Kuhl

Có vẻ như khi tôi đang cố gắng khắc phục sự cố bằng cách nâng cấp và cài đặt lại trình sửa lỗi tự động, tôi đã gặp lỗi gì đó. May mắn thay, hôm nay Web Compiler đã tự cập nhật và tôi lại thấy thông báo lỗi đó. Tôi đã làm theo các bước ở trên và lần này sự cố đã được khắc phục.
Mehrdad Babaki

Bất kỳ ý tưởng nào về vị trí thư mục này trên mac?
Safa Alai

36

Hãy thử điều này nó đã giải quyết được vấn đề của tôi npx browserslist@latest --update-db


1
Đối với ngữ cảnh: IDE của tôi là VS Code và dự án JS của tôi chỉ bao gồm Parcel, react và react-dom khi tôi bắt đầu gặp lỗi này. Không có tùy chọn nào ở trên hoạt động. Giải pháp này đã sửa lỗi của tôi.
Klay

1
Trong PhpStorm hoạt động tuyệt vời.
Neolot

đã làm việc cho VueJS
JOG

Điều này đã giúp tôi rất nhiều, cảm ơn các bạn 5 Sao thân yêu
PacyL.js

Không thành công trên Windows `` C: \ project \ ember-cli-typecript-blueprints> npx browserlist @ new --update-db npm ERR! cb.apply không phải là một hàm npm ERR! Có thể tìm thấy nhật ký đầy đủ của lần chạy này trong: npm ERR! c: \ npm \ cache_logs \ 2020-11-15T14_19_08_958Z-debug.log Cài đặt cho ['browserlist @ new'] không thành công với mã 1 `` '
bryan.crotaz

31

Dành cho các nhà phát triển Angular

Mặc dù, tôi trả lời điều này rất muộn. Tôi có thói quen xấu là kiểm tra các bản thay đổi của mọi thư viện tôi sử dụng 😀 và trong khi kiểm tra các ghi chú phát hành của Angular CLI, tôi phát hiện ra rằng họ đã phát hành một bản vá mới vào ngày hôm qua (9 tháng 1 năm 2020) để khắc phục sự cố này.

https://github.com/angular/angular-cli/releases/tag/v8.3.22

Vì vậy, khi bạn chạy ng update, bạn sẽ nhận được các bản cập nhật cho @angular/cli:

nhập mô tả hình ảnh ở đây

Và đang chạy ng update @angular/clisẽ khắc phục được cảnh báo này.

Chúc mừng!


19

Tôi đã tìm thấy một đoạn ngắn thay vì đi qua vs code appData/webCompiler, tôi đã thêm nó như một phần phụ thuộc vào dự án của mình với cmd này npm i caniuse-lite browserslist . Nhưng bạn có thể cài đặt nó trên toàn cầu để tránh thêm nó vào mỗi dự án.

Sau khi cài đặt, bạn có thể xóa nó khỏi dự án của mình package.jsonvà thực hiện npm i.

Cập nhật:

Trong trường hợp, giải pháp Trên không khắc phục được sự cố. Bạn có thể chạy npm update, vì điều này sẽ nâng cấp các gói không dùng nữa / lỗi thời.

Ghi chú:

Sau khi bạn chạy bản cập nhật npm, có thể thiếu phần phụ thuộc. Theo dõi lỗi và cài đặt các phần phụ thuộc bị thiếu. Của tôi là gật đầu, tôi đã sửa chữa bằng cáchnpm i nodemon -g


4
Tôi không có thư mục / WebCompiler trong thư mục / TEMP của mình như một số bài đăng khác ở đây đề xuất, vì vậy tôi đã chạy dòng lệnh này và dường như đã khắc phục được sự cố.
AppDreamer

13

Tiếp tục câu trả lời ở trên .

Có cùng "lỗi plugin" như @MehrdadBabaki. Tôi đã gỡ cài đặt trình biên dịch web, xóa thư mục AppData WebCompiler được đề cập ở trên, sau đó mở lại VS2019 và cài đặt lại trình biên dịch web.

SAU ĐÓ, tôi lại vào thư mục WebCompiler và làm npm i autoprefixer@latest npm i caniuse-lite@latestnpm i caniuse-lite browserslist@latest


chỉ cập nhật autoprefixer, caniuse-lite, browserslist là tốt cho tôi
cwhsu

9

npm --depth 9999 updateđã khắc phục sự cố cho tôi - rõ ràng là do package-lock.jsonđã nhấn mạnh vào các phiên bản lỗi thời.


11
Ngay cả khi npm --depth 99 update caniuse-lite browserslistgây ra JavaScript heap out of memorytrong dự án của tôi, nhưng npm --depth 20 update caniuse-lite browserslistchạy nhanh và giải quyết lỗi trong trường hợp của tôi.
Alexandr Nil

6

Trong trường hợp của tôi, tôi đã xóa ra caniuse-lite, browserslistthư mục từ node_modules.

Sau đó, tôi gõ lệnh sau để cài đặt các gói.

npm i -g browserslist caniuse-lite --save

hoạt động tốt.


2
Chúng tôi phải thêmnpm i browserslist caniuse-lite --save
lén lút

3

Xóa node_modulespackage-lock.jsonnpm igiải quyết vấn đề đối với tôi.


1
xóa package-lock.json có thể dẫn đến một số lỗi thay đổi vi phạm nếu bạn có lịch sử cài đặt gói lâu dài, ví dụ: một dự án đã hoạt động và phát triển trong hơn một năm và có các gói có nhiều phụ thuộc cấp 3 có thể thực hiện phá vỡ những thay đổi
kafinsalim

2

Như đã đề cập trong câu trả lời của Scott Kuhl, vấn đề này được đề cập trong https://github.com/madskristensen/WebCompiler/issues/413

Đối với tôi, việc chạy lệnh npm i caniuse-lite- browserslistchỉ hoạt động trong khoảng 1/2 ngày trước khi nó lại gặp sự cố.

Giải pháp sau đây, được đề cập trong bài đăng, hoạt động tốt hơn nhiều. Điều này cập nhật tệp node.js để nó sử dụng console.logthay vì console.warnkhi trả về những lỗi này.

Bạn có thể cập nhật thủ công tệp này tại C: \ Users \ [Tên người dùng] \ AppData \ Local \ Temp \ WebCompiler [Số phiên bản] \ node_modules \ browserlist

Hoặc, để nó được thực hiện tự động, hãy thêm phần sau vào tệp .csproj của bạn bằng cách:

  1. Nhấp chuột phải vào tệp dự án và chọn "Dỡ dự án"
  2. Chỉnh sửa tệp .csproj
  3. Dán phần sau vào tệp dự án. Tôi đã dán nó vào cuối tệp, trước </Project>thẻ kết thúc và trước khi gói trình biên dịch web xây dựng được nhập.
    <ItemGroup>
        <PackageReference Include="MSBuildTasks" Version="1.5.0.235">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
        </PackageReference>
    </ItemGroup>
    <PropertyGroup>
        <TempFolder>$([System.IO.Path]::GetTempPath())</TempFolder>
    </PropertyGroup>
    <ItemGroup>
        <BrowsersListNodeJsFiles Include="$(TempFolder)\WebCompiler*\node_modules\browserslist\node.js" />
    </ItemGroup>
    <Target Name="BrowsersListWarningsAsInfo" BeforeTargets="WebCompile">
        <FileUpdate Files="@(BrowsersListNodeJsFiles)"
                    Regex="console.warn"
                    ReplacementText="console.log" />
    </Target>

  1. Tải lại dự án vào giải pháp.

Cảm ơn bạn! Đây là cách sửa chữa tốt nhất cho tôi. Các bản sửa lỗi ở trên sẽ lỗi thời mỗi ngày!
Bradly Bennison

2

Tôi đã khắc phục sự cố này bằng cách thực hiện từng bước:

  1. tẩy node_modules
  2. loại bỏ package-lock.json,
  3. chạy npm --depth 9999 update
  4. chạy npm install

1

Tôi cũng gặp vấn đề như vậy lệnh này hoạt động với tôi

npm i autoprefixer@latest

Nó tự động được thêm vào cần phụ thuộc vào package.jsonpackage-lock.jsontệp như dưới đây:

package.json

"autoprefixer": "^9.6.5",

package-lock.json

"@angular-devkit/build-angular": {

...

"dependencies": {
    "autoprefixer": {
      "version": "9.4.6",
      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
      "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
      "dev": true,
      "requires": {
        "browserslist": "^4.4.1",
        "caniuse-lite": "^1.0.30000929",
        "normalize-range": "^0.1.2",
        "num2fraction": "^1.2.2",
        "postcss": "^7.0.13",
        "postcss-value-parser": "^3.3.1"
      }
    },

...

  }

...

"autoprefixer": {
    "version": "9.6.5",
    "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.5.tgz",
    "integrity": "sha512-rGd50YV8LgwFQ2WQp4XzOTG69u1qQsXn0amww7tjqV5jJuNazgFKYEVItEBngyyvVITKOg20zr2V+9VsrXJQ2g==",
    "requires": {
      "browserslist": "^4.7.0",
      "caniuse-lite": "^1.0.30000999",
      "chalk": "^2.4.2",
      "normalize-range": "^0.1.2",
      "num2fraction": "^1.2.2",
      "postcss": "^7.0.18",
      "postcss-value-parser": "^4.0.2"
    },

...

}

1

Tôi không chắc chính xác vấn đề của mình là do đâu, nhưng tôi tin rằng đó là do tôi đang sử dụng các gói toàn cầu giống nhau từ cả npm và Yarn.

Tôi đã gỡ cài đặt tất cả các gói toàn cầu npm, sau đó khi sử dụng lại lệnh sợi, sự cố đã không còn nữa.

Để xem các gói toàn cầu được cài đặt ...

cho npm:

npm ls -g --depth=0

cho Sợi:

yarn global list

Sau đó, tôi gỡ cài đặt từng gói mà tôi thấy trong danh sách npm, bằng cách sử dụng:

npm uninstall -g <package-name>

0

Trên máy Mac, tôi đã xóa node_modules và package-lock.json, sau đó chạy npm install và nó đã khắc phục sự cố của tôi.


0

Nhiều người khuyên bạn nên loại bỏ package-lock.jsonhoặc yarn.lock. Đây rõ ràng là một ý tưởng tồi!

Tôi đang sử dụng Sợi và tôi đã có thể để sửa chữa vấn đề này bằng cách loại bỏ chỉ caniuse-dbcaniuse-litemục trong tôi yarn.lockvà làm một yarn.

Không cần thiết phải phá vỡ chức năng chính của tệp khóa bằng cách xóa nó.


-1

Tôi đã hạ cấp phiên bản nút từ 12 xuống 10

BIÊN TẬP

Lỗi này xảy ra với tôi vì tôi đang sử dụng phiên bản nút 12. Khi tôi hạ cấp xuống phiên bản 10.16.5, lỗi này sẽ dừng lại. Lỗi này đã xảy ra trong env cục bộ của tôi, nhưng trong sản xuất và dàn dựng, nó không xảy ra. Trong phiên bản nút prod và staging là 10.x vì vậy tôi chỉ làm điều này và tôi không cần cập nhật bất kỳ gói nào trong package.json của mình


2
Chào mừng đến với SO! Khi bạn đăng một câu trả lời, ngay cả khi nó đúng, hãy cố gắng giải thích một chút.
David García Bodego

Nó không phải là một câu trả lời tồi ... chỉ cần chỉnh sửa nó một chút là xong.
David García Bodego

-1

Để khắc phục sự cố, bạn có thể nhập lệnh dưới đây:

'npm -g cập nhật'


-1

Nếu bạn sử dụng sợi:

yarn upgrade

Giúp tôi với


-1

Giải pháp tối thiểu phù hợp với tôi cho dự án hiện tại

  • Một dự án tạo-phản ứng-ứng dụng
  • Ubuntu / * nix
  • 2020
  • Nút 14.7

xóa node_modules/browserslistthư mục trong dự án

hiện nay

npm run build

không còn tạo ra thông báo đó nữa


Nếu bạn vừa xóa thư mục, điều gì sẽ xảy ra lần sau bạn npm install/ npm ci?
jonrsharpe

Thực tế thì sau đó tôi gặp sự cố với css perfix, cuối cùng tôi đã cập nhật tạo-tạo-ứng dụng cho dự án đó và tất cả đều tốt.
Michael Durrant

-3

Trong trường hợp của tôi, điều này hoạt động tốt ...

sudo npm i -g browserslist caniuse-lite


2
Bạn không nên sử dụng sudovới npm install -gvì điều này có thể gây ra các vấn đề về quyền. Nếu bạn không thể cài đặt các mô-đun trên toàn cầu, điều này thực sự là do các vấn đề về quyền đã tồn tại. Một tìm kiếm SO sẽ giúp tìm ra cách giải quyết nó.
Brady Dowling
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.