Что означает "генератор кода деоптимизировал стиль [некоторого файла], поскольку он превышает максимум" 100 КБ"?
Я добавил новый пакет npm в свой проект и потребовал его в одном из своих модулей.
теперь я получаю это сообщение от webpack,
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".
что это значит? Мне нужно что-то предпринять?
6 ответов:
Это связано с
compact
опция компилятора Babel, который командует " не включать лишние пробелы и Терминаторы строк. Если установлено значение 'auto' compact, для входных размеров >100 КБ устанавливается значение true." по умолчанию его значение "auto", так что, вероятно, причина, по которой вы получаете предупреждение. Смотрите Бабель документации.вы можете изменить эту опцию из Webpack с помощью параметр запроса. Для пример:
loaders: [ { test: /\.js$/, loader: 'babel', query: {compact: false} } ]
это похоже на ошибка Бабеля. Я предполагаю, что вы используете babel-loader и не исключаете внешние библиотеки из вашего теста загрузчика. Насколько я могу судить, сообщение не вредно, но вы все равно должны сделать что-то вроде этого:
loaders: [ { test: /\.js$/, exclude: /node_modules/, loader: 'babel' } ]
посмотреть. И это все?
либо один из следующих трех вариантов избавляется от сообщения (но по разным причинам и с разными побочными эффектами, я полагаю):
- исключить
node_modules
- каталог или явноinclude
каталог, в котором находится ваше приложение (который предположительно не содержит файлов, превышающих 100 КБ)- установить опции Бабеля
compact
доtrue
(на самом деле любое значение, кроме "auto")- установите опцию Babel
compact
tofalse
(см. выше)#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 в приведенном выше списке могут быть выполнены с помощью предложенного метода в ответ или (мое предпочтение) путем редактирования . Например:
$ 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
Я старался делать как Рикардо Stuven, но это не сработало для меня. То, что сработало в конце концов, добавило "compact": false к моему .файл babelrc:
{ "compact": false, "presets": ["latest", "react", "stage-0"] }
в react / redux/webpack/babel build исправлена эта ошибка, удалив скрипт типа тега text / babel
получил ошибку:
<script type="text/babel" src="/js/bundle.js"></script>
ошибка:
<script src="/js/bundle.js"></script>
для более подробного объяснения читайте
THIS LINK
, это вариантBabel compiler
что команды не включать лишние символы пробела и конца строки. несколько раз назад его порог был100KB
а теперь500KB
.Я предлагаю Вам отключить эту опцию в вашей среде разработки, с этим кодом в .
{ "env": { "development" : { "compact": false } } }
для производственной среды
Babel
использовать по умолчанию, которыйauto
.