 <p>It's because I use <code>--progress</code> in the my phoenix watchers config:</p> <pre><code>watchers: [node: ["node_modules/webpack/bin/webpack.js", "--watch", "--colors", "--progress"]] </code></pre> <p>Then webpack will output <code>\b</code> to make a progress as the code shows <a href="https://github.com/webpack/webpack/blob/master/bin/convert-argv.js#L408">https://github.com/webpack/webpack/blob/master/bin/convert-argv.js#L408</a>.</p> <p>Finally, my solution is changing the webpack arguments to support both <code>mix phoenix</code> and <code>iex -S mix phoenix.server</code>:</p> <pre><code>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] </code></pre>