2016-07-15 5 views
0

私はES6プロジェクトを持っています。私はファイルをES5に移したいと思う。私はうんざりの仕事を作りました。ここに私の仕事は、バベルを使用している:なぜ私はj​​sファイルをトランスパイールできないのですか?

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; 

解決する方法私のエラーはどうですか?

+1

'functionNameを(){}'構文の代わりに、矢印の機能を使用します。

は、このようなあなたのクラスを記述します。 – str

答えて

0

クラスメソッドの構文はmethodName(parameters) { body }です。

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; 
    } 

} 
関連する問題