reactjs - 为 react redux 构建 npm 包时出错
问题描述
我正在创建一个 HOC 来连接容器和代表性组件。
我正在使用 webpack 构建开发测试和生产。
该包导出一个返回 react-redux 连接组件的函数
在开发中,一切都按预期工作。当我构建包并链接到生产构建中的测试时,我得到了
在“Connect(NameComponentPres)”的上下文中找不到“store”。要么将根组件包装在 a 中
<Provider>
,要么将自定义的 React 上下文提供者传递给<Provider>
连接选项中的 Connect(NameComponentPres),并将相应的 React 上下文消费者传递给 Connect(NameComponentPres)。
我不认为这是反应的问题,因为它适用于开发。
这是我的配置
webpack.config.js
const path = require("path");
const outputPath = process.env.BUILD
? path.resolve("./build")
: path.resolve("./test");
const testConfig = {
mode: "development",
entry: "./demo/index.js",
devtool: "inline-source-map",
externals: "./build/redux-simple-container.js",
output: {
path: outputPath,
filename: "index.js"
},
module: {
rules: [
{
loader: "babel-loader",
include: [path.resolve("./demo")]
}
]
}
};
const buildConfig = {
entry: "./src/ReduxSimpleContainer.js",
mode: "production",
output: {
path: outputPath,
filename: "redux-simple-container.js",
libraryTarget: "commonjs2"
},
externals: ["react", "react-dom"],
module: {
rules: [
{
test: /\.js?$/,
use: "babel-loader",
exclude: /(node_modules)/
}
]
}
};
module.exports = process.env.BUILD ? buildConfig : testConfig;
.babelrc
{
"presets": [["airbnb", { "modules": false }]],
"plugins": ["transform-object-assign"]
}
./src/ReduxSimpleContainer.js
import { connect } from "react-redux";
const ReduxSimpleContainer = (actions, stateRequested, Component) => {
....
....
return connect(
mapStateToProps,
mapDispatchToProps
)(Component);
};
export default ReduxSimpleContainer;
解决方案
推荐阅读
- debugging - 共享库的 .init 部分上的断点
- node.js - nodejs socket.io 在本地网络上不起作用
- java - 在 Java 中不使用构建器模式的不可变字段
- asynchronous - 异步 GRPC?
- jquery - JQuery 点击处理程序只允许匿名函数
- python - 在 pyspark UDF 中使用类方法
- mysql - 用户 'user1'@'localhost' goddady 的访问被拒绝
- cron - Mutt 因“无法锁定/发送”而作为 cron 作业失败
- c# - 如何删除我在单击另一个按钮时创建的按钮
- mysql - MySql:插入十进制值(失真)