Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Couldn't find preset "es2015" relative to directory #9

Closed
andrantis opened this issue May 20, 2017 · 25 comments · Fixed by #63
Closed

Couldn't find preset "es2015" relative to directory #9

andrantis opened this issue May 20, 2017 · 25 comments · Fixed by #63

Comments

@andrantis
Copy link

I'm getting an error with a newly created app. I'm just trying to run it after the initial install.
Navigating to localhost:8080 I get a 404.

D:\projects\pwa\preact\my-pwa-test>npm start

> [email protected] start D:\projects\pwa\preact\my-pwa-test
> if-env NODE_ENV=production && npm run -s serve || npm run -s dev

  > Development server started at http://localhost:8080
(webpack)-dev-server/client?http://0.0.0.0:8080/
Module build failed: Error: Couldn't find preset "es2015" relative to directory "D:\\projects"
    at D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20)
    at OptionManager.mergePresets (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10)
    at OptionManager.mergeOptions (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14)
    at OptionManager.init (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12)
    at File.initOptions (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\index.js:212:65)
    at new File (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\index.js:135:24)
    at Pipeline.transform (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\pipeline.js:46:16)
    at transpile (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\index.js:48:20)
    at D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\fs-cache.js:118:18
    at ReadFileContext.callback (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:359:13)
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/
./~/preact-cli/lib/lib/entry.js
Module build failed: Error: Couldn't find preset "es2015" relative to directory "D:\\projects"
    at D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20)
    at OptionManager.mergePresets (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10)
    at OptionManager.mergeOptions (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14)
    at OptionManager.init (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12)
    at File.initOptions (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\index.js:212:65)
    at new File (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\index.js:135:24)
    at Pipeline.transform (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\pipeline.js:46:16)
    at transpile (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\index.js:48:20)
    at D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\fs-cache.js:118:18
    at ReadFileContext.callback (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:359:13)
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/
(webpack)/hot/dev-server.js?http://0.0.0.0:8080/
Module build failed: Error: Couldn't find preset "es2015" relative to directory "D:\\projects"
    at D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20)
    at OptionManager.mergePresets (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10)
    at OptionManager.mergeOptions (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14)
    at OptionManager.init (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12)
    at File.initOptions (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\index.js:212:65)
    at new File (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\file\index.js:135:24)
    at Pipeline.transform (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-core\lib\transformation\pipeline.js:46:16)
    at transpile (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\index.js:48:20)
    at D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\fs-cache.js:118:18
    at ReadFileContext.callback (D:\projects\pwa\preact\my-pwa-test\node_modules\babel-loader\lib\fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:359:13)
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/
@developit
Copy link
Member

Might be a file path issue on Windows. I'll try to track it down.

@maoberlehner
Copy link
Contributor

Similar error for me on OSX

preact watch
  > Development server started at http://localhost:8080
