2014-09-29 15 views
6

bunu neredeyse tüm gün boyunca gerçekleştirdi ve bunun nasıl düzgün şekilde çalıştığını anlayamıyorum. Konunun gösterdiği gibi, bu kurulumun işe yaraması için çok zamanım var.Coffeescript + Browserify + Gulp + Uglify

Browserify kullanarak Coffeescript'te yazılmış bir projem var. Ben üretim için çıktıyı Uglify olacak bazı Gulp yapı görevleri yazmaya çalışıyorum .... oldukça standart.

gulp = require 'gulp' 
browserify = require 'browserify' 
source = require 'vinyl-source-stream' 
buffer = require 'vinyl-buffer' 
uglify = require 'gulp-uglify' 

# Bundle task 
gulp.task('bundle', -> 

    browserify(
    entries: ['./client/start.coffee'] 
    extensions: ['.coffee'] 
) 

    # Apply transforms and bundle 
    .transform('coffeeify') 
    .bundle() 
    .pipe(source('bundle.js')) 
    .pipe(buffer()) 
    .pipe(uglify()) 
    .pipe(gulp.dest('./build')) 
) 

# Run the tasks 
gulp.task('default', ['bundle']) 

Şimdi burada bu kod çoğunlukla iyi çalışır:

İşte benim gulpfile için benim şimdiki tuzak. Görevi düzgün bir şekilde çalıştırarak her şeyi birleştirir ve ardından Uglify'yi çalıştırır ve sonuçta bir bundle.js dosyaya neden olur. Ben uglify() adım kaldırdığınızda

Uncaught SyntaxError: Invalid regular expression: /[ªµºÀ-ÖØ-öø-ˈ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ÒÒŠ-Ô§Ô±-Õ–Õ™Õ¡-Ö‡×-תװ-ײؠ-يٮٯٱ-Û“Û•Û¥Û¦Û®Û¯Ûº-Û¼Û¿ÜÜ’-ܯÝ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽà¥à¥˜-ॡॱ-ॷॹ-ॿঅ-ঌà¦à¦à¦“-নপ-রলশ-হঽৎড়à§à§Ÿ-ৡৰৱਅ-ਊà¨à¨à¨“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-àªàª-ઑઓ-નપ-રલળવ-હઽà«à« à«¡à¬…-ଌà¬à¬à¬“-ନପ-ରଲଳଵ-ହଽଡ଼à­à­Ÿ-ୡୱஃஅ-ஊஎ-à®à®’-கஙசஜஞடணதந-பம-ஹà¯à°…-ఌఎ-à°à°’-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-à´à´’-ഺഽൎൠൡൺ-ൿඅ-à¶–à¶š-නඳ-රලව-à·†à¸-ะาำเ-ๆàºàº‚ຄງຈຊàºàº”-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿá-á•áš-áá¡á¥á¦á®-á°áµ-á‚ႎႠ-ჅჇáƒáƒ-ჺჼ-ቈቊ-á‰á‰-ቖቘቚ-á‰á‰ -ኈኊ-áŠáŠ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-áŒáŒ’-ጕጘ-ášáŽ€-áŽáŽ -á´á-ᙬᙯ-ᙿáš-áššáš -ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱá€-á‘á -á¬á®-á°áž€-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜá¥-ᥭᥰ-ᥴᦀ-ᦫá§-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-á°£á±-á±á±š-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-á¼á¼ -ὅὈ-á½á½-ὗὙὛá½á½Ÿ-ώᾀ-á¾´á¾¶-ᾼιῂ-ῄῆ-ῌá¿-á¿“á¿–-Ίῠ-Ῥῲ-á¿´á¿¶-ῼâ±â¿â‚-ₜℂℇℊ-â„“â„•â„™-â„ℤΩℨK-ℭℯ-ℹℼ-â„¿â……-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-â¶–â¶ -ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-â·Žâ·-â·–â·˜-ⷞⸯ々-〇〡-〩〱-〵〸-〼ã-ã‚–ã‚-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿã€-䶵一-鿌ꀀ-ê’Œê“-ꓽꔀ-ꘌê˜-ꘟꘪꘫꙀ-ꙮꙿ-êš—êš -ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎêž-ꞓꞠ-Ɦꟸ-ê ê ƒ-ê …ê ‡-ê Šê Œ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲê§ê¨€-ꨨꩀ-ê©‚ê©„-ê©‹ê© -ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ê«ê« -ꫪꫲ-ê«´ê¬-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-ï©­ï©°-龎ff-stﬓ-ﬗï¬ï¬Ÿ-ﬨשׁ-זּטּ-לּמּנּï­ï­ƒï­„ï­†-ﮱﯓ-ï´½ïµ-ï¶ï¶’-ﷇﷰ-ﷻﹰ-ï¹´ï¹¶-ﻼA-Zï½-zヲ-하-ᅦᅧ-ï¿ï¿’-ᅲᅳ-ᅵ]/: Range out of order in character class 

, iyi çalışıyor ... her şey sadece: Ben .... ben konsolda bu hatayı görebilirsiniz bağlantılı JS ile benim örnek HTML sayfası çalıştırdığınızda sorunudur düzenli Javascript ve sayfa, herhangi bir fikir ...? Yardım için şimdiden teşekkür ederiz.

+4

Ben esprima.js'yi browserify ile kullanmaya çalıştığımda benzer bir soruna rastladım. 'Yüce-uglify'nin' uglify 'için seçenekleri geçip geçmediğini bilmiyorum, ama çalışmasını sağlamak için aşağıdaki seçeneği ayarladım: 'uglify ({output: {ascii_only: true}})'. –

+1

Wow, insanlar görev koşucu dosyaları için bile Coffeescript'i kullanıyor mu? – undefined

+0

Felix, işe yaradı. Dürüstçe, bu seçeneğin ne yaptığını tam olarak anlamadım, ama düzeltmesine sevindim ... Teşekkürler. Ayrıca @undefined, CoffeeScript kayalar. Muhtemelen görev koşucu dosyaları için gerekli değildir, ancak tutarlılık güzel olduğu için tüm proje yazılmıştır. –

cevap

1

Yorumlarınızda belirtildiği üzere, cevap uglifyJS'de ascii_only özelliğini ayarlıyor. Kaynak kodunuzda, kompresörün işlemeye çalıştığı ascii olmayan karakterler kullanıyorsunuz ve bu da söz konusu hataya neden oluyor. Bu bayrağın ayarlanması, bu karakterleri \ uxxxxx düzenine dönüştürür.