根据环境变量为某些文件提供解析器覆盖

时间:2016-08-26 16:17:14

标签: webpack

我需要提供一些替代的.jsx文件,具体取决于环境变量。

鉴于此文件夹结构:

(1) src/icons/appIcon.jsx
(2) vendors/foo/src/icons/appIcon.jsx

然后import icon from "icons/appIcon"

默认情况下应导入(1)。

但是当APP_VENDOR环境变量设置为foo时,它应该解析(2)。

如果APP_VENDOR设置为bar,则应解析文件(1),因为没有`vendors / bar / src / icons / appIcon.jsx。

是否可以使用webpack进行配置?

1 个答案:

答案 0 :(得分:0)

您可以针对icons设置resolve.alias,然后根据src/icons将该点设为vendors/foo/src/iconsAPP_VENDOR

你最终会得到这样的东西:

resolve: {
    alias: {
        icons: process.env.APP_VENDOR === 'foo' ?
            path.join(__dirname, 'vendors/foo/src/icons') :
            path.join(__dirname, 'src/icons')
    }
}