Parcel: Thrown error: Couldn't find preset "env" relative to directory

Created on 6 Dec 2017  路  8Comments  路  Source: parcel-bundler/parcel

Hello guys!
First of all: thank you for this awesome job. It looks amazing!

I tried run the parcel index.html command for the first time and the following error was thrown:

/Users/stanley/.config/yarn/global/node_modules/parcel-bundler/src/builtins/css-loader.js: Couldn't find preset "env" relative to directory "/Users/stanley/.config/yarn/global/node_modules/parcel-bundler/src"
    at /Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
    at Array.map (<anonymous>)
    at OptionManager.resolvePresets (/Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at File.initOptions (/Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/index.js:212:65)
    at new File (/Users/stanley/.config/yarn/global/node_modules/babel-core/lib/transformation/file/index.js:135:24)
    at JSAsset.parse (/Users/stanley/.config/yarn/global/node_modules/parcel-bundler/src/assets/JSAsset.js:52:20)
    at <anonymous>

To solve that, I had to install babel-preset-env package (also globally).

NodeJS: v9.0.0 (stable)
OS: Mac OS X Sierra 10.12.6

Bug

Most helpful comment

Should be fixed in v1.0.2.

All 8 comments

you can also enter both just in the project.
I have it available at https://github.com/davidsonsns/parcel-react-app.

but anyway I also believe that there should not be this error.

I have the same problem but using npm
NodeJS: node v8.8.1
OS: Mac OS X Sierra 10.13.1

/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/src/builtins/css-loader.js: Couldn't find preset "env" relative to directory "/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/src"
    at /Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
    at Array.map (<anonymous>)
    at OptionManager.resolvePresets (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at File.initOptions (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/index.js:212:65)
    at new File (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/node_modules/babel-core/lib/transformation/file/index.js:135:24)
    at JSAsset.parse (/Users/josealbizures/.nvm/versions/node/v8.8.1/lib/node_modules/parcel-bundler/src/assets/JSAsset.js:52:20)
    at <anonymous>

hey @devongovett, I think this is happening because babel-preset-envshould be a dependency, not a devDependecy

this is related to #6

Ah I see. It's because the .babelrc in parcel is being published to npm, so parcel is trying to compile its own code for the small JS runtime that is included alongside CSS to do hot reloading. Then babel tries to find preset-env which is specified in there, even though we don't really need it.

Added .babelrc to .npmignore in 30616e94ee852560ba4ba52fc2faa605136d4154.

Should be fixed in v1.0.2.

Good job @devongovett 馃帀 Looking forward to it. Just a great way how you solved the whole thing :)

Weird thing, happens for me as well for no apparent reason. I've managed to fix it with npm i babel-preset-env && npm uninstall babel-preset-env (!).

Was this page helpful?
0 / 5 - 0 ratings