如何将动态 Ruby 嵌入到 webpacker.yml 配置文件中以设置服务器主机?

How do I embed dynamic Ruby into webpacker.yml configuration file for setting the server host?

我需要从移动设备 phone 测试应用程序,文件被签入 Git 其他开发人员访问它的地方。如何将主机名动态设置为服务器的 IP 地址?我试过了

webpacker.yml
development:
  dev_server:
    host: <%= Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address %>

报错

Error: getaddrinfo ENOTFOUND <%= Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address %>

我尝试将文件重命名为 webpackager.yml.erb 但出现错误

Webpack dev_server configuration not found in .../config/webpacker.yml.

我 运行 进入同一问题并在 webpacker.yml 中嵌入 Ruby 似乎不可能。

但是,在开发模式下,您可以通过环境变量覆盖 webpack-dev-server 配置值。示例:

WEBPACKER_DEV_SERVER_HOST=example.com ./bin/webpack-dev-server

如果您使用的是Foreman,请将命令添加到相关的Procfile,例如:

webpack: WEBPACKER_DEV_SERVER_HOST=0.0.0.0 ./bin/webpack-dev-server
web:    rails s -b 0.0.0.0

更具体地说,对于您的情况,类似于:

WEBPACK_DEV_SERVER_HOST=$(ruby -e "require 'socket'; Socket.ip_address_list.detect{|intf| intf.ipv4_private?}.inspect_sockaddr") ./bin/webpack-dev-server

参考文献: