Quiero entender la diferencia entre ES2015 y ESM2015. Sé que ES2015 es el estándar ES^, pero recientemente, mientras compilaba mi aplicación Angular usando ng build , obtuve lo siguiente: Compiling @angular/core : es2015 as esm2015
Quiero saber por qué ESM2015? ¿Son archivos minificados ES2015?
De acuerdo con la documentación para el formato de paquete angular :
Abreviatura de Módulos ECMAScript. Un archivo que contiene sentencias que importan y exportan símbolos. Esto es idéntico a la definición de módulos en la especificación ECMAScript.
Cuando se compila un proyecto de es2015 a esm2015, como compilando Compiling @angular/core : es2015 as esm2015
Básicamente sigue siendo EcmaScript, pero esm se basa en módulos "o paquetes" , esto permite independizar algunas partes del código de otras.
Otras diferencias entre módulos y scripts estándar:
- Los módulos usan el modo estricto automáticamente.
- los módulos se aplazan automáticamente (cuando se están cargando).
- Los módulos solo se ejecutan una vez, incluso si se han referenciado en varias etiquetas.
- Las características de los módulos se importan al ámbito de un solo script; no están disponibles en el ámbito global.