If you search the forums, someone else did a port of Allegro to emscripten a while ago as well which may work even better than that since there is no intermediate SDL2 layer.
Ok, if you want to try it, this is the things I remember:
Install the emscripten SDK. This is a huge task in itself, I followed  to do it.
Apply this small patch to Allegro  or just do:
git clone -b emscripten https://github.com/allefant/allegro5.git
Install some emscripten packages through their package management system, I think I have SDL2, libpng and zlib. I also compiled freetype2 somehow but only needed if you need truetype fonts.
Compile Allegro, using SDL2 and emscripten. Options I used (leave out the freetype ones if you don't have it):
CMAKE_C_FLAGS=-s USE_ZLIB=1 -s USE_LIBPNG=1
emcc -O3 examples/ex_draw_bitmap.bc lib/liballegro_monolith-static.a lib/libfreetype.a -s USE_SDL=2 -s FULL_ES2=1 -o ex_draw_bitmap.html --preload-file data -s USE_ZLIB=1 -s USE_LIBPNG=1 -s TOTAL_MEMORY=1000000000
Some issues I still have with my actual game:
Freetype2 compiled from upstream freetype sources seems to sometimes cut off parts of letters, but Google suggests there's an easy fix.
I have no sound yet, but emscripten supports the SDL1 sound commands, it probably is very easy adapting Allegro's SDL2 sound driver to support that.
Unless you use emscripten's pthreads support, everything using threads needs to be rewritten with polling from the main thread. Not a big issue in my case.