如何在使用带有iex -S mix phoenix.server的webpack时摆脱^ H?

时间:2015-10-25 17:21:11

标签: elixir webpack phoenix-framework

我使用webpack和凤凰。当我使用^H启动服务器时,将输出许多iex -S mix phoenix.server。喜欢这个

iex(1)> ^H^H^H^H^H^H^H^H^H^H^H^H  0% compile
^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H 10% 
0/1 build modules^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H 70% 
1/1 build modules^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H 40% 
1/2 build modules^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H 30% 
1/3 build modules[bootstrap-sass-loader]: styleLoader: style-loader!
css-loader!sass-loader
...

有什么问题?以及如何解决?

2 个答案:

答案 0 :(得分:9)

这是因为我在我的凤凰观察员配置中使用--progress

watchers: [node: ["node_modules/webpack/bin/webpack.js", "--watch", "--colors",
  "--progress"]]

然后,当代码显示https://github.com/webpack/webpack/blob/master/bin/convert-argv.js#L408时,webpack将输出\b以取得进展。

最后,我的解决方案是更改webpack参数以支持mix phoenixiex -S mix phoenix.server

webpack_args = ["node_modules/webpack/bin/webpack.js", "--watch", "--colors",
  "--progress"]
# Remove progress argument to make iex display log normally
if IEx.started?, do: webpack_args = List.delete(webpack_args, "--progress")

config :sample, Sample.Endpoint,
  # ...
  watchers: [node: webpack_args]

答案 1 :(得分:1)

此输出的原因是webpack --progress标志,正如@ tony-han正确指出的那样,它被配置为观察者并在dev环境中为Phoenix端点启动。

如果激活选项:server,则仅运行此监视器和其他观察者。至少在最近的Phoenix版本中,此设置默认设置为false,并且仅由mix phx.server任务激活。这意味着默认情况下这不应该在iex中发生。

您可以检查dev环境的端点配置以获取设置server: true,这是不必要的。如果删除它,则应解决此问题。

注意,在server: true环境中应该提供config :phoenix, :serve_endpoints, true设置(或者更全面的prod),因为这通常是通过运行版本来启动的。