在 .vue 组件中编译方法时出现语法错误

Posted

技术标签:

【中文标题】在 .vue 组件中编译方法时出现语法错误【英文标题】:syntax error when compiling method in .vue component 【发布时间】:2019-02-18 17:13:50 【问题描述】:

我正在按照教程 (https://savvyapps.com/blog/definitive-guide-building-web-app-vuejs-firebase) 构建一个 vue.js 应用程序,并且在指南的某个部分中,它指示我在 Login.vue 文件的块中添加一个 login() 函数。

    login() 
      fb.auth.signInWithEmailAndPassword(this.loginForm.email, this.loginForm.password).then(user => 
        this.$store.commit('setCurrentUser', user)
        this.$store.dispatch('fetchUserProfile')
        this.$router.push('/dashboard')
      ).catch(err => 
        console.log(err)
      ) 
    

但是,当它被编译时,我得到一个错误:

    ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/Login.vue
Module build failed: SyntaxError: C:/Users/Rohit/Documents/javascript/vue_practice/humanity/src/components/Login.vue: Unexpected token, expected ; (33:8)

  31 | const fb = require('../firebaseConfig.js')
  32 | 
> 33 | login() 
     |         ^
  34 |     fb.auth.signInWithEmailAndPassword(this.loginForm.email, this.loginForm.password).then(user => 
  35 |         this.$store.commit('setCurrentUser', user)
  36 |         this.$store.dispatch('fetchUserProfile')

 @ ./src/components/Login.vue 4:0-105 5:0-118
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

我一直在尽力弄清楚语法错误是什么,但无济于事。提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

login()属于组件的methods对象:

export default 
  methods: 
    login() 
      ...
    
  

【讨论】:

【参考方案2】:

在您的script 部分中,您必须具有以下结构:

<script>
const fb = require('../firebaseConfig.js')
export default
 data()
     return  ... ;
  ,
methods:
   ...
    login() 
      fb.auth.signInWithEmailAndPassword(this.loginForm.email, 
       this.loginForm.password).then(user => 
        this.$store.commit('setCurrentUser', user)
       this.$store.dispatch('fetchUserProfile')
       this.$router.push('/dashboard')
     ).catch(err => 
    console.log(err)
     ) 
    
  ...
   

</script>

【讨论】:

以上是关于在 .vue 组件中编译方法时出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Vue Js 运行 Jest 测试时出现“语法错误:无法在模块外使用 import 语句”

尝试编译函数时出现语法错误

尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?

为 elixir 项目编译牛仔时出现语法错误

尝试在 Django 应用程序的 js 文件中导入 vue.js 时出现“未捕获的语法错误:无法在模块外使用 import 语句”

安装loadrunner时出现”命令行选项语法错误键入命令 ?获得帮助“的解决方法