The difference is that compiler usually produces a directly usable artifact (executable binary of some sort). Example: C (produces binary), C# (produces bytecode).
Whereas transpiler produces another form of source code (in another language, for example), which is not directly runnable and needs to be compiled/interpreted. Example: CoffeeScript transpiler, which produces javascript. Opal (converts ruby to javascript)
Compiler - compiles code to a lower level code.
Example:
"Developer code" -> "Machine code"
Java -> bytecode
Transpiler - compiles code to same level of code/abstraction.
Example:
"Developer code" -> "Another developer code or version"
JavaScript ES2015+ -> JavaScript ES5