내가 시작한 작은 프로젝트 는 변수 를 선언 하는 노드 모듈 ( npm을 통해 설치됨 )을 사용합니다 const
. 이 프로젝트를 실행하고 테스트하는 것은 좋지만 UglifyJS가 실행되면 browserify가 실패합니다.
예기치 않은 토큰 : 키워드 (const)
다음은이 문제가없는 (즉, 특정 노드 모듈없이) 몇 가지 다른 과거 프로젝트에 성공적으로 사용한 일반적인 Gulp 파일입니다.
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이 설치된 모듈에서 모두 교체하여 문제 const
를 해결하려고 시도했으며 모든 var
것이 정상입니다. 그래서 나는 실패를 이해하지 못합니다.
뭐가 잘못 const
됐나요? 누군가 IE10을 사용하지 않는 한 모든 주요 브라우저가이 구문을 지원합니다.
해당 노드 모듈을 변경하지 않고이 문제를 해결할 수있는 방법이 있습니까?
최신 정보
나는 일시적으로 (또는 영구적으로) UglifyJS를 Butternut으로 대체했으며 작동하는 것 같습니다.
const
않습니까? (실제로 언제 도입되었는지 확실하지 않음)