एक छोटी सी परियोजना जिसे मैंने नोड मॉड्यूल ( npm के माध्यम से स्थापित ) का उपयोग करना शुरू किया था जो const
चर घोषित करता है। इस प्रोजेक्ट को चलाना और परीक्षण करना अच्छी तरह से है, लेकिन UglifyJS निष्पादित होने पर ब्राउजर विफल हो जाता है।
अनपेक्षित टोकन: कीवर्ड (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 स्थापित मॉड्यूल में सभी const
को var
बदलकर इसे ठीक करने की कोशिश की है , और सब कुछ ठीक है। इसलिए मुझे असफलता समझ में नहीं आती।
इसमें गलत क्या है const
? जब तक कोई IE10 का उपयोग नहीं करता है, सभी प्रमुख ब्राउज़र इस सिंटैक्स का समर्थन करते हैं।
क्या उस नोड मॉड्यूल में बदलाव की आवश्यकता के बिना इसे ठीक करने का कोई तरीका है?
अपडेट करें
मैं के साथ अस्थायी रूप से (या स्थायी रूप से) प्रतिस्थापित UglifyJS है Butternut और काम करने लगते हैं।
const
उपलब्ध होने के लिए नोड 8+ की आवश्यकता नहीं है? (निश्चित नहीं कि जब इसे वास्तव में पेश किया गया था)