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?
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.
Most helpful comment
Try
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.