[angular] Angular Browserslist : caniuse-lite가 오래되었습니다. 다음 명령`npm update`를 실행하십시오

최근에 작업중 인 Angular 8 프로젝트 (노드 v10.16.0) 에서이 오류가 발생하기 시작했습니다. npm update caniuse-lite browserslist를 실행해도 아무것도 수행되지 않았습니다.

그래서 package-lock.json을 제거하고 node_modules를 제거하고 npm install을 실행했지만 browserlist 파일은 사라졌습니다. ng build를 다시 실행하면 동일한 메시지가 표시됩니다. Browserslist : caniuse-lite가 오래되었습니다. 다음 명령을 실행하십시오npm update

이 게시물은 같은 주제에 있습니다 :
Browserslist : caniuse-lite is old. 다음 명령 ‘npm update caniuse-lite browserslist’를 실행하십시오.
그러나 WebCompiler와 autoprefixer에 대해 이야기하고 있으며 그 사실을 모릅니다. 안내해주세요



답변

아래 명령을 실행하여 caniuse-lite 오래된 문제를 해결했습니다.

npm cache clean  # optional
npm install caniuse-lite@latest --save


답변

TLDR : (설명없이 반 직관적으로 보일 수 있음)

  npm install caniuse-lite browserslist
  npm uninstall caniuse-lite browserslist

설명:

이 경고 메시지 ( “canisuse-lite가 오래되었습니다. 제발 ….”)는 설치된 버전의 caniuse-lite가 현재 버전에서 2 개보다 오래된 버전을 찾으면 빌드 / 시작 중에 browserslist의 스크립트에 의해 출력됩니다. 프로젝트에서 아무것도 변경되지 않고 프로젝트를 시작하거나 빌드 할 때 갑자기이 메시지가 표시되면, 아마도 최신 버전의 caniuse-lite가 업데이트 된 것입니다.

불행히도, browserslist가 표시하는 텍스트 메시지는 프로젝트의 종속성으로 caniuse-lite를 설치 한 경우에만 유용합니다. 아마 당신은하지 않았습니다. 따라서 제안 된 ‘npm update caniuse-lite’또는 ‘npm update’caniuse-lite @ latest ‘(또는’npm install ‘)를 실행하면 npm은 package.json 종속성에 나열된 패키지를 볼 수 없으므로 무시합니다. 요청.

그 패키지들은 어떻게 의존성이 되었습니까? 프로젝트가 생성되었을 때 (앱 angularapp 또는 create-react-app 또는 프레임 워크와 유사) npm은 browserslist를 프로젝트의 종속성 중 하나가 아닌 필요한 도구의 종속성으로 설치했습니다. 동시에, caniuse-lite는 browserslist의 종속 항목으로 설치되었습니다. 나중에 프로젝트가 업데이트되면 package-lock.json 파일이 만들어져 모든 종속성을 특정 버전으로 잠급니다.

package-lock.json의 종속성 목록에서 버전 정보를 업데이트 할 수있는 경우 ‘npm install’을 실행하면 node_modules에서 이러한 패키지가 업데이트됩니다. package-lock.json을 수동으로 편집해서는 안됩니다. 대신 가장 좋은 방법은 다음과 같습니다.

  1. 이러한 패키지를 프로젝트의 종속성으로 임시 설정하십시오.

    npm install caniuse-lite 브라우저 목록

    패키지를 최신 버전으로 업데이트하는 것 외에도 package.json 및 가장 중요한 package-lock.json의 종속성 목록이 업데이트됩니다.

  2. 프로젝트의 직접적인 종속성으로 다음 패키지를 제거하십시오.

    npm uninstall caniuse-lite 브라우저 목록

    이러한 패키지는 다른 종속성에 의해 사용되므로 node_modules에서 제거되지 않습니다. package.json 만 프로젝트 종속성으로 제거하도록 업데이트되었습니다.

  3. package-lock.json을 커밋하십시오. 다른 사람은 이제 ‘npm install’을 실행하여 package-lock.json의 하위 종속성 목록에서 업데이트 된 두 패키지를 가져오고 경고 메시지를 중지 할 수 있습니다.


답변