Phoenix: Running webpack executable watcher on Windows causes errors

Created on 15 Sep 2015  路  2Comments  路  Source: phoenixframework/phoenix

I created a new Phoenix project without brunch, mix phoenix.new yzerman --no-brunch and added webpack through npm, then added it to the watchers list,

watchers: [{ Path.expand("node_modules/webpack/bin/webpack.js"), ["--watch", "--colors", "--progress"] }]

Also added a webpack.config.js and a simple app.js file to see that it works.

But I get this error,

D:\Projects\Faceoff\yzerman> mix phoenix.server
[info] Running Yzerman.Endpoint with Cowboy on http://localhost:4000
[info] Running Yzerman.Endpoint with Cowboy on http://localhost:4000
[error] Task #PID<0.248.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.250.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.251.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.252.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.362.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[info] Running Yzerman.Endpoint with Cowboy on http://localhost:4000
[error] Task #PID<0.364.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.365.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.366.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.476.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.478.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[info] Running Yzerman.Endpoint with Cowboy on http://localhost:4000
[error] Task #PID<0.479.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.480.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.590.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.592.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.593.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[error] Task #PID<0.594.0> started from Yzerman.Endpoint terminating
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["d:/Projects/Faceoff/yzerman", "d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", ["--watch",
 "--colors", "--progress"]]
** (exit) an exception was raised:
    ** (ErlangError) erlang error: :eacces
        :erlang.open_port({:spawn_executable, 'd:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js'}, [{:cd,
 "d:/Projects/Faceoff/yzerman"}, :stderr_to_stdout, :use_stdio, :exit_status, :binary, :hide, {:args, ["--watch", "--col
ors", "--progress"]}])
        (elixir) lib/system.ex:445: System.cmd/3
        (phoenix) lib/phoenix/endpoint/watcher.ex:13: Phoenix.Endpoint.Watcher.watch/3
        (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
        (stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
[info] Application yzerman exited: shutdown`

I then tried this,

watchers: [{ "node #{Path.expand("node_modules/webpack/bin/webpack.js")}", ["--watch", "--colors", "--progress"] }]

Which kind of works but still not,

D:\Projects\Faceoff\yzerman> mix phoenix.server
Compiled lib/yzerman.ex
Compiled web/web.ex
Compiled web/channels/user_socket.ex
Compiled web/router.ex
Compiled web/views/error_view.ex
Compiled web/views/page_view.ex
Compiled web/controllers/page_controller.ex
Compiled web/views/layout_view.ex
Compiled lib/yzerman/endpoint.ex
Generated yzerman app
[info] Running Yzerman.Endpoint with Cowboy on http://localhost:4000
[error] Could not start watcher "node d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js", executable does
not exist

Running the same command manually works perfectly,

D:\Projects\Faceoff\yzerman> node d:/Projects/Faceoff/yzerman/node_modules/webpack/bin/webpack.js
Hash: 437b3aa38e0e655d53bd
Version: webpack 1.12.1
Time: 36ms
    Asset     Size  Chunks             Chunk Names
bundle.js  1.42 kB       0  [emitted]  main
   [0] ./web/static/js/app.js 28 bytes {0} [built]
D:\Projects\Faceoff\yzerman>

What to do to get Phoenix to run this correctly?

Most helpful comment

Try

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

If that doesn't work, this is unfortunately out of our hands as node on windows has seen some odd permissions issues that I don't think we can address.

All 2 comments

Try

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

If that doesn't work, this is unfortunately out of our hands as node on windows has seen some odd permissions issues that I don't think we can address.

Thanks a lot Chris! It does work with a slight correction, the extension .js is needed after webpack.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ericlathrop picture ericlathrop  路  3Comments

oliverandrich picture oliverandrich  路  3Comments

tjsousa picture tjsousa  路  4Comments

mcampa picture mcampa  路  3Comments

adamaiken89 picture adamaiken89  路  3Comments