ccavolt

ccavolt

In my mix.exs file, if I try to create an alias with a hex mix task, for example hex.audit or hex.outdated, I get an error saying the task could not be found. I know I have hex installed because the above mix tasks work on the command line, so I’m guessing it has something to do with those mix tasks not being sourced when run as an alias, but I’m unsure how I can fix it. Here’s a larger example:

defp aliases do
    [
      audit: ["hex.audit"]
    ]
end

Showing Posts 1 to 10

dimitarvp

dimitarvp

Is the aliases function actually called inside mix.exs?

ccavolt

ccavolt OP

I think so? All my other non-hex mix tasks work just fine there as aliases.

ccavolt

ccavolt OP

@dimitarvp I think I may have misunderstood your question. Yes, I’m calling it inside mix.exs. I initially thought you were asking if that’s what I should be doing. Like I said above, non-hex aliases are working. So for instance this works:

defp aliases do
  [
    setup: ["deps.get", "deps.compile", "ecto.reset", "assets.setup", "assets.build"]
  ]
end
dimitarvp

dimitarvp

A-ha, I see. Was just making sure. A drive-by contribution if you will. :slight_smile:

ccavolt

ccavolt OP

Is there anyone else that can help with this? I considered using elixirc_paths, but I don’t know what path I would give it, since the hex files are already compiled.

LostKobrakai

LostKobrakai

I just tried your initial example on a project and it seemed to work just fine.

ccavolt

ccavolt OP

Okay, so apparently my example wasn’t specific enough. :sweat_smile:
Upon further examination, the hex mix task has to be at least the third in line in the list. The list can have more than three items in it as long as the hex mix task is number one or two. So for example this works:

defp aliases do
    [
      testtask: ["deps.get", "hex.audit", "deps.compile"]
    ]
end

But this does not:

defp aliases do
    [
      testtask: ["deps.get", "deps.compile", "hex.audit"]
    ]
end

It results in:

** (Mix) The task "hex.audit" could not be found. Did you mean "deps.audit"?
katafrakt

katafrakt

I don’t have a solution, but I was able to reproduce it and note a few things:

  1. If hex.audit is the first task in the alias, it works
  2. If you only alias hex tasks (for example ["hex.info", "hex.audit"]) - it also works

So it would seem that deps tasks somehow disable them :thinking:

ccavolt

ccavolt OP

It’s actually not specific to deps; any non-hex tasks (as you discovered) will cause a failure. For example:

defp aliases do
    [
      testtask3: ["format", "compile", "hex.audit"],
    ]
end
katafrakt

katafrakt

So I traced it down to the fact that after running any non-hex task Code.ensure_loaded(Mix.Tasks.Hex.Audit) returns {:error, :nofile}. But if no other non-hex task was run before, it returns {:module, Mix.Tasks.Hex.Info}. Unfortunately I don’t know why is that, but maybe someone more knowledgeable would have some idea.

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews