我使用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
...
有什么问题?以及如何解决?
答案 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 phoenix
和iex -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
),因为这通常是通过运行版本来启动的。