./~/preact-cli/lib/lib/entry.js
Module build failed: Error: Couldn't find preset "es2015" relative to directory "/Users/moberlehner"
    at /Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at File.initOptions (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/index.js:212:65)
    at new File (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/index.js:135:24)
    at Pipeline.transform (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
    at transpile (/Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/index.js:48:20)
    at /Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/fs-cache.js:118:18
    at ReadFileContext.callback (/Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:335:13)
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/
(webpack)-dev-server/client?http://0.0.0.0:8080/
Module build failed: Error: Couldn't find preset "es2015" relative to directory "/Users/moberlehner"
    at /Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at File.initOptions (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/index.js:212:65)
    at new File (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/index.js:135:24)
    at Pipeline.transform (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
    at transpile (/Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/index.js:48:20)
    at /Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/fs-cache.js:118:18
    at ReadFileContext.callback (/Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:335:13)
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/
(webpack)/hot/dev-server.js?http://0.0.0.0:8080/
Module build failed: Error: Couldn't find preset "es2015" relative to directory "/Users/moberlehner"
    at /Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at File.initOptions (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/index.js:212:65)
    at new File (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/file/index.js:135:24)
    at Pipeline.transform (/Users/moberlehner/Sites/the-project-page/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
    at transpile (/Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/index.js:48:20)
    at /Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/fs-cache.js:118:18
    at ReadFileContext.callback (/Users/moberlehner/Sites/the-project-page/node_modules/babel-loader/lib/fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:335:13)
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/

@developit
Copy link
Member

Hmm - what version of npm? npm -v

@maoberlehner
Copy link
Contributor

npm: 3.10.9
node: v7.1.0

@developit
Copy link
Member

Darn, was sure it would be npm 2 haha.

@lukeed
Copy link
Member

lukeed commented May 20, 2017

That was my bet too. 😞

@maoberlehner
Copy link
Contributor

No matter how deep in the directory structure the project is created babel is always looking for the es2015 preset in the users directory.

Module build failed: Error: Couldn't find preset "es2015" relative to directory "/Users/moberlehner"
    at /Users/moberlehner/Desktop/_TEMP/test/test2/the-project-page/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19

@maoberlehner
Copy link
Contributor

Removing .babelrc from users home directory "fixes" this. Hmm maybe a babel-core problem?

@developit
Copy link
Member

developit commented May 20, 2017

oooh - i had forgotten it does resolution like that.
Interestingly, we're already setting babelrc: false in the webpack config, which I would have thought that would disable ~/.babelrc entirely...

maybe @hzoo knows

@thangngoc89
Copy link
Collaborator

I can confirm this on Ubuntu

Module build failed: Error: Couldn't find preset "es2015" relative to directory "/home/khoa/web/tooth/frontend/node_modules/lru-memoize"

This only happens with package has main or jsnext:main field points to a ES6 file

@developit
Copy link
Member

@thangngoc89 do you have a file at ~/.babelrc?

@thangngoc89
Copy link
Collaborator

@developit No. I didn't make any custom settings to the project (yet), everything is standard Preact components

@maoberlehner
Copy link
Contributor

@thangngoc89 You may created the ~/.babelrc file some time ago, or maybe a tool created it automatically without you noticing. Just make sure if there is a .babelrc in your home directory or not. If there is no such file in your home directory you can check your NPM version running npm -v if it is below 3.x.x this might be the problem.

@thangngoc89
Copy link
Collaborator

@maoberlehner Still no.

❯ cat ~/.babelrc
cat: /home/khoa/.babelrc: No such file or directory

Any idea?

@developit
Copy link
Member

very odd. I had thought we'd narrowed it down. One other thought: a .babelrc in any parent directory would cause the same issue - is it possible there's one somewhere up the filesystem hierarchy?

@thangngoc89
Copy link
Collaborator

@developit I though about that too and still no. I'll try to make a reproduce when I get back

@lukeed
Copy link
Member

lukeed commented May 25, 2017

Just to confirm: @thangngoc89 what's your Node version?

@andrantis
Copy link
Author

In Windows 10 I solved the issue by removing a .babelrc file in a parent directory. Thanks

@thangngoc89
Copy link
Collaborator

@lukeed

❯ node -v && npm -v 
v7.10.0
5.0.0

It happens on npm@4 too, I just got so excited with npm@5 .

@developit So I traced down the problem, I only encounter it when the module was published with .babelrc file. Example error:

./~/lru-memoize/lib/index.js
Module build failed: Error: Couldn't find preset "es2015" relative to directory "/home/khoa/web/tooth/frontend/node_modules/lru-memoize"
    at /home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
    at OptionManager.mergePresets (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
    at OptionManager.mergeOptions (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
    at OptionManager.init (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
    at File.initOptions (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/index.js:212:65)
    at new File (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/file/index.js:135:24)
    at Pipeline.transform (/home/khoa/web/tooth/frontend/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
    at transpile (/home/khoa/web/tooth/frontend/node_modules/babel-loader/lib/index.js:48:20)
    at /home/khoa/web/tooth/frontend/node_modules/babel-loader/lib/fs-cache.js:118:18
    at ReadFileContext.callback (/home/khoa/web/tooth/frontend/node_modules/babel-loader/lib/fs-cache.js:31:21)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:359:13)
 @ ./components/SuggestionList/SuggestionNode.jsx 6:0-34
 @ ./components/SuggestionList/index.jsx
 @ ./components/Search/index.jsx
 @ ./index.js
 @ ./~/preact-cli/lib/lib/entry.js
 @ multi ./~/preact-cli/lib/lib/entry webpack-dev-server/client?http://0.0.0.0:8080/ webpack/hot/dev-server?http://0.0.0.0:8080/

Remove .babelrc in the module eliminate the error

@lukeed
Copy link
Member

lukeed commented May 27, 2017

Ohhh, cool! Thanks for the versions and for tracing this!

This has to be related to our custom module resolution function, and likely a combination of a missing babel option.

I'm not at my desk right now but I'll give it a look later.

@thangngoc89
Copy link
Collaborator

thangngoc89 commented May 27, 2017

@lukeed For now, I added this to preinstall in package.json rm $( find node_modules -name .babelrc) . Those files are useless anyway. I hope you can kill that bug soon because it's pretty annoying :D

@lukeed
Copy link
Member

lukeed commented May 27, 2017

Haha I'll definitely try!

Is there a dead simple reproduction I can use? It looks like I can just install lru-memoize and it should fail as soon as I try to use it, right?

@thangngoc89
Copy link
Collaborator

@lukeed yessss. Here:

  • Install preact-cli
  • npm install lru-memoize
  • npm start
  • require lru-memoize somewhere

@lukeed
Copy link
Member

lukeed commented May 27, 2017

Perfect, thank you. I'll get on this.

@lukeed
Copy link
Member

lukeed commented May 27, 2017

I tracked down the issue. 🎉 Will open a PR tomorrow.

In the meantime @thangngoc89, you can just npm install babel-preset-es2015. This isn't the fix, but it's a faster way to fix your errors without manually deleting .babelrc files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants