【发布时间】:2021-09-27 22:32:20
【问题描述】:
我想创建一个基于 env 变量的构建,它只包含捆绑包中的特定组件。
例如当我像这样导入组件时:
import Module1 from '@/components/Module1'
我希望实际转换路径,以便导入看起来像这样:
import Module1 from '@/components/brands/' + process.env.APP_BRAND + 'Module1'
现在我不想对所有导入执行此操作,只是针对某些导入(例如具有品牌版本的模块),所以也许我想在导入路径前加上 !brand! 之类的前缀,这将是指示符应用路径变换。
所以上面的逻辑应该只对导入路径执行,例如:
import Module1 from '!brand!@/components/Module1'
如果 process.env.APP_BRAND 是假的,那么我只想坚持原来的导入(例如,只需从路径中删除 !brand! 前缀)。
所以重要的方面是我希望在构建时完成此操作,以便 Webpack 可以静态分析模块并创建优化的构建。这可能吗?我想我需要以某种方式添加这个路径转换逻辑,但我应该怎么做呢?我应该创建一个加载器、插件还是有现有的解决方案?
我正在使用 Webpack 5。
【问题讨论】:
标签: javascript reactjs vue.js webpack webpack-5