In einem kleinen Projekt, das ich gestartet habe, wird ein Knotenmodul (über npm installiert ) verwendet, das const
Variablen deklariert . Das Ausführen und Testen dieses Projekts ist in Ordnung, aber browserify schlägt fehl, wenn UglifyJS ausgeführt wird.
Unerwartetes Token: Schlüsselwort (const)
Hier ist eine generische Gulp-Datei, die ich erfolgreich für einige andere frühere Projekte ohne dieses Problem verwendet habe (dh ohne dieses bestimmte Knotenmodul).
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))
;
});
Ich habe schon versucht , diese Fixierung durch alle zu ersetzen , const
um var
in diesem npm installierten Modul, und alles ist in Ordnung. Also verstehe ich den Fehler nicht.
Was ist los mit const
? Sofern nicht jemand IE10 verwendet, unterstützen alle gängigen Browser diese Syntax.
Gibt es eine Möglichkeit, dies zu beheben, ohne dass eine Änderung an diesem Knotenmodul erforderlich ist?
Aktualisieren
Ich habe UglifyJS vorübergehend (oder dauerhaft) durch Butternut ersetzt und scheine zu funktionieren.
const
verfügbar zu sein? (nicht sicher, wann es tatsächlich eingeführt wurde)