我已经为react做了自己的npm包,我们称之为@group/package
在那个包裹里,我做了可出口的钩子。
作为一个例子,我做了一个钩子,我们将调用useFetchWithRefreshToken。在那个钩子中,我将始终调用相同的API_URL,但API_URL依赖于我的项目。
我不想对所有需要获取的文件都这样做。
const [load, loading] = useFetchWithRefreshToken({ url: API_URL + endpoint });
字符串
因此,我尝试使用环境变量,但正如我怀疑的那样,它不起作用。从@group/package访问的process.env值可能是在我运行包中的npm run build / npm publish时确定的,而不是在我运行安装了它的react应用时确定的。
我可能可以通过redux在我的模块和项目之间共享数据,但我希望开发人员更容易填写。
一个.rc或.json配置文件,比如babel或eslint,就很完美了。
我该怎么做?
2条答案
按热度按时间byqmnocz1#
如果你想读取自己的配置文件,那么我建议你使用cosmic config library。因为它支持所有标准的配置文件格式,并提供了一个简单的标准API,无论文件格式如何,它都可以读取数据。
https://github.com/cosmiconfig/cosmiconfig
hkmswyz62#
你可以用前缀
REACT_APP_
定义你的env。你可以在这里阅读更多:https://create-react-app.dev/docs/adding-custom-environment-variables/ReactJS
.env
字符串
在您的包中,您可以如下读取此env
型
如果你已经弹出了react应用程序,那么你可以在webpack文件中找到env附加到项目的那一行,然后手动添加
API_URL
来支持你上面在包中只使用API_URL
的实现。