2015-01-17 8 views
18

फेंकता है जब मैं का उपयोग browserify मैं एक त्रुटि मिलती है साथ ही सांस-बदसूरत करनारूप बिगाड़ना पार्स त्रुटि

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error 
    at new JS_Parse_Error (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:189:18) 
    at js_error (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:197:11) 
    at croak (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:656:9) 
    at token_error (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:664:9) 
    at expect_token (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:677:9) 
    at expect (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:680:36) 
    at /home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1222:13 
    at /home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:703:24 
    at expr_atom (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1152:35) 
    at maybe_unary (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1327:19) 
    at expr_ops (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1362:24) 
    at maybe_conditional (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1367:20) 
    at maybe_assign (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1391:20) 
    at expression (/home/rkmax/my-project/node_modules/gulp-uglify/node_modules/uglify-js/lib/parse.js:1410:20) 

यह मेरी स्क्रिप्ट कार्य

gulp.task('scripts', function() { 

    var bundler = browserify({ 
     entries: ['./src/scripts/main.js'], 
     debug: debug 
    }).transform(stringify()); // the error persist even without this transformation 

    bundler 
     .bundle() 
     .on('error', handleErrors) 
     .pipe(source(getBundleName() + '.js')) 
     .pipe(jshint()) 
     .pipe(jshint.reporter('default', { verbose: true })) 
     .pipe(jshint.reporter('fail')) 
     .pipe(buffer()) 
     .pipe(sourcemaps.init({loadMaps: true})) 
     .pipe(uglify()) 
     .pipe(sourcemaps.write('./')) 
     .pipe(gulp.dest('./web/js')); 
}); 
+0

आप अपनी समस्या का समाधान मिल गया है, तो कृपया या तो ए) जवाब यह है कि इसे हल (संभवतः एक टिप्पणी करते हुए कहा कि कैसे जोड़ने) स्वीकार करें, या बी) दिखा कि कैसे आप इसे हल अपने खुद के जवाब पोस्ट करें। (जो एसओ पर बिल्कुल ठीक है, बशर्ते यह वास्तव में मौजूदा उत्तरों से अलग है। इसलिए आपको 48 घंटों के बाद अपना जवाब स्वीकार करने देगा।) –

उत्तर

6

मुझे gulp-concat-sourcemap और gulp-uglify के साथ इस समस्या का सामना करना पड़ा। मैं gulp-ignore के साथ नक्शा फ़ाइलों की अनदेखी करके इसे हल:

gulp.task("uglify-src", function() { 
    gulp.src([ "src/js/**/*.js" ]) 
    .pipe(concat("app.js")) 
    .pipe(ignore.exclude([ "**/*.map" ])) 
    .pipe(uglify()) 
    .pipe(gulp.dest("dist/js")); 
}); 
62

uglify यह कम करने से पहले स्क्रिप्ट सामग्री पार्स जाएगा। मुझे संदेह है कि browserify स्रोत मानचित्रों में से एक को स्ट्रीम में uglify पर शामिल किया जा रहा है। वैसे भी समस्या को ढूंढने के लिए आप के अपवादों को संभालने के लिए gulp-util की log विधि का उपयोग कर सकते हैं। उदाहरण:

... 
var gulpUtil = require('gulp-util'); 

gulp.task('scripts', function() { 
    ... 
     .pipe(sourcemaps.init({loadMaps: true})) 
     .pipe(uglify().on('error', gulpUtil.log)) // notice the error event here 
     .pipe(sourcemaps.write('./')) 
     .pipe(gulp.dest('./web/js')); 
}); 

यदि आपको अभी भी समस्या को ठीक करने में समस्याएं हैं, तो त्रुटि लॉग को शामिल करने के बाद विवरण पोस्ट करें।

+0

यह सुनिश्चित नहीं है कि मुझे यह खोजने में इतना समय क्यों लगा ... gulp-util मदद मिली मुझे तुरंत त्रुटि को इंगित करने के लिए .. इसे पोस्ट करने के लिए धन्यवाद! – hanzolo

+0

FWIW आप '.on ('error', console.log) भी संभवतः उपरोक्त के रूप में संक्षिप्त नहीं कर सकते हैं, लेकिन मुझे एक और निर्भरता नहीं चाहिए, फिर भी ... – segFault

+0

अवास्तविक! धन्यवाद! मैंने "चलो" का उपयोग करके 2 चर घोषित किए थे ... मैं स्विफ्ट 3 और जेएस: एस के बीच स्विच कर रहा हूं –

0

यह आपके स्रोत JavaScript फ़ाइल में एक सरल त्रुटि हो सकती है। अपने gulpfile में इसे टिप्पणी करके uglify अक्षम करने का प्रयास करें और देखें कि आपका ब्राउज़र कंसोल वास्तविक समस्या को स्पॉट करता है या नहीं।

gulp.task('minified', function() { 
    return gulp.src(paths.concatScripts) 
     .pipe(sourcemaps.init())  
     //.pipe(uglify()) 
     .pipe(sourcemaps.write('.', { addComment: false }))   
     .pipe(gulp.dest(publishUrl)); 
}); 
0

त्रुटियों को नोड.जेएस पाइप द्वारा प्रचारित नहीं किया जाता है। इस आलेख में pipe के बजाय pump के उपयोग का वर्णन करने के अतिरिक्त @Marcos Abreu के uglify().on दृष्टिकोण का उल्लेख है।

https://github.com/terinjokes/gulp-uglify/blob/master/docs/why-use-pump/README.md#why-use-pump

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