프로젝트에 새 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} }
]
답변
이것은 바벨 오류 인 것 같습니다 . babel-loader를 사용하고 있으며 로더 테스트에서 외부 라이브러리를 제외하지 않는 것 같습니다. 내가 알 수있는 한, 메시지는 해롭지는 않지만 여전히 다음과 같이해야합니다.
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel' }
]
보세요 그랬어?
답변
아래 세 가지 옵션 중 하나가 메시지를 제거합니다 (그러나 다른 이유로 그리고 다른 부작용으로 가정합니다).
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
답변
Ricardo Stuven의 방식으로 시도했지만 효과가 없었습니다. 결국에는 .babelrc 파일에 “compact”: false를 추가했습니다.
{
"compact": false,
"presets": ["latest", "react", "stage-0"]
}
답변
read에 대한 자세한 설명 은 불필요한 공백 문자와 줄 종결자를 포함하지 않는 명령의 THIS LINK
옵션입니다 . 몇 번 전에 임계 값이 되었지만 지금은 입니다.Babel compiler
100KB
500KB
개발 환경 에서이 코드를 .babelrc
파일로 사용 하여이 옵션을 비활성화하는 것이 좋습니다 .
{
"env": {
"development" : {
"compact": false
}
}
}
프로덕션 환경의 Babel
경우 기본 구성 인을 사용하십시오 auto
.
답변
react / redux / webpack / babel 빌드에서 스크립트 태그 유형 text / babel을 제거하여이 오류를 수정했습니다.
오류가 발생했습니다 :
<script type="text/babel" src="/js/bundle.js"></script>
오류가 없습니다 :
<script src="/js/bundle.js"></script>
답변
여러 모듈 규칙이있는 webpack 4에서는 .js 규칙에서 다음과 같이하면됩니다.
{
test: /\.(js)$/,
loader: 'babel-loader',
options: {
presets: ['es2015'], // or whatever
plugins: [require('babel-plugin-transform-class-properties')], // or whatever
compact: true // or false during development
}
},