小さなプロジェクト私は、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を交換して動作するようには思えてきました。
ノードのバージョンに問題はありませんか? 'const'を利用できるようにノード8+のようにする必要はありませんか? (実際に導入された時期はわかりません) –
私はv4から 'const'を使っています。現在、私は8.9.1 LTSを使用しています。 –
それは変です。あなたが見ているエラーメッセージは何ですか? –