无法使es6与Gulp一起工作
这让我疯狂,所以我希望有人可能会看到我失踪的东西。 提前谢谢你的帮助。
我有一个gulp文件,我已经通过npm,babel-core,babel-preset-es2015,babel-preset-react进行安装。 从网上调查和寄予厚望,即使这可能是不对的,我已经将gulp文件改名为gulpfile.babel.js,并且我已经创建了一个.babelrc文件。
{
"presets": ["es2015"]
}
我正在使用浏览器同步,当我启动gulp任务时会加载html文件,但是我所拥有的index.js包含'import React ....'。 这个文件导致JS控制台中出现'Uncaught SyntaxError:Unexpected token import'错误。
我认为我有es2015 npm包应该照顾ES6语法?
在吞食文件中,我认为的任务就是要照顾到这一点;
// convert jsx to JS
gulp.task('babelFiles', function() {
return gulp.src('js/*.(jsx|js)')
.pipe(babel({
compact: false
}))
.pipe(gulp.dest('js'))
.pipe(browserSync.reload({
stream: true
}))
});
负责启动此项任务的吞噬任务是:
// Default task
gulp.task('default', ['babelFiles', 'browserSync']);
我很困惑这里有什么可能是错的?
任何想法将非常感激!
有两个问题:
Gulp似乎不支持你的文件扩展名掩码语法:
gulp.src('js/*.(jsx|js)') // not working
gulp.src('js/*.{js,jsx}') // working
js
目录管道到js
目录,但由于没有匹配,因为问题(1)它让你相信巴贝尔不工作 更新
Gulp使用glob语法来匹配文件 - 根据glob语法,项目数量的限定符应该包含在( | )
之前 - 在我们的例子中,下面的语法是有效的
gulp.src('js/*.@(js|jsx)')
其中@
表示@
之后的模式恰好匹配一个模式。
在你的情况下,没有提供限定词
链接地址: http://www.djcxy.com/p/40133.html