2015-10-07 5 views
5

私はプロジェクトでPaper.jsのBowerパッケージを使用しています。私はGulpを使ってブラウザのプロジェクトを準備しています。いくつかの文字がbower_components /紙/ DIST /紙-full.min.jsでこのように見えること、しかし、があります。ガルプを経て、このように終わるGulp Uglify Paper.jsライブラリの奇妙な文字を生成する

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

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

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(''))); 
    }, 
... 
:ここでは

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

のコンソールエラーが発生することは私の一気ファイルの関連チャンクです珍しい文字を生成しないこの行をコメントアウトし、

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

つまり、コンソールエラーにはなりません:

私は、プロセスのこの部分に問題を分離しました。

uglify()seems to be the canonical oneの方法が必要です。var uglify = require('gulp-uglify')。だから問題は何ですか? uglify()がこれを引き起こしているのはなぜですか?

+0

私はpaper.jsのun-minifiedバージョンを使用し、何が起こるかを見ることをお勧めします、それは間違いなく間違って見えます。 –

+0

@generalgmtはい、私は同じ結果でun-minifiedバージョンを試しました。問題を再現できましたか? –

+0

エラーを再現できませんでした。私はスクリプトにそれを挿入しました。多分あなたはバージョンを確認する必要があります。紙のバージョンは "0.9.24"、uglifyのバージョンは "1.4.1"です。 –

答えて

0

ここで問題となっているのは、すでにミニライブラリが作成されていることです。

より良いアプローチは、サードパーティ製のライブラリに触れずにそのまま連結することです。これは可能な限りlibsの縮小されたソースを含めるべきであることを意味します。ここでは、react.jsPromise.jsの未修正バージョンがあります。

を実行しているときに反応してes6-shimがミニバージョンを提供しています。この問題を解決するには、あなたのタスクは、次のようになります。

... 
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(''))); 
    } 
... 

これはあなたのgulpfile.jsに最小限の変更にのみ縮小さサードパーティのライブラリでlib.jsをご提供します。