2017-10-12 38 views
0

这是我gulpfile部分:Async等待+ Gulp - GulpUglifyError:无法缩小JavaScript?

gulp.task('compile-js', function() { 
    // app.js is your main JS file with all your module inclusions 
    return browserify({ 
    extensions: ['.js', '.jsx'], 
    entries: 'javascripts/app.js', 
    debug: true 
    }) 
    .transform('babelify', { presets: ['es2015', 'react'] }) 
    .bundle() 
    .pipe(source('bundle.min.js')) 
    .pipe(buffer()) 
    .pipe(sourcemaps.init()) 
    .pipe(uglify()) 
    .pipe(sourcemaps.write('./maps')) 
    .pipe(gulp.dest('dist')) 
    .pipe(livereload()) 
}) 

javascripts/app.js

我有,对于一个例子:

async function write() { 
    var txt = await read(); 
    console.log(txt); 
    } 

我得到这个错误:

GulpUglifyError: unable to minify JavaScript 

这是我的package.json的一部分:

"dependencies": { 
    "animate.css": "^3.5.2", 
    "aos": "^2.2.0", 
    "autosize": "^4.0.0", 
    "axios": "^0.16.2", 
    "es6-docready": "^1.0.0", 
    "foundation-icon-fonts": "^0.1.1", 
    "foundation-sites": "^6.4.3", 
    "gulp-clean-css": "^3.9.0", 
    "gulp-cssimport": "^5.1.1", 
    "jquery": "^3.1.1", 
    "jquery-ui-bundle": "^1.12.1", 
    "material-design-icons": "^3.0.1", 
    "swiper": "^3.4.2", 
    "vue": "^2.4.4" 
    }, 
    "repository": { 
    "type": "git", 
    "url": "[git-url-of-your-project]" 
    }, 
    "devDependencies": { 
    "babel-preset-es2015": "^6.16.0", 
    "babel-preset-react": "^6.16.0", 
    "babelify": "^7.3.0", 
    "browserify": "^14.3.0", 
    "browserify-shim": "^3.8.12", 
    "gulp": "^3.9.1", 
    "gulp-clean-css": "^3.0.4", 
    "gulp-clone": "^1.0.0", 
    "gulp-concat": "^2.6.0", 
    "gulp-concat-css": "^2.3.0", 
    "gulp-cssimport": "^5.0.0", 
    "gulp-foreach": "^0.1.0", 
    "gulp-htmlmin": "^3.0.0", 
    "gulp-less": "^3.3.2", 
    "gulp-livereload": "^3.8.1", 
    "gulp-sourcemaps": "^1.6.0", 
    "gulp-uglify": "^2.1.2", 
    "streamqueue": "^1.1.1", 
    "vinyl-buffer": "^1.0.0", 
    "vinyl-source-stream": "^1.1.0" 
    }, 

还有什么我应该添加到我的吞咽过程的ES6?

编辑:

所以继巴贝尔doc为es2017:

我已经安装:

npm install --save-dev babel-preset-es2017 

而且改变了我的gulpfile:

... 
.transform('babelify', { 
    presets: ['es2015', 'es2017', 'react'], 

我不在合作过程中不会出现任何错误mpilation,但我得到的浏览器控制台上的错误,当我在我的浏览器上运行我的代码:

Uncaught ReferenceError: regeneratorRuntime is not defined 
+2

async/await是es2017。你需要相应的巴别克预设 – CodingIntrigue

+0

@CodingIntrigue我得到一个新的错误,请参阅我上面的编辑。 – laukok

+0

https://stackoverflow.com/questions/33527653/babel-6-regeneratorruntime-is-not-defined – CodingIntrigue

回答

2

也有类似的问题与一饮而尽,丑化,并且我发现了似乎涅槃异步/ AWAIT IS不支持基地gulp-uglify,所以我切换到babel-minify,它为我工作。

编辑:对于regeneratorRuntime is not defined错误,我认为regenerator-runtime可能会有所帮助。

+2

感谢您的答案。现在弄明白了:) – laukok