babel-plugin-codegen icon indicating copy to clipboard operation
babel-plugin-codegen copied to clipboard

Doesn't work if config is in "babel.config.js" file

Open serhiipalash opened this issue 6 years ago • 4 comments

  • babel-plugin-codegen version: 3.0.0
  • nodeversion: 10.13.0
  • npm (or yarn) version: 1.12.3

Plugin doesn't work if your Babel config is in babel.config.js, but all works fine if it is in .babelrc

babel.config.js

module.exports = function() {
  return {
    presets: ['babel-preset-expo'],
    plugins: ['codegen'],
  }
}

.babelrc

{
  "presets": ["babel-preset-expo"],
  "plugins": [
    "codegen"
  ]
}

What you did:

// @codegen

module.exports = '
  module.exports = []
'

What happened:

When I use babel.config.js, I get export from module as string "module.exports = []", like there is no top comment "// @codegen".

When I use .babelrc, I get empty array as export from module, as it should be.

Reproduction repository:

https://github.com/serhiipalash/test-babel-codegen

Latest Expo has babel config in babel.config.js, and I don't want to change it as it is the standard for all future releases.

serhiipalash avatar Nov 14 '18 14:11 serhiipalash

Hmmm... This is very odd. I'm not sure why it would make any difference. Could you do a little digging to figure out what's wrong here? Thanks!

kentcdodds avatar Nov 15 '18 21:11 kentcdodds

Same happens with me when im using plugin "transform-remove-console" I fixed it by reseting cache

wamry avatar Jul 17 '19 11:07 wamry

This seems like a stale issue. I am not having this problem on v4 of the plugin. Though my module.exports is not a function

module.exports = {
    presets: ["module:metro-react-native-babel-preset", "module:react-native-dotenv"],
    plugins: ["codegen"],
};

sylvanaar avatar Aug 16 '20 17:08 sylvanaar

Not sure if same kind of babel.config.js issue, but mine babel.config.js issue fixed by

https://github.com/kentcdodds/babel-plugin-codegen/pull/43

Current code using wrong signature hidden below magic linter comment. So, some context got lost but without reported. Maybe some plugins just not effected by that lost context.

loynoir avatar Aug 31 '21 03:08 loynoir