2017-02-28 14 views
6

कोलाहल plugin docs का कहना है कि:कोलाहल प्लगइन क्रम जब गैर env विकल्पों के साथ env विकल्पों विलय

  • प्लगइन्स प्रीसेट से पहले चलाते हैं।
  • प्लगइन ऑर्डरिंग सबसे पहले है।
  • प्रीसेट ऑर्डरिंग को उलट दिया गया है (पहले तक अंतिम)।

कोलाहल .babelrc docs का कहना है कि:

विकल्प एक निश्चित पर्यावरण के लिए विशेष में विलय कर दिया और गैर env विशिष्ट विकल्प के ऊपर लिख रहे हैं।

दस्तावेज़ यह नहीं कहते कि वे कैसे विलय किए जाते हैं।

मैं बॉयलरप्लेट रिएक्ट प्रोजेक्ट react-slingshot का उपयोग कर रहा हूं, और मैं कक्षा गुणों का रूपांतरण करना चाहता हूं। परियोजना babel-preset-stage-1 का उपयोग करती है, जिसमें babel-plugin-transform-class-properties शामिल है।

class Example extends Component { 
    static propTypes = { 
    ... 
    } 
} 

.babelrc कि इस परियोजना में है:

{ 
    "presets": [ 
    "react", 
    "stage-1" 
    ], 
    "env": { 
    "development": { 
     "presets": [ 
     "latest", 
     "react-hmre" 
     ] 
    }, 
    "production": { 
     "presets": [ 
     ["latest", { 
      "es2015": { 
      "modules": false 
      } 
     }] 
     ], 
     "plugins": [ 
     "transform-react-constant-elements", 
     "transform-react-remove-prop-types" 
     ] 
    }, 
    "test": { 
     "presets": [ 
     "latest" 
     ] 
    } 
    } 
} 

लेकिन जब यह उसी रूप में उपयोग करते हुए, मैं:

Module build failed: SyntaxError: Missing class properties transform. 

    5 | class Example extends Component { 
> 6 |  static propTypes = { 
    | ^
    7 |  ... 
    8 |  } 
    9 | 

वर्ग गुण को बदलने मुझे इस तरह कोड लिखने देना चाहिए वर्ग गुण परिवर्तन वहां है, लेकिन जाहिर है कि ऑर्डरिंग बेकार है।

मैं इसे मैन्युअल env प्रीसेट में गैर env प्रीसेट मर्ज करके किसी भी त्रुटि के बिना संकलित करने के लिए, लेकिन अब पुनरावृत्ति का एक बहुत है पाने के लिए क्या किया:

{ 
    "env": { 
    "development": { 
     "presets": [ 
     "latest", 
     "react-hmre", 
     "stage-1", 
     "react" 
     ] 
    }, 
    "production": { 
     "presets": [ 
     ["latest", { 
      "es2015": { 
      "modules": false 
      } 
     }], 
     "stage-1", 
     "react" 
     ], 
     "plugins": [ 
     "transform-react-constant-elements", 
     "transform-react-remove-prop-types" 
     ] 
    }, 
    "test": { 
     "presets": [ 
     "latest", 
     "stage-1", 
     "react" 
     ] 
    } 
    } 
} 

वहाँ प्लगइन आदेश निर्दिष्ट करने के लिए कोई तरीका है जब env और non-env विकल्प दोनों का उपयोग करते हैं?

उत्तर

0

.babelrc env की तरह विरासत वर्ग के रूप में, यह गहरी प्रतिलिपि प्रीसेट/plugins.so यह है नहीं क्यों कोलाहल उपज प्रीसेट & प्लगइन्स डेवलपर अलग में उपयोग करने के लिए के लिए ways.you साझा करने के लिए something..babelrc env प्रीसेट/plugins गठजोड़ कर सकते हैं विरासत नीचे इस तरह:

Object.assgin({presets:['es2015']},env.development); 
//it not merge your presets,that I have tested. 
// if your env.development have a presets:['es2017'] then use es2017 otherwise use es2015 
संबंधित मुद्दे