我们正在寻找一种构建或推荐的方式来操纵require / import方法的结果。

我们的应用程序是同构的。我们正在使用react软件包,该软件包在客户端上呈现一个Map,但在Server上却无法正常工作,因为它需要leaflet而不是leaflet-headless(在服务器上有效)。因此,我们的肮脏修补程序是告诉服务器,当服务器尝试要求模块leaflet时,它应该改为要求leaflet-headless

这听起来很脏,但是我不知道我们的情况是否还有其他解决方案。

所以我的问题是:是否有解决此问题的推荐方法?还是我们应该像这样重写require方法:

// On Server only
const superRequire = require;
require = function(module) {
    if (module === 'leaflet') module = 'leaflet-headless';
    return superRequire(module);
}

最佳答案

你不能使用这样的东西吗?

const leaflet = require(typeof window === 'undefined' ? 'leaflet-headless' : 'leaflet')

关于javascript - 处理需求或导入结果的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46501211/

10-13 03:21