我有一个 ES6 项目。我想将文件转译成 ES5。我创建了一个 gulp 任务。这是我使用 babel 的任务:
gulp.task('transpile' , function() {
console.log('Transpile js ');
return gulp.src(['app/**/*.js'])
.pipe(babel({
presets: ['es2015']
}))
.pipe(ngAnnotate())
.pipe(uglify().on('error', function(e){
console.log(e);
}))
.pipe(gulp.dest('target/'));
});
当我运行我的任务时,我有一个错误:
events.js:141
throw er; // Unhandled 'error' event
^
SyntaxError: /Users/me/myapp/target/tmp/src/content.components/login/login.controller.js: Unexpected token (20:16)
18 | }
19 |
> 20 | successAuth = (result) => {
| ^
21 | this.$rootScope.$broadcast('authenticationSuccess');
22 | this.$location.path('/');
23 | };
at Parser.pp.raise (/Users/me/node_modules/babylon/lib/parser/location.js:22:13)
问题发生在我的控制器中:
class LoginController {
constructor($rootScope, $location, AuthService) {
this.AuthService = AuthService;
this.$rootScope = $rootScope;
this.$location = $location;
}
login() {
this.loading = true;
this.AuthService.login({
username: this.username,
password: this.password,
rememberMe: this.rememberMe
}).then(this.successAuth, this.failedAuth);
}
successAuth = (result) => {
this.$rootScope.$broadcast('authenticationSuccess');
this.$location.path('/');
};
failedAuth = (error) => {
this.error = 'Identifiant ou mot de passe incorrect';
this.loading = false;
};
}
LoginController.$inject = ['$rootScope', '$location', 'AuthService']
export default LoginController;
请问如何解决我的错误?