2015-10-07 31 views
5

używam pakiet altanę Paper.js w projekcie. Używam Gulpa do przygotowania projektu do przeglądarki. Istnieją pewne znaki jednak, że tak wyglądał w bower_components/papier/dist/papierowej full.min.js:Gulp zeszpecić produkujących dziwne znaki z Paper.js Biblioteki

\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec... 

że skończy jak ten po przejściu przez Gulp:

ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮ... 

w wyniku błędu konsoli

Uncaught SyntaxError: Invalid regular expression: /[ªµºÀ-ÖØ-öø-ˈ-Ë‘Ë -ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-Ρ[Lots more strange characters] Range out of order in character class

Oto odnośny fragment mojego pliku haustem:

var gulp = require('gulp'); 
var stylus = require('gulp-stylus'); 
var uglify = require('gulp-uglify'); 
var concat = require('gulp-concat'); 
var browserify = require('browserify'); 
var reactify = require('reactify'); 
var source = require('vinyl-source-stream'); 
var jade = require('gulp-jade'); 
var nib = require('nib'); 
var del = require('del'); 

var cfg = require('./cfg.json'); 

var action = { 
    clean: function(cb){ 
    del([ 
     ['./', cfg.dir.root.dev].join('') 
    ], cb); 
    }, 
    concatLibs: function(){ 
    gulp.src([ 
     './bower_components/jquery/dist/jquery.min.js', 
     './bower_components/react/react.js', 
     './bower_components/when/es6-shim/Promise.js', 
     './bower_components/lodash/lodash.min.js', 
     './bower_components/postal.js/lib/postal.min.js', 
     './bower_components/oboe/dist/oboe-browser.min.js', 
     './bower_components/paper/dist/paper-full.min.js']) 
     .pipe(uglify()) 
     .pipe(concat('lib.js')) 
     .pipe(gulp.dest(['./', cfg.dir.root.dev, cfg.dir.type.js].join(''))); 
    }, 
... 

mam pojedyncze problem do tej części procesu:

.pipe(uglify()) // in the concatLibs action 

Oznacza to, komentując tę ​​linię nie generuje nietypowe znaki i nie powoduje błędu konsoli.

Wymagana metoda uglify()seems to be the canonical one: var uglify = require('gulp-uglify'). Więc w czym problem? Dlaczego powoduje to uglify()?

+0

Proponuję użyć nie-minifikowanej wersji pliku paper.js i zobaczyć, co się stanie, ale wygląda to dziwnie. –

+0

@generalgmt Tak, próbowałem wersji un-minified z tymi samymi wynikami. Czy udało Ci się zduplikować problem? –

+0

Nie mogłem odtworzyć błędu. Włączyłem to do mojego scenariusza. może powinieneś sprawdzić wersję. wersja papierowa jest używana "0.9.24", a wersja uglify to "1.4.1". –

Odpowiedz

0

Problemem wydaje się być to, że są uglifying już minified bibliotek.

Lepszym rozwiązaniem byłoby, aby nie dotknąć bibliotek innych firm i tylko concat nich, jak jest. Oznaczałoby to, że w miarę możliwości powinieneś używać minified źródeł swoich bibliotek. Masz teraz niezakończone wersje react.js i Promise.js.

Zarówno reagować i ES6-podkładka dostarczyć minified wersji, które są już na miejscu, gdy robi bower install. Aby rozwiązać ten problem, zadanie powinno wyglądać następująco:

... 
concatLibs: function(){ 
    gulp.src([ 
     './bower_components/jquery/dist/jquery.min.js', 
     './bower_components/react/react.min.js', 
     './bower_components/when/es6-shim/Promise.min.js', 
     './bower_components/lodash/lodash.min.js', 
     './bower_components/postal.js/lib/postal.min.js', 
     './bower_components/oboe/dist/oboe-browser.min.js', 
     './bower_components/paper/dist/paper-full.min. 
     .pipe(concat('lib.js')) 
     .pipe(gulp.dest(['./', cfg.dir.root.dev, cfg.dir.type.js].join(''))); 
    } 
... 

Ten dostarczy Ci lib.js z tylko minified bibliotek stron trzecich z minimalną zmianą swojej gulpfile.js.