Busqué en Internet y decía que la diferencia entre require e import es que require llamará al archivo JS completo. Entonces, en mi situación, ¿se llamará al archivo module.js completo? Y si no, ¿en qué caso ese archivo se llamará por completo?
módulo.js
const a = 10; const b = 20; const c = 30; module.exports = { a , b };aplicación.js:
const nums = require('./module'); console.log(nums);Require es no léxico, se queda donde han puesto el archivo. Se puede llamar en cualquier momento y lugar en el programa. Puede ejecutar directamente el código con la instrucción require. Si desea usar el módulo require, debe guardar el archivo con la extensión '.js'.
Import es léxica, se ordena en la parte superior del archivo. No se puede llamar condicionalmente, siempre se ejecuta al principio del archivo. Para ejecutar un programa que contiene una declaración de importación, debe usar el indicador de función del módulo experimental. Si desea usar el módulo de importación, debe guardar el archivo con '. Extensión de mjs.
Por alguna razón, usar el módulo de nombre eliminó el resaltado del código, así que agregué los comentarios que lo arreglaron...
En su ejemplo, el archivo del módulo completo no está cargado. Y no es correcto decir que puede ser. Las exportaciones de módulos no son un cargador de módulos basado en archivos. Técnicamente, la funcionalidad del módulo podría distribuirse entre muchos archivos. Pero, si crea un valor predeterminado y pone todo en él , sería casi lo mismo.
(Suponiendo que solo está utilizando un único archivo para definir su módulo).
módulo.js
export const name = /** < **/ module /** name >**/; export default /** < **/ module /** name >**/;Luego, puede usar exportaciones con nombre como antes o usar una de las variaciones de sintaxis predeterminadas de importación para tomar el archivo completo.
aplicación.js
import /** < **/ module /** name> **/ from './modules.js';o alternativamente
import {default as /** < **/ module /** name> **/} from './modules.js';