Una de las razones por las que amo usar es6, son los Es Modules, y hasta ahora la unica forma de usarlos era usando babel para compilar el codigo. Pero hoy esto ha cambiado gracias a que la version 8.5.0 de Node.js soporta nativamente los Es Modules!
Para usarlos, solo necesitamos cambiar la extension de los archivos en los que vayamos a usar es modules, de .js
a .mjs
, (este cambio es para indicarle a node.js, qué archivos usaremos con es modules, mas Info aqui).
Y por ultimo tendremos que correr nuestros archivos de node.js usando el flag --experimental-modules
:
node --experimental-modules index.mjs
Importante!
Al usar los es modules sin un compilador como babel, tendremos que seguir algunas reglas, entre ellas, que no podemos importar modulos locales sin especificarles la ruta, esto quiere decir que cuando importemos un modulo llamandolo por solo el nombre, node.js entendera que debe llamar a algun modulo del package.json. Así que para importar un modulo local, tendremos que usar ./
, ../
, o /
.
import express from'express'// Correct!import config from'./config.js'// Correct!import config from'config.js'// Error! No dependency named 'config'...
Si quieres saber mas a profundidad como funciona esta nueva integración con los es modules en node.js, puedes visitar lo siguientes links:
Using ES modules natively in Node.js
Module specifiers: what’s new with ES modules?