SyntaxError:意外的关键字' const'。严格模式不支持Const声明

时间:2018-05-29 09:59:27

标签: webpack babel nuxt.js

Nuxt 1.4 项目中获得上述语法错误。

这种情况在Safari 9上发生,同样适用于Chrome。

我在SO上搜索并发现问题是由于ES6代码的浏览器兼容性问题,但无法找到问题的正确解决方案(Nuxt项目)。

该网站也应该适用于旧版本的浏览器。

以下是nuxt.config.js和package.json文件详细信息

  
      
  1. nuxt.config.js
  2.   
module.exports = {
  /*
  ** Build configuration
  */
  build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    },
    vendor: ['babel-polyfill']
  }
}
  
      
  1. 的package.json
  2.   
{
  "dependencies": {
    "axios": "^0.18.0",
    "babel-polyfill": "^6.26.0",
    "nuxt": "^1.4.0",
    "vee-validate": "^2.0.5",
    "vue-carousel": "^0.6.5",
    "vue-i18n": "^7.4.2",
    "vue-smooth-scroll": "^1.0.13",
    "vue-tabs-component": "^1.4.0",
    "vue-youtube-embed": "^2.1.3",
    "vue2-google-maps": "^0.8.8"
  },
  "devDependencies": {
    "ava": "^0.25.0",
    "babel-eslint": "^8.2.1",
    "eslint": "^4.17.0",
    "eslint-config-standard": "^11.0.0-beta.0",
    "eslint-friendly-formatter": "^3.0.0",
    "eslint-loader": "^1.7.1",
    "eslint-plugin-html": "^4.0.2",
    "eslint-plugin-import": "^2.8.0",
    "eslint-plugin-node": "^6.0.0",
    "eslint-plugin-promise": "^3.6.0",
    "eslint-plugin-standard": "^3.0.1",
    "eslint-plugin-vue": "^4.0.0",
    "jsdom": "^11.6.2"
  },
  "babel": {
    "presets": [
      "es2015"
    ]
  }
}

1 个答案:

答案 0 :(得分:2)

您应该使用Babel将代码编译为常规es5或es6代码,具体取决于您要查找的兼容性。

在Nuxt中,您可以在babel中使用nuxt.config.js选项来处理编译。 请在此处查看babel选项的文档:https://nuxtjs.org/api/configuration-build#babel

如果您从Nuxt内部收到错误,则应考虑升级到nuxt-edge以获得旧版支持。