What are the limits and prerequisites of using dependencies with melange?

I am trying to explore melange. But I am quite confused about its prerequisites, and neither the issues, documentation, or repo have been able to clarify for me so far.

When I try to define a simple skeleton application using melange, any dependency I add in the libraries field of my dune stanza seems to be missing when I try to build. As a simple example,

Given

let ex = CCList.map (fun x -> x) [1;2;3]

With the stanza

(library
 (name melange_ex)
 (libraries containers)
 (modes melange best))

And the file

let () =
  let _ = Melange_ex.ex in
  print_endline "Hello, World!"

With the stanza

(melange.emit
 (target output)
 (libraries melange_ex))

dune build tells me things like

File "./_opam/lib/either/dune-package", line 27, characters 0-697:
27 | (library
28 |  (name either)
29 |  (kind normal)
....
51 |       (visibility public)
52 |       (source (path Either_intf) (impl (path either_intf.ml))))))
53 |    (wrapped true))))
Error: File unavailable:
./_opam/lib/either/melange/either__Either_intf.cmj
-> required by _build/default/bin/output/node_modules/either/either_intf.js
-> required by alias bin/all
-> required by alias default
File "lib/melange_ex.ml", line 1, characters 9-19:
1 | let ex = CCList.map (fun x -> x) [1;2;3]
             ^^^^^^^^^^
Error: Unbound module CCList

Is the implication that melange cannot be used with most ocaml libraries?
Is there some additional configuration needed?
How does one know what can or cannot be used with melange?

Thanks in advance for any tips!