request
베어 본 웹팩 프로젝트에서 가져올 때 세 가지 경고 메시지가 표시됩니다 . 버그를 재현하는 최소한의 예는 GitHub (run npm install
및 npm start
) 에서 사용할 수 있습니다 .
Critical dependency: the request of a dependency is an expression
이 경고를 어떻게 없앨 수 있습니까?
추가 정보:
Webpack require
은 최소한의 번들을 만들기 위해 호출을 정적으로 해결하려고합니다 . 라이브러리가 (예 : 호출이 필요한 A의 변수 나 표현식을 사용하는 경우 require('' + 'nodent')
에 이 라인 의를 ajv
) 웹팩은 수입을 정적으로 전체 패키지를 확인할 수 없습니다.
내 근거는 이러한 동적 가져 오기가 프로덕션에서 바람직하지 않으며 코드가 경고없이 유지되는 것이 가장 좋다는 것입니다. 즉, 문제를 해결하는 솔루션을 원합니다. 예 :
- 필요한 라이브러리를 가져오고 경고가 발생하지 않도록 웹팩을 수동으로 구성하십시오.
hack.js
어떤 식 으로든 require 호출을 재정의 하는 파일을 내 프로젝트에 추가합니다 .- 내 라이브러리를 업그레이드합니다.
ajv-5.0.1-beta.3
경고를 침묵시키는 수정이 있습니다. 나는 그것을 사용하려는 경우에는, 나는 그것이 때까지 발표하고, 될 때까지 기다려야har-validator
하고request
이후의 업데이트를 릴리스합니다.har-validator
베타 버전 을 강제 로 사용 하는 방법이 있다면ajv
내 문제가 해결 될 것입니다. - 다른
답변
해결 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
.