• Cannot read property 'loose' of undefined

    Cannot read property 'loose' of undefined

    babel 7 

    This error message is associated with Babel7.

    The cause of the error is mixing Babel 6 and Babel 7. Babel 7 is incompatible with Babel 6. Therefore your entire project must rely on Babel 7. If you check the stack trace you might see references to `node_modules/babel-core`. This means that your project has Babel 6 dependencies.

    Troubleshooting

    Make sure that you've installed all the correct babel 7 dependencies, e.g.:

    • @babel/core instead of babel-core
    • @babel/cli instead of babel-cli
    • @babel/preset-env instead of babel-preset-env

    In my case, I had installed babel-cli globally (e.g. npm i -g babel-cli). This is not recommended. Babel-cli should be installed locally in dev-dependencies with:

    npm i @babel/cli --dev

    With a local install you can be confident that you're really using Babel 7 cli instead of Babel 6 cli.

    Other Issues

    NextJs, for example, depends on Babel 6. Therefore it's currently impossible to use Babel 7 in a Nextjs project.

    Babel 7 was only recently released and in time more projects will adopt Babel 7.

    Further Reading