在Parceljs中暴露环境?

时间:2017-12-28 15:14:26

标签: javascript webpack parceljs

我在使用Parcel.js进行构建时尝试公开变量,类似于Webpack DefinePlugin,但我还没有找到如何做到这一点。

在开发中,我希望我的API主机与我的生产主机不同,所以:

//development:
API_URL="http://localhost:8900/"

//production:
API_URL="/"

目前Parcel支持module.hot开关,我可以滥用它,因为热模块重新加载仅在开发中启用,但是有一个更好的方法是很好的。

我也可以检查window.location.hostnamelocalhost,但这是一种解决方法。

1 个答案:

答案 0 :(得分:15)

对于仍在寻求答案的人:

您可以使用Parcel.js的.env文件支持(通过dotenv包),added in 1.5.0 (2018-01-23)

无需额外配置。只需将.env文件分隔为适当的NODE_ENV(生产,开发等),您就可以通过process.env.VARIABLE_NAME访问变量。在您的情况下,您可以这样做:

.env.development

API_URL=http://localhost:8900/

.env.production

API_URL=/

然后根据需要在代码中调用process.env.API_URL(不需要进一步导入)来使用它。