I'm using babel-preset-react-app to transpile a npm package with just babel that I'm consuming in a CRA app.
It worked well with [email protected] and babel@6, but when I updated to [email protected] and babel@7 the output build contained relative imports for babel stuff instead on inlining the functions
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import React, { Component } from 'react';
import _objectWithoutProperties from "/Users/bogdansoare/Sites/platform_shared/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties";
import _classCallCheck from "/Users/bogdansoare/Sites/platform_shared/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck";
import _createClass from "/Users/bogdansoare/Sites/platform_shared/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass";
import React, { Component } from 'react';
The build command that I'm using is NODE_ENV=production babel src --out-dir build --copy-files
Am I doing something wrong with the new version of babel-preset-react-app ? Or it's a config issue from babel?
We are releasing a component library using the same method and struggled with this for a few hours as well. We are using the react-app preset in our .babelrc.
We solved the issue by configuring the react-app preset to avoid generating absolute paths for @babel/runtime, like this:
"presets:" [
[ "react-app", { "absoluteRuntime": false } ]
]
This requires having @babel/runtime as a dependency in our package.json.
@simonedavico awesome, thank you very much for this explanation 馃檹
Can absoluteRuntime appear in docs?
Send a PR. 馃槃
Most helpful comment
We are releasing a component library using the same method and struggled with this for a few hours as well. We are using the
react-apppreset in our.babelrc.We solved the issue by configuring the
react-apppreset to avoid generating absolute paths for@babel/runtime, like this:This requires having
@babel/runtimeas a dependency in ourpackage.json.