2017-11-22 7 views
0

小さなプロジェクト私は、constという変数を宣言するノードモジュール(npm経由でインストール)を使い始めました。このプロジェクトの実行とテストはうまくいきますが、UglifyJSが実行されるとブラウザーが失敗します。UglifyJSはnode_modulesでキーワード(const)をスローする

予期しないトークン:ここではキーワード(定数)

は私が成功した(すなわち、その特定のノードモジュールなし)この問題なしに他のいくつかの過去のプロジェクトのために使用されている一般的なガルプファイルです。

gulpfile.js

'use strict'; 

const browserify = require('browserify'); 
const gulp = require('gulp'); 
const source = require('vinyl-source-stream'); 
const derequire = require('gulp-derequire'); 
const buffer = require('vinyl-buffer'); 
const uglify = require('gulp-uglify'); 
const sourcemaps = require('gulp-sourcemaps'); 
const gutil = require('gulp-util'); 
const path = require('path'); 
const pkg = require('./package'); 
const upperCamelCase = require('uppercamelcase'); 

const SRC_PATH = path.dirname(pkg.main); 
const DIST_PATH = path.dirname(pkg.browser); 

const INPUT_FILE = path.basename(pkg.main); 
const OUTPUT_FILE = path.basename(pkg.browser); 

const MODULE_NAME = upperCamelCase(pkg.name); 


gulp.task('default',() => { 
    // set up the browserify instance on a task basis 
    var b = browserify({ 
    entries: INPUT_FILE, 
    basedir: SRC_PATH, 
    transform: ['babelify'], 
    standalone: MODULE_NAME, 
    debug: true 
    }); 

    return b.bundle() 
    .pipe(source(OUTPUT_FILE)) 
    .pipe(buffer()) 
    .pipe(derequire()) 
    .pipe(sourcemaps.init({loadMaps: true})) 
    .pipe(uglify()) 
    .on('error', gutil.log) 
    .pipe(sourcemaps.write('.')) 
    .pipe(gulp.dest(DIST_PATH)) 
    ; 
}); 

私はそのことでNPM-インストールモジュールにvarへのすべてのconstを交換し、すべてが正常である、これを固定しようとしています。だから私は失敗を理解していない。

constに問題がありますか?誰かがIE10を使用しない限り、すべての主要ブラウザがこの構文をサポートしています。

ノードモジュールを変更することなくこれを修正する方法はありますか?

更新

は、私は一時的に(または永続的に)ButternutでUglifyJSを交換して動作するようには思えてきました。

+0

ノードのバージョンに問題はありませんか? 'const'を利用できるようにノード8+のようにする必要はありませんか? (実際に導入された時期はわかりません) –

+0

私はv4から 'const'を使っています。現在、私は8.9.1 LTSを使用しています。 –

+0

それは変です。あなたが見ているエラーメッセージは何ですか? –

答えて

1

UglifyJSはes6をサポートしていません。 constはes6宣言であるため、エラーが発生します。

あなたが使用しているパッケージがどこにでも使用できるようにファイルをes5にトランスペア化していないということは奇妙です。

UglifyJSを使用して(たとえば構成を再利用する場合)、ES6 +互換バージョンuglify-esを使用します。

+0

'gulp-uglify'を' gulp-uglify-es'で置き換えることもできます:https://www.npmjs.com/package/gulp-uglify-es –

関連する問題