2016-01-12 4 views
6

में कोलाहल-polyfill का उपयोग कैसे करें कोलाहल docs में वे सिर्फ इतना है कि import "babel-polyfill"; शामिल करने के लिए इतना है कि मैं ES6 जनरेटर का उपयोग कर सकते हैं लेकिन उसके बाद मैं अपने gulpfile.js में है कि रेखा शामिल मैं अब भी जनरल एक अपवाद कहते हैं: Uncaught ReferenceError: regeneratorRuntime is not defined यह मेरी gulpfile.jsgulpfile.js

import 'babel-polyfill'; 

var gulp = require("gulp"), 
babel = require("gulp-babel"), 
concat = require('gulp-concat'), 
rename = require('gulp-rename'), 
uglify = require('gulp-uglify'); 

gulp.task("babel", function() { 
return gulp.src(jsSrc) 
    .pipe(concat('Main.js')) 
    .pipe(babel()) 
    .pipe(gulp.dest(jsDest)) 
    .pipe(rename('Main-min.js')) 
    .pipe(uglify()) 
    .pipe(gulp.dest(jsDest)); 
}); 

jsSrcmaines6.js और अन्य .js फ़ाइलें है।

function* anotherGenerator(i) { 
    yield i + 1; 
    yield i + 2; 
    yield i + 3; 
} 

मैं यह कैसे उपयोग करने के लिए पता नहीं है .. क्या आप मेरी मदद कर सकते हैं: maines6.js यहाँ मेरे जनरेटर है?

+0

प्राप्त करना चाहते हैं तो आपको इसे अपने वास्तविक Main.js में आयात करने की आवश्यकता है क्योंकि इसका उपयोग किया जा रहा है। –

+0

हाँ जनरेटर क्रोम द्वारा समर्थित है। लेकिन मैं जनरेटर को अन्य फाइल में अलग नहीं करना चाहता हूं। –

+0

बस उसी प्रश्न में ब्राउज़र ** में उपयोग करें ** उसी बैबेल [डॉक्स] (http://babeljs.io/docs/usage/polyfill/#usage-in-browser) में आपने अपने प्रश्न में संदर्भित किया है। –

उत्तर

1

to include the polyfill you need to require it at the top of the entry point to your application.

import 'babel/polyfill' अपने jsSrc प्रविष्टि फ़ाइल के शीर्ष पर जाने के लिए

+0

मैं शीर्ष पर आयात करता हूं और मुझे लगता है कि बेबेल इसे 'आवश्यकता ("बेबेल/पॉलीफिल") में बदल देता है; ' फिर मुझे मिला' अनकॉटेड रेफरेंस त्रुटि: आवश्यक नहीं है ' –

+0

' पॉलीफ़िल 'की आवश्यकता के साथ उपयोग करने के लिए 'या' आयात' आपको मॉड्यूल लोडर सेट अप करना होगा। दो लोकप्रिय विकल्प 'वेबपैक' और 'ब्राउज़र' हैं। ब्राउज़र__ अनुभाग में __Usage देखें: https://babeljs.io/docs/usage/polyfill/। –

+0

क्षमा करें, मैं उल्लेख करना भूल गया।ब्राउज़र__ अनुभाग में __Usage केवल तभी होता है जब आप अपनी बिल्ड प्रक्रिया में मॉड्यूल लोडर (AKA बंडलर) से गुजरना चाहते हैं। –

3

जब से तुम सिर्फ घूंट और नहीं मॉड्यूल बंडलर किसी प्रकार (उदाहरण के लिए webpack)

आप चाहिए का उपयोग कर रहे की आवश्यकता होगी इस गाइड का पालन करें https://github.com/babel/gulp-babel#runtime

npm install --save-dev babel-plugin-transform-runtime 

और फिर इस

की तरह उपयोग 210
.pipe(babel({ 
     plugins: ['transform-runtime'] 
    })) 

चाल करना चाहिए :)

संपादित करें:

लगता है कि कोलाहल-प्लगइन-परिणत-क्रम बदल फाइल करने के लिए कॉल की आवश्यकता होती है जोड़ें, ताकि मुझे लगता है कि आप की आवश्यकता होगी मॉड्यूल लोडर का प्रयोग करें। मैं वेबपैक का सुझाव दूंगा, हालांकि ब्राउजरिफ़ और जेएसपीएम जैसे विकल्प हैं।

आप

npm install -g webpack 
npm install babel-loader babel-core babel-polyfill babel-preset-es2015 --save-dev 

तो फिर तुम एक webpack.config.js फ़ाइल बनाने की आवश्यकता होगी की आवश्यकता होगी। यहां एक बहुत ही प्राचीन सेटअप है।

module.exports = { 
    context: __dirname + '/app', 
    entry: ['babel-polyfill', './entries/index.js'], 
    output: { 
     path: 'dist', 
     filename: '[name].js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js/, 
       exclude: /node_modules/, 
       loader: 'babel', 
       query: { 
        presets: ['es2015'] 
       } 
      } 
     ] 
    } 
}; 
फ़ाइल संरचना ऊपर config के साथ

की तरह इस

project/ 
    node_modules/ 
    app/ 
     entries/ 
      main.js 
    dist/ 
     main.js 
    webpack.config.js 
    package.json 

तो बस अपने कमांड लाइन से webpack चलाने looke चाहिए। यदि आप न्यूनतम संस्करण webpack -p

+0

यह 'पीढ़ी' अपवाद को हल करता है लेकिन अब मुझे 'असीमित संदर्भ त्रुटि मिलती है: आवश्यकता परिभाषित नहीं है'। यहां पंक्ति है जो क्रोम devtools कंसोल से समस्या का कारण बनता है: 'var _regenerator = आवश्यकता (" बेबेल-रनटाइम/पुनर्जागरण ");' –

+1

वैसे यह बेकार है :(बेबेल को ट्रांसफॉर्मर कोड में शामिल करने की आवश्यकता है, ऐसा लगता है कि आपको किसी प्रकार का मॉड्यूल बंडलर उपयोग करने की आवश्यकता होगी। मैं वेबपैक का सुझाव दूंगा। – kosman

+1

हां, मैं इसे देख रहा हूं, धन्यवाद .. वैसे भी मुझे अपना प्रश्न बंद करना चाहिए या नहीं? मैंने सोचा कि 'बेबेल- पॉलीफिल 'का उपयोग गल्प के साथ किया जाना है लेकिन यह नहीं है .. –

संबंधित मुद्दे