"Kod üreteci," 100KB "maksimum değerini aştığından [bazı dosyanın] stilini tim zaman aşımına uğrattı.

Projeme yeni bir npm paketi ekledim ve bu modüllerden birinde olmasını istiyorum.

Şimdi bu mesajı web paketinden alıyorum,

build moduleNote: Kod oluşturucu, "D: /path/to/project/node_modules/ramda/dist/ramda.js" stilinin "100KB" maksimum değerini aştığındaki stilini önceden belirledi.

Bunun anlamı ne? Biraz harekete geçmem gerekiyor mu?

129
Johan, bunu çözen cevabı kabul ettiğinden emin ol.
katma yazar Dana Woodman, kaynak
Webpack yapılandırmanızı bir yere koyabilir misiniz? Söz konusu NPM paketi nedir?
katma yazar Juho Vepsäläinen, kaynak

6 cevap

This is related to compact option of Babel compiler, which commands to "not include superfluous whitespace characters and line terminators. When set to 'auto' compact is set to true on input sizes of >100KB." By default its value is "auto", so that is probably the reason you are getting the warning message. See Babel documentation.

Bu seçeneği sorgu parametresi 'ni kullanarak Web paketinden değiştirebilirsiniz. Örneğin:

loaders: [
    { test: /\.js$/, loader: 'babel', query: {compact: false} }
]
129
katma
hatanın compact seçeneğine başvurmasını dilerseniz ...
katma yazar Evan Carroll, kaynak
@ Ricardo Stuven ama neden yanlış olarak değiştireyim ki? "gereksiz beyaz boşluk karakterleri ve satır sonlandırıcıları dahil etmemek" için olumlu bir şey gibi görünüyor
katma yazar omriman12, kaynak
@Ben o kadar basitçe biz sadece gelişirken yanlış ayarlanmış olur?
katma yazar omriman12, kaynak
Ancak, doktor "otomatik" olarak ayarlandığında kompakt> 500KB giriş boyutlarında true olarak ayarlandığını söyledi. Neden > 100KB bu mesajı attı?
katma yazar novaline, kaynak
@ omriman12 Bazen okunabilir bir çıktıya sahip olmak daha değerlidir; Babel'i programlı olarak büyük miktarda kod üretmek için kullanıyorum ve compact auto 'a ayarlandığında bu kod tek bir satırda oluşturuluyor. Bu, testleri okumayı gerçekten zorlaştırır. :)
katma yazar Ben, kaynak
@ omriman12 Çıktıyı nasıl kullanacağınıza bağlı. Küçültülecek bir üretim yapısıysa, bu parametreyi false olarak ayarlamanın değeri yoktur. Çıktı formatının önemli olduğu mayın gibi durumlar için bu değere sahiptir. Çoğu şey gibi, buna da bağlı. :)
katma yazar Ben, kaynak
@DuLin Eski bir sürümünde> 100KB idi.
katma yazar Ricardo Stuven, kaynak
Ayrıca webpack.config.js dosyasını temiz hale getirmek için .babelrc dosyasına seçeneği ekleyebiliriz, örneğin .babelrc dosyasına {"compact": true} ekleyin.
katma yazar Ron, kaynak
Birden fazla yükleyiciniz varsa, query parametresi yerine ? Compact = false 'ı kullanabilirsiniz. Örneğin: {test: /\.js$/, loaders: ['ng-annotate', 'babel? Compact = false']}
katma yazar kendsnyder, kaynak

Bu bir Babil hatası gibi görünüyor. Babil-loader kullandığını sanıyorum ve harici kütüphaneleri loader testinden dışlamıyorsun. Söyleyebileceğim kadarıyla, mesaj zararlı değil, ama yine de böyle bir şey yapmalısın:

loaders: [
    { test: /\.js$/, exclude: /node_modules/, loader: 'babel' }
]

Bir göz atın. Öyle miydi?

40
katma
Aynı yol aynı mı? Belki de harici kütüphanen başka bir yerdedir? Olmazsa Ricardo'nun çözümünü de deneyebilirsiniz. Bu sorun çok kritik değil.
katma yazar mhelvens, kaynak
Garip, exclude:/node_modules/ yapmama rağmen, aynı mesajı (ramda için de) görüyorum.
katma yazar Roman Pominov, kaynak
Benim hatam. Yanlış konfigürasyonu kontrol ediyordum. Gerçek olanın exclude değeri yoktu.
katma yazar Roman Pominov, kaynak

Aşağıdaki üç seçenekten biri mesajdan kurtulur (ancak farklı nedenlerden ve sanırım farklı yan etkilerden dolayı):

  1. node_modules dizinini dışlayın veya açıkça ekleyin , uygulamanızın bulunduğu dizini (muhtemelen 100KB’dan büyük dosyaları içermeyen)
  2. Babel seçeneğini compact ayarını olarak ayarlayın true (aslında "otomatik" dışındaki herhangi bir değer)
  3. Babel seçeneğini compact olarak false (yukarı bakın)
  4. olarak ayarlayın

Yukarıdaki listede # 1, node_modules dizini hariç tutularak ya da uygulamanızın bulunduğu dizini de dahil ederek açıkça elde edilebilir.

Örneğin. webpack.config.js öğesinde:

let path = require('path');
....
module: {
     loaders: [
          ...
          loader: 'babel',
          exclude: path.resolve(__dirname, 'node_modules/')

... veya kullanarak şunları içerir: path.resolve (__ dirname, 'app /') (yine webpack.config.js ).

Yukarıdaki listede yer alan # 2 ve # 3, bu cevabında veya (tercihim) düzenlemeyle önerilen yöntemle gerçekleştirilebilir. .babelrc dosyası. Örneğin.:

$ cat .babelrc 
{
    "presets": ["es2015", "react"],
    "compact" : true
}

Aşağıdaki kurulumla test edildi:

$ npm ls --depth 0 | grep babel
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
16
katma

Ricardo Stuven'ın yolunu denedim ama bu benim için işe yaramadı. Sonunda ne işe yaradı "compact" oldu: .babelrc dosyama false:

{
    "compact": false,
    "presets": ["latest", "react", "stage-0"]
}
4
katma
Babel 6.5.x, webpack 2 kullanarak aynı mesajı aldım ancak lodash.js için bu sorunu çözdü.
katma yazar phil_lgr, kaynak

React/redux/webpack/babel build komut dosyasında text/babel komut dosyasını kaldırarak bu hatayı düzeltti

hata var:

<script type="text/babel" src="/js/bundle.js"></script>

hata yok:

<script src="/js/bundle.js"></script>
2
katma

Daha fazla açıklama için BU LİNK , 'e gereksiz boşluk karakterleri ve satır sonlandırıcılar içermemesi komutunu veren Babel derleyicisi seçeneğidir. bir süre önce eşiği 100KB idi, ancak şimdi 500KB .

Bu seçeneği geliştirme ortamınızda, bu kodun .babelrc dosyasında olmasını devre dışı bırakmanızı öneriyorum.

{
    "env": {
      "development" : {
        "compact": false
      }
    }
}

Babel üretim ortamı için, auto olan varsayılan yapılandırmayı kullanın.

1
katma