Let us improve slightly on Joel's answer by avoiding not only choice but also excluded middle (which is used in assuming that the minima $n_x$ exist). In passing we also generalize to an arbitrary metric codomain. Since the various notions of compactness are not equivalent intuitionistically, we have to specify which one we mean. We mean by "compact" the Heine-Borel finite subcover property.
Theorem: If a map $f : X \to Y$ from a compact metric space to a metric space is continuous then it is uniformly continuous.
Proof. (No excluded middle, no choice.) Let $\epsilon > 0$ be given. Consider the family of open balls
$$\mathcal{F} = \lbrace B(x,r) \mid
x \in X, r > 0, \forall x', x'' \in B(x,2r) . d(f(x'), f(x'')) < \epsilon
\rbrace.$$
Beware, we put $B(x,r)$ in $\mathcal{F}$ if the larger ball $B(x,2 r)$ is mapped by $f$ to a sufficiently small set.
Because $f$ is continuous, $\mathcal{F}$ covers $X$. By the Heine-Borel property it has a finite subcover $$B(x_1, r_1), \ldots, B(x_n, r_n).$$
Let $\delta = \min (r_1, \ldots, r_n)$. Suppose $d(y,z) < \delta$ for some $y, z \in X$. There is $i$ such that $d(x_i, y) < r_i$, hence $d(x_i, z) \leq d(x_i, y) + d(y, z) < r_i + \delta \leq 2 r_i$. Thus, since both $y$ and $z$ are contained in $B(x_i, 2 r_i)$ we conclude $d(f(y), f(z)) < \epsilon$. QED.
As usual, the constructive proof is also the most elegant one. The above proof is an easy adaptation that avoids unecessary use of choice of 4.3.31 and 4.3.32 of Engelking's famous General Topology. Further reading: Hajime Ishihara and Peter Schuster, Compactness under constructive scrutiny. Math. Log. Quart. 50, No. 6, 540 – 550 (2004).