Mały projekt, który zacząłem, wykorzystuje moduł węzła (zainstalowany przez npm ), który deklaruje const
zmienne. Uruchamianie i testowanie tego projektu przebiega dobrze, ale browserify kończy się niepowodzeniem po uruchomieniu UglifyJS.
Nieoczekiwany token: słowo kluczowe (stała)
Oto ogólny plik Gulp, którego z powodzeniem używałem w kilku innych poprzednich projektach bez tego problemu (tj. Bez tego konkretnego modułu węzła).
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))
;
});
Próbowałem to naprawić, zamieniając wszystko const
na var
w tym zainstalowanym module npm i wszystko jest w porządku. Więc nie rozumiem niepowodzenia.
Co jest nie tak const
? O ile ktoś nie używa IE10, wszystkie główne przeglądarki obsługują tę składnię.
Czy istnieje sposób, aby to naprawić bez konieczności zmiany tego modułu węzła?
Aktualizacja
Tymczasowo (lub na stałe) zastąpiłem UglifyJS Butternut i wydaje się, że działa.
const
dostępny? (nie jestem pewien, kiedy faktycznie został wprowadzony)