【问题标题】:SyntaxError: Unexpected token ... (82:8) in BrowserifySyntaxError: Unexpected token ... (82:8) 在 Browserify
【发布时间】:2016-10-02 10:00:36
【问题描述】:

我正在尝试使用 Vuex 中的 mapActions,如 Vuex Actions

中给出的
methods:{
            ...mapActions([
                'increment' // map this.increment() to this.$store.dispatch('increment')
            ])
}

但是,它给了我SyntaxError: Unexpected token ... 。我不确定问题是什么以及我需要在问题中包含哪些详细信息。

【问题讨论】:

  • 请让我看看你的packages.json。这是一个与 ES6 编译相关的问题。你用的是browserify还是webpack?
  • 您的问题已经回答here
  • @AntónioQuadrado 我已经试过了,但还是一样:(
  • @AntónioQuadrado 我正在使用 browserify、gulp、laravel-elixr 和 vueify

标签: vue.js vuex


【解决方案1】:

尝试将其添加到您的 package.json 中

"eslintConfig": {
    "parserOptions": {
      "ecmaVersion": 6,
      "sourceType": "module",
      "ecmaFeatures": {
        "jsx": true,
        "modules": true,
        "experimentalObjectRestSpread": true
      },
      "env": {
        "es6": true,
        "browser": true
      }
    }
  }

并在你的 laravel-elixir 实例的 gulp 文件中检查elixir.config.js.browserify.transformers 中是否有一个名为 babelify 的转换器,如果存在,则将其推入其options.presets 字符串stage-2。这是我在 gulp 文件中的方式:

var elixir = require('laravel-elixir')    
if (elixir.config.js.browserify.transformers[0].name === 'babelify') {
        elixir.config.js.browserify.transformers[0].options.presets.push('stage-2');
    }

它可能对你有所不同,但你明白了。所有这些都使得 browserify 使用 stage-2 的特性来编译资产,比如通常不会考虑的对象扩展运算符。

【讨论】:

    【解决方案2】:

    1:安装标签插件:

    npm install --save-dev babel-plugin-transform-object-rest-spread
    

    2:然后修复.babelrc文件如下:

    {
        "presets": [["latest", {"es2015": { "modules": false }}]],
        "plugins": ["transform-object-rest-spread"]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 2019-02-10
      • 2019-11-10
      • 2014-07-08
      • 2013-11-15
      • 2020-09-26
      相关资源
      最近更新 更多