2016-01-21 82 views
1

我正在使用Webpack来打包我的客户端JavaScript和CSS的项目。它启动一台服务器,以便我可以做热重装和其他巧妙的技巧。所以当我调试我的应用程序时,webpack服务器在localhost:3000上运行。我还使用nodemon启动另一个Web服务器来托管我的API调用。它显然不能在同一端口上运行,所以我必须在端口3002上启动它。WebPack:访问客户端代码中的节点环境变量

我已经设置了一个节点环境变量,告诉我的api应该托管哪个端口。我需要以某种方式访问​​我的客户端脚本中的相同环境变量,以便我的ajax调用知道他们需要调用的端口。

在我开始使用webpack之前,我从同一个端口托管我的api和我的客户端代码,并且我可以像这个'controller/action'一样进行api调用。现在我将它们托管在两个不同的域中,我需要告诉我的api调用包含端口的完全限定的url。即:'host:port/controller/action'。我知道我也需要在我的API服务器上配置CORS。

当我将其推入生产环境时,我将再次托管来自同一个域的客户端文件和API调用,这样我就可以继续进行相关API调用“控制器/操作”。所以我需要从我的客户端代码中获得对环境变量的访问权限,以便我可以确定如何在生产环境中的Dev诗句中形成api调用。

回答

0

也许webpack devServer proxy值得追求。

devServer: { 
... 
    proxy: { 
    '*/controller/*': { 
     target: 'http://localhost:3002' 
    } 
} 

客户会保持幸福无知的发展/生产之间的差异。