Parser "babylon" deprecated error - webpack build

18,898

The problem comes from vue-loader 13.x.x and 14.x.x

Version 15.x.x seems to be fine, but I cannot update my project to 15.x.x without breaking everything. (I guess you'll have the same issue)

I'll log an issue in the project repo and with a bit of lucky they'll release a fix.

EDIT:

For the time being, you can use a forked version of 14.2.2 that I have created to get rid of the message. Not sure if it would be compatible with your build.

Try to replace:

"vue-loader": "13.7.2",

with

"vue-loader": "https://github.com/graux/vue-loader#a0d6b77",
Share:
18,898
Kris D. J.
Author by

Kris D. J.

Updated on June 04, 2022

Comments

  • Kris D. J.
    Kris D. J. almost 2 years

    After I have been upgrading my projects JS packages, an error has appeared when building my bundle with Webpack. It seems to appear when building a .vue-file and can appear on any .vue-file build. I don't have "babylon" in my package.json and I have a newer @babel/core version (7.2.2).

    This is the error:

    { parser: "babylon" } is deprecated; we now treat it as { parser: "babel" }
    

    It only seems to appear when building .vue-files.

    Here's my configuration:

    .babelrc

    {
      "presets": ["@babel/preset-env"],
      "plugins": ["@babel/plugin-transform-regenerator"]
    }
    

    Webpack config:

    module: {
    rules: [
      {
        enforce: 'pre',
        test: /\.(js|vue)$/,
        loader: 'eslint-loader',
        exclude: /node_modules/
      },
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          loaders: {
            scss: 'vue-style-loader!css-loader!sass-loader',
            sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax'
          }
        }
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: [ 'babel-loader' ]
      },
      {
        test: /\.sass$/,
        exclude: /node_modules/,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: [
            {
              loader: 'css-loader',
              options: {
                sourceMap: true
              }
            },
            {
              loader: 'postcss-loader',
              options: {
                sourceMap: true
              }
            },
            {
              loader: 'sass-loader',
              options: {
                sourceMap: true
              }
            }
          ]
        })
      }
    ]
    

    }

    .eslintrc.js

      extends: [
    'eslint:recommended',
    'plugin:vue/recommended',
    'plugin:import/errors',
    'plugin:import/warnings'
    ],
     settings: {
    'import/resolver': {
      'node': {
        'extensions': [
          '.js',
          '.vue'
        ]
      }
     }
     },
      parserOptions: {
      parser: 'babel-eslint',
      ecmaVersion: 2018
     }
    

    package.json

    "dependencies": {
        "@fortawesome/fontawesome-free": "^5.1.0",
        "@fortawesome/fontawesome-svg-core": "^1.2.10",
        "@fortawesome/free-solid-svg-icons": "^5.6.1",
        "@fortawesome/vue-fontawesome": "^0.1.3",
        "autoprefixer": "^9.4.6",
        "axios": "^0.18.0",
        "babel-eslint": "^10.0.1",
        "babel-polyfill": "^6.23.0",
        "backbone": "^1.3.3",
        "bulma": "^0.7.1",
        "bulma-calendar": "^5.0.3",
        "clean-webpack-plugin": "^1.0.1",
        "css-loader": "^0.28.4",
        "extract-text-webpack-plugin": "^3.0.0",
        "flickity": "^2.0.9",
        "flickity-imagesloaded": "^2.0.0",
        "friendly-errors-webpack-plugin": "^1.6.1",
        "glob-all": "^3.1.0",
        "in-view": "^0.6.1",
        "jquery": "^3.2.1",
        "js-cookie": "^2.2.0",
        "lazysizes": "^4.0.2",
        "magnific-popup": "^1.1.0",
        "node-pre-gyp": "^0.12.0",
        "node-sass": "^4.7.2",
        "optimize-css-assets-webpack-plugin": "^3.0.0",
        "postcss-loader": "^3.0.0",
        "purify-css": "^1.2.5",
        "purifycss-webpack": "^0.7.0",
        "sass-loader": "^6.0.7",
        "style-loader": "^0.18.2",
        "underscore": "^1.8.3",
        "vue": "2.5.22",
        "vue-affix": "^0.2.4",
        "vue-lazyload": "^1.2.6",
        "vue-loader": "13.7.2",
        "vue-template-compiler": "2.5.22",
        "vuex": "^3.0.1",
        "webpack": "^3.4.1",
        "webpack-bundle-analyzer": "^2.8.3",
        "webpack-bundle-tracker": "^0.2.0",
        "webpack-dev-server": "^2.6.1",
        "webpack-merge": "^4.1.0"
    },
    "devDependencies": {
        "@babel/core": "^7.2.2",
        "@babel/plugin-transform-regenerator": "^7.0.0",
        "@babel/preset-env": "^7.3.1",
        "babel-loader": "^8.0.5",
        "eslint": "^4.14.0",
        "eslint-loader": "^2.1.1",
        "eslint-plugin-import": "^2.14.0",
        "eslint-plugin-vue": "4.7.1"
    }
    
  • Grandizer
    Grandizer almost 5 years
    Why you want Downgrade to 11 from (in my case) 15?
  • Kid
    Kid about 4 years
    There is not vue-loader in my project. But the same issue. what's up?
  • Panda2109
    Panda2109 about 4 years
    It is 11 and up. So it is not downgrading @Grandizer