@babel/preset-env vs babel-preset-env

Which one should I use? What are the difference between them?

There is a short answer to this. You should use @babel/preset-env.

Why? It’s the lateset version of the package. From version 7 of Babel, they moved babel-preset-env into the main Babel repo, and they changed the name from babel-preset-env to @babel/preset-env.

Learn more about @babel/preset-env