Rollup Error: 'isValidElementType' is not exported by node_modules/react-is/index.js
I'm building a bundle with rollUp using styled-components.
My rollup.config.js looks like:
import resolve from 'rollup-plugin-node-resolve'
import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
export default {
input: 'src/index.js',
output: {
file: 'dist/bundle.js',
format: 'cjs'
},
external: [
'react',
'react-proptypes'
],
plugins: [
resolve({
extensions: [ '.js', '.json', '.jsx' ]
}),
commonjs({
include: 'node_modules/**'
}),
babel({
exclude: 'node_modules/**'
})
]
}
And I'm receiving
[!] Error: 'isValidElementType' is not exported by node_modules/react-is/index.js
https://github.com/rollup/rollup/wiki/Troubleshooting#name-is-not-exported-by-module
node_modules/styled-components/dist/styled-components.es.js (7:9)
5: import stream from 'stream';
6: import PropTypes from 'prop-types';
7: import { isValidElementType } from 'react-is';
^
8: import hoistStatics from 'hoist-non-react-statics';
Checking on the node_modules itself react-is is a commonjs module as it can be checked out here as well.
Shouldn't the commonjs plugin take care of it since it is inside node_modules/** ?
Thanks.I resolved this by using the rollup-plugin-commonjs and defining the export manually in the rollup config as below export default { input: 'src/index.js', output: [ { file: pkg.main, format: 'cjs', sourcemap: true }, { file: pkg.module, format: 'es', sourcemap: true } ], plugins: [ external(), postcss({ modules: true }), url(), babel({ exclude: 'node_modules/**' }), resolve(), commonjs({ include: 'node_modules/**', namedExports: { 'node_modules/react-is/index.js': ['isValidElementType'] } }) ] } After this everything worked fine. and for the info, my initial setup was done through https://github.com/transitive-bullshit/react-modern-library-boilerplate Hope it works for you
Get this solution programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/error/034591f5abc78e6327f9d84917d88d4be15dba18c22a701cd89ede1b2ef2ac04