defmodule Mix.Tasks.Npm.Deps do @shortdoc "List installed npm packages (like mix deps)" @moduledoc """ Lists installed npm packages in a format similar to `mix deps`. mix npm.deps Shows each package with its locked version and integrity hash. """ use Mix.Task @impl true def run(_args) do case NPM.Lockfile.read() do {:ok, lockfile} when lockfile == %{} -> Mix.shell().info("No npm dependencies installed.") {:ok, lockfile} -> NPM.DepsOutput.print(lockfile) {:error, _} -> Mix.shell().info("No package-lock.json found. Run `mix npm.install` first.") end end end