syntax-errorbabeljsdbmigrate

db-migrate with @babel/register and ES6 modules - "SyntaxError: Unexpected token export" error


Really hoping someone can help me with this as it's driving me crazy.

Node v12.4.0

package.json: -

{
    "name": "@mypackage/db-migrate",
    "private": true,
    "version": "1.0.0",
    "main": "index.js",
    "license": "ISC",
    "workspaces": {
        "packages": [
            "common/models"
        ]
    },
    "dependencies": {
        "@babel/core": "^7.6.0",
        "@babel/preset-env": "^7.6.0",
        "@babel/register": "^7.6.0",
        "@mypackage/models": "1.0.0",
        "db-migrate-mysql": "^1.1.10",
        "db-migrate-plugin-babel": "^2.0.1",
        "npm-upgrade": "^2.0.2"
    }
}

.babelrc: -

{
    "presets": [
        "@babel/preset-env"
    ]
}

Directory structure: -

common->models - this contains the source lib for @mypackage/models

migrations - contains all the migration files

Yarn installs all the dependencies without issue.

So when I run a migration command ("db-migrate down -c 1", for example), I get the following: -

export { CONSTANT_ONE, CONSTANT_TWO, CONSTANT_THREE };

^^^^^^

SyntaxError: Unexpected token export

This is happening when I am trying to export/import from one of the @mypackage/models files.

var CONSTANT_ONE = "foo_one";
var CONSTANT_TWO = "foo_two";
var CONSTANT_THREE = "foo_three";

export { CONSTANT_ONE, CONSTANT_TWO, CONSTANT_THREE };

Is this a root directory issue? I am complete baffled and utterly frustrated. Any help VERY welcome.


Solution

  • Solved by changing .babelrc to babel.config.js.