2015-12-14 11 views
14

Javascript ile hem Browserify hem de Babel kullanmak istiyorum.Browserify ve Babel yontma görevleri

ParseError: 'import' and 'export' may only appear at the top level 

Benim asıl js dosyası çok basittir:

Bunun için benim kodu içinde import kullanmak istediğinizde, bir hata alıyorum,

gulp.task('babel', function() { 
    return gulp.src('_babel/*.js') 
     .pipe(browserify({ insertGlobals : true })) 
     .pipe(babel({ presets: ['es2015'] })) 
     .pipe(gulp.dest('_dev/js')); 
}); 

Maalesef bir yudum görevi yarattı

import 'directives/toggleClass'; 

Bunun Babil yüzünden olduğunu tahmin ediyorum (ve use strict eklenmesi), ama ne yapabilirim?

+1

Sipariş değişiyor mu (babeden önce babil yerleştirmek), hiç yardım? – JCOC611

+0

Hayır, bunu denedim ve 'babel 'kaldırmak da işe yaramıyor. –

+0

Cevap değil, bunun yerine https://github.com/babel/babelify kullanmayı denediniz mi? – Misiur

cevap

10

Babel, babelify adlı Browserify için resmi bir dönüşümü sürdürür ve babel ve browserify kullanılıyorsa mümkün olan her yerde kullanılmalıdır.

Babil kullanımını doğrudan azaltın ve babelify'ı tarayıcı için bir dönüşüm eklentisi olarak yerleştirin. Browserify'yi yapılandırmanın birçok yolu vardır ancak package.json'unuzdaki yapılandırmayı belirlemek muhtemelen en kolay olacaktır.

Sizin yudum görev sonra basitleştirilmiş olacak

gulp.task('babel', function() { 
    return gulp.src('_babel/*.js') 
     .pipe(browserify({ insertGlobals : true })) 
     .pipe(gulp.dest('_dev/js')); 
}); 
Browserify Ayrıca size yudum görev (paket yapılandırma bırakarak içeriden bundler yapılandırmak mümkün olacak böylece Bu program aracılığıyla yapmak için yöntemler sunar

, her ne kadar paketini kullanarak bunu gayet iyi durumda), belgelerini ve deneylerini kontrol edin, daha önce yaptım ama gulp'u kullandığımdan bu yana uzun zaman geçti (burada gulp kullanmak sadece ihtiyacınız olmayan bir komplikasyondur) Daha faydalı olabileceği inşa boru hattınızın başka bir yerinde.