पाठ 7 / 30

@babel/preset-env: स्मार्ट टार्गेटिंग

preset-env का उपयोग करके स्वचालित रूप से केवल वह transpile करें जो आपके target browsers को चाहिए।

स्मार्ट target detection

@babel/preset-env सब कुछ transpile नहीं करता। यह आपके .browserslistrc या targets config को inspect करता है यह determine करने के लिए कि आप कौन से browsers को support करते हैं, फिर केवल वे features transpile करता है जो उन browsers के पास नहीं हैं।

Targets कॉन्फ़िगर करना

preset-env को बताएँ कि कौन से browsers को support करना है। आधुनिक targets अधिकांश transpilation को छोड़ देते हैं; legacy targets अधिक transpile करते हैं।

// .babelrc - modern: skip transpilation
{
  "presets": [
    ["@babel/preset-env", { "targets": { "browsers": ["last 2 versions"] } }]
  ]
}

// .babelrc - legacy: transpile more
{
  "presets": [
    ["@babel/preset-env", { "targets": { "browsers": ["IE 11"] } }]
  ]
}

DRY कॉन्फ़िगरेशन के लिए .browserslistrc का उपयोग करें

अपने समर्थित browsers को .browserslistrc में एक बार परिभाषित करें और इसे Babel, PostCSS, Autoprefixer, और अन्य tools में साझा करें। कोई duplication नहीं।