由于找不到 redux 和 redux-form 的默认值,因此无法导入 RollupJS ES6 模块

RollupJS ES6 module can't get imported because of default not found for redux and redux-form

我为使用 react-reduxredux-form 的登录表单制作了一个包。

react-reduxredux-form 都是对等依赖。

WARNING in ./node_modules/login-form/dist/login-form.es.js 7455:22-33 "export 'default' (imported as '_reactRedux') was not found in 'react-redux'

WARNING in ./node_modules/login-form/dist/login-form.es.js 7505:17-23 "export 'default' (imported as '_redux') was not found in 'redux'

我从未在我的登录表单项目中导入自己 redux

这是由 rollup 捆绑的,存在于我的 es 模块中:

import _reactRedux from 'react-redux';
import _redux from 'redux';

我肯定做错了什么,但我不知道是什么。

这是我的汇总依赖项列表

"rollup": "^0.50.0",
"rollup-plugin-babel": "^3.0.2",
"rollup-plugin-cleanup": "^1.0.1",
"rollup-plugin-commonjs": "^8.2.1",
"rollup-plugin-inject": "^2.0.0",
"rollup-plugin-json": "^2.3.0",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-uglify": "^2.0.1",
"rollup-plugin-visualizer": "^0.3.1",
"rollup-watch": "^4.3.1",

如果您使用的是 5.0.0+ 版本,您需要在配置中添加以下内容:

commonjs({
  namedExports: {
    // left-hand side can be an absolute path, a path
    // relative to the current directory, or the name
    // of a module in node_modules
    'node_modules/my-lib/index.js': [ 'named' ]
  }
})

我设法使用外部而不是 'redux-form' => 'redux-form-immutable'

安装它

似乎与提出此问题时使用的 commonjs 包的版本有关。

在我的例子中,我使用了最新版本的 @rollup/plugin-commonjs 并且 namedExports 是自动处理的。

据我所知,从那时起这些包就被命名为@rollup。