defmodule Mix.Tasks.Npm.Remove do @shortdoc "Remove an npm package" @moduledoc """ Remove an npm package from `package.json` and re-install. mix npm.remove lodash mix npm.remove @types/node """ use Mix.Task @impl true def run([name]) do Application.ensure_all_started(:req) case NPM.remove(name) do :ok -> :ok {:error, {:not_found, ^name}} -> Mix.shell().error("Package #{name} not found in package.json.") {:error, reason} -> Mix.shell().error("Failed to remove #{name}: #{inspect(reason)}") end end def run(_) do Mix.shell().error("Usage: mix npm.remove ") end end