-
Notifications
You must be signed in to change notification settings - Fork 267
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
addBabelPlugin not inserting the plugin #4
Comments
the issue might be the declaration here 57bb094#diff-168726dbe96b3ce427e7fedce31bb0bcR16 |
I was facing the same issue and I did a little further investigation to understand the problem. Hope that can help. I was using the react-scripts version 2.0.3, that was released two days ago (Oct, 1th). The PR #5170 was merged two days before the release, where they removed the thread-loader. That PR changed the shape of the configuration object, removing the That means that the current version of the To avoid a breaking change for the users using versions 2.0.0, I came up with a version of the function addBabelPlugin(plugin, config, env) {
const babelLoaderFilter = rule =>
rule.loader && rule.loader.includes('babel') && rule.options && rule.options.plugins;
// First, try to find the babel loader inside the oneOf array.
// This is where we can find it when working with [email protected].
let loaders = config.module.rules.find(rule => Array.isArray(rule.oneOf)).oneOf;
let babelLoader = loaders.find(babelLoaderFilter);
// If the loader was not found, try to find it inside of the "use" array, within the rules.
// This should work when dealing with [email protected].* versions.
if (!babelLoader) {
loaders = loaders.reduce((ldrs, rule) => ldrs.concat(rule.use || []), []);
babelLoader = loaders.find(babelLoaderFilter);
}
babelLoader.options.plugins.push(plugin);
return config;
} That code is not fully tested. I've only done some simple test against the versions 2.0.3 and 2.0.0-next.fb6e6f70 (the lastest 2.0.0.next.* version). Probably more tests would be necessary before using it as the actual implementation. |
try to use my fork : |
@war3k Thanks, it works! You should probably send a PR with the changes given. |
sure, I already did that :) |
Seems Dan Abramov moved my cheese :P @walmor's fix is updated for the new 0.1.X api, and released under 0.1.0-beta4. |
Hello,
the current implementation doesn't insert the plugin (in my case I tried with
addBabelPlugin(['emotion'])(config)
).This doesn't match the
babel-loader
:because the babel-loader doesn't have a
use
key.The two characteristics I use to spot the right babel-loader (there are 2 of them) are :
The text was updated successfully, but these errors were encountered: