[webpack] Webpack-중요 종속성 : 종속성 요청은 표현식입니다.

request베어 본 웹팩 프로젝트에서 가져올 때 세 가지 경고 메시지가 표시됩니다 . 버그를 재현하는 최소한의 예는 GitHub (run npm installnpm start) 에서 사용할 수 있습니다 .

Critical dependency: the request of a dependency is an expression

이 경고를 어떻게 없앨 수 있습니까?


추가 정보:

Webpack require은 최소한의 번들을 만들기 위해 호출을 정적으로 해결하려고합니다 . 라이브러리가 (예 : 호출이 필요한 A의 변수 나 표현식을 사용하는 경우 require('' + 'nodent')이 라인 의를 ajv) 웹팩은 수입을 정적으로 전체 패키지를 확인할 수 없습니다.

내 근거는 이러한 동적 가져 오기가 프로덕션에서 바람직하지 않으며 코드가 경고없이 유지되는 것이 가장 좋다는 것입니다. 즉, 문제를 해결하는 솔루션을 원합니다. 예 :

  1. 필요한 라이브러리를 가져오고 경고가 발생하지 않도록 웹팩을 수동으로 구성하십시오.
  2. hack.js어떤 식 으로든 require 호출을 재정의 하는 파일을 내 프로젝트에 추가합니다 .
  3. 내 라이브러리를 업그레이드합니다. ajv-5.0.1-beta.3경고를 침묵시키는 수정이 있습니다. 나는 그것을 사용하려는 경우에는, 나는 그것이 때까지 발표하고, 될 때까지 기다려야 har-validator하고 request이후의 업데이트를 릴리스합니다. har-validator베타 버전 을 강제 로 사용 하는 방법이 있다면 ajv내 문제가 해결 될 것입니다.
  4. 다른



답변

해결 npm install request@2.79.0 --save

의 저자에 따르면 ajv이 문제는 request몇 주 안에의 최신 버전에서 해결 될 것으로 예상 됩니다.


답변

이것을 교체

new webpack.ContextReplacementPlugin(
        /angular(\\|\/)core(\\|\/)@angular/,
        helpers.root('./src'), // location of your src
        {} // a map of your routes
    ),

이것으로

new webpack.ContextReplacementPlugin( /(.+)?angular(\\|\/)core(.+)?/, root('./src'), {} )


답변

이 경고는 (dependancies 또는 devDependencies)의 패키지 삽입에 연결될 수 있습니다.

문제가 갑자기 나타나면 package.json의 마지막 수정 사항을 확인하십시오.

.NET Framework를 다시 시작하려는 경우 package-lock.json 제거를 고려하십시오 npm install.


답변