Open Kikobeats opened 6 years ago
I am facing the same issue.
I am facing the same issue also. Was going mad trying to work out what was going on!
Can someone check if this is still an issue with babel-plugin-transform-define@2.0.0
and babel7? (We've removed the option to do a config file...)
Hey folks, thanks for creating this library, I found it very useful.
I'm opening this issue because I found an edge case related to how babel-loader cache works.
babel-loader uses a prop called
cachedIdentifier
. This property determinate if it is necessary or not re-run babel-loader process.https://github.com/babel/babel-loader/blob/b29516266912fbc50120155fee00efb1b0a19f59/src/index.js#L61
The point here is that it reads the content of the
.babelrc
. All is okay.The edge case is related with this:
If you use
babel-plugin-transform-define
specifying a file path, and then you modify the content of the file, in the next babel-loader it will be determinate that a new run is not necessary, so it will be served the last result from the cache that it's different from your expected result!Literally, I was thinking I was crazy until discovering this.
The fix could be easiest as determinate the new way to calculate
cachedIdentifier
. The problem is, because in my case I'm under Next.js, that's is not something easy to do because Next.js internal doesn't contemplate this modification.Ideally, we should do that transparently adding a bit of code inside
babel-plugin-transform-define
to detect the edge case, but not sure if we can do that, need to investigate around babel-loader API inside a plugin.My current workaround is remove the cache before init the process:
but obviously, this is a very bad solution and slow.
any idea? 🙂