Skip to content

Rewire babel-loader loader in your create-react-app project using react-app-rewired.

License

Notifications You must be signed in to change notification settings

dashed/react-app-rewire-babel-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c104ce6 Â· Feb 24, 2019

History

10 Commits
Dec 20, 2017
Dec 20, 2017
Dec 20, 2017
Dec 20, 2017
Feb 24, 2019
Dec 20, 2017
Dec 24, 2017

Repository files navigation

react-app-rewire-babel-loader npm version

Rewire babel-loader loader in your create-react-app project using react-app-rewired.

Say there is an awesome library you found on npm that you want to use within your un-ejected create-react-app project, but unfortunately, it's published in ES6+ (since node_modules doesn't go through babel-loader), so you cannot really use it.

However, with react-app-rewired and this library, react-app-rewire-babel-loader, you can use that awesome library you've found.

See below for usage.

🚨 Not maintained for react-app-rewired v2.x.x+

I'm not maintaining this library for react-app-rewired v2.x.x+.

Instead, please consider using: https://github.com/arackaf/customize-cra

The following essentially emulates react-app-rewire-babel-loader which you can copy & paste into your override config file:

// NOTE as of customize-cra v0.2.11

const { babelInclude, getBabelLoader } = require("customize-cra");

const include = (config, ...includes) => {
    return babelInclude(includes)(config);
};

const babelExclude = exclude => config => {
  getBabelLoader(config).exclude = exclude;
  return config;
};

const exclude = (config, ...excludes) => {
    return babelExclude(excludes)(config);
};

Install

$ yarn add react-app-rewire-babel-loader
# npm v5+
$ npm install react-app-rewire-babel-loader
# before npm v5
$ npm install --save react-app-rewire-babel-loader

Usage

// config-overrides.js
// see: https://github.com/timarney/react-app-rewired

const path = require("path");
const fs = require("fs");

const rewireBabelLoader = require("react-app-rewire-babel-loader");

// helpers

const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = relativePath => path.resolve(appDirectory, relativePath);

module.exports = function override(config, env) {

  // white-list some npm modules to the babel-loader pipeline
  // see: https://webpack.js.org/configuration/module/#rule-include

  config = rewireBabelLoader.include(
    config,
    resolveApp("node_modules/isemail")
  );

  // black-list some modules from the babel-loader pipeline
  // see: https://webpack.js.org/configuration/module/#rule-exclude

  config = rewireBabelLoader.exclude(
    config,
    /(node_modules|bower_components)/
  );

  return config;

};

Development

Chores

  • Lint: yarn run lint
  • Prettier: yarn run pretty
  • Test: yarn run test
  • Pre-publish: yarn run prepublish
  • Build: yarn run build

License

MIT.

About

Rewire babel-loader loader in your create-react-app project using react-app-rewired.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published