프로젝트에 새 npm 패키지를 추가하고 내 모듈 중 하나에 필요합니다.
이제 웹팩에서이 메시지를받습니다.
build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB".
무슨 뜻인가요? 조치를 취해야합니까?
프로젝트에 새 npm 패키지를 추가하고 내 모듈 중 하나에 필요합니다.
이제 웹팩에서이 메시지를받습니다.
build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB".
무슨 뜻인가요? 조치를 취해야합니까?
답변:
compact
Babel 컴파일러의 옵션 과 관련이 있습니다. "불필요한 공백 문자와 줄 종결자를 포함하지 않습니다. '자동'으로 설정하면 입력 크기가 100KB보다 크면 컴팩트로 설정됩니다." 기본적으로 값은 "auto"이므로 경고 메시지가 표시 될 수 있습니다. Babel 문서를 참조하십시오 .
쿼리 매개 변수를 사용하여 Webpack에서이 옵션을 변경할 수 있습니다 . 예를 들면 다음과 같습니다.
loaders: [
{ test: /\.js$/, loader: 'babel', query: {compact: false} }
]
?compact=false
대신 사용할 수 있습니다 query
. 예 :{test: /\.js$/, loaders: ['ng-annotate', 'babel?compact=false']}
false
. 출력 형식이 중요한 광산과 같은 경우 가치가 있습니다. 대부분의 경우와 마찬가지로 다릅니다. :)
이것은 바벨 오류 인 것 같습니다 . babel-loader를 사용하고 있으며 로더 테스트에서 외부 라이브러리를 제외하지 않는 것 같습니다. 내가 알 수있는 한, 메시지는 해롭지는 않지만 여전히 다음과 같이해야합니다.
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel' }
]
보세요 그랬어?
exclude: /node_modules/
.
exclude
.
아래 세 가지 옵션 중 하나가 메시지를 제거합니다 (그러나 다른 이유로 그리고 다른 부작용으로 가정합니다).
node_modules
디렉토리를 제외 하거나 include
앱이있는 디렉토리를 명시 적으로 제외 합니다 (100KB를 초과하는 파일은 포함하지 않을 수 있음)compact
에 true
( "자동"이외의 실제로 값)compact
을 설정 false
하십시오 (위 참조)위 목록의 # 1은 node_modules
디렉토리 를 제외 하거나 앱이있는 디렉토리를 명시 적으로 포함하여 달성 할 수 있습니다.
예 webpack.config.js
:
let path = require('path');
....
module: {
loaders: [
...
loader: 'babel',
exclude: path.resolve(__dirname, 'node_modules/')
... include: path.resolve(__dirname, 'app/')
또는를 다시 사용하여 webpack.config.js
.
위 목록의 # 2와 # 3 은이 답변에서 제안한 방법으로 또는 .babelrc
파일 을 편집하여 (내 선호도) 달성 할 수 있습니다 . 예 :
$ cat .babelrc
{
"presets": ["es2015", "react"],
"compact" : true
}
다음 설정으로 테스트했습니다.
$ npm ls --depth 0 | grep babel
├── babel-core@6.7.4
├── babel-loader@6.2.4
├── babel-preset-es2015@6.6.0
├── babel-preset-react@6.5.0
이것은 원래 OP 질문의 경우는 아니지만 기본 최대 크기를 초과하면 다른 문제의 증상 일 수 있습니다. 내 경우에는 경고가 있었지만 마침내 치명적인 오류가 발생했습니다. MarkCompactCollector : 반 공간 복사, 이전 세대 할당의 대체 실패-JavaScript 힙 메모리 부족. 그 이유는 현재 모듈을 동적으로 가져 오기 때문에 끝없는 루프로 끝났습니다 ...
require('../../../' + a + '/' + b)
)를 사용하고있었습니다 . 그것을 제거하면 문제가 해결되었습니다 (반환되지 않습니다).