为什么我不能转换我的 js 文件?
Why i cannot transpile my js file?
我有一个 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;
请问如何解决我的错误?
class 方法的语法是 methodName(parameters) { body }
。
这样写你的class:
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;
}
}
我有一个 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;
请问如何解决我的错误?
class 方法的语法是 methodName(parameters) { body }
。
这样写你的class:
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;
}
}