--- id: 587d7b8c367417b2b2512b55 title: Understand the Differences Between import and require challengeType: 1 videoUrl: '' localeTitle: Comprender las diferencias entre importar y requerir --- ## Description
En el pasado, la función require() se usaría para importar las funciones y el código en archivos y módulos externos. Aunque es práctico, esto presenta un problema: algunos archivos y módulos son bastante grandes, y es posible que solo necesite cierto código de esos recursos externos. ES6 nos da una herramienta muy útil conocida como importación . Con él, podemos elegir qué partes de un módulo o archivo cargar en un archivo dado, ahorrando tiempo y memoria. Considere el siguiente ejemplo. Imagine que math_array_functions tiene aproximadamente 20 funciones, pero solo necesito una, countItems , en mi archivo actual. El antiguo enfoque de require() me obligaría a incorporar las 20 funciones. Con esta nueva sintaxis de import , puedo traer solo la función deseada, así:
importar {countItems} desde "math_array_functions"
Una descripción del código anterior:
importar {function} desde "file_path_goes_here"
// ¡También podemos importar variables de la misma manera!
Hay algunas formas de escribir una declaración de import , pero la anterior es un caso de uso muy común. Nota
El espacio en blanco que rodea la función dentro de las llaves es una buena práctica: facilita la lectura de la declaración de import . Nota
Las lecciones en esta sección manejan características que no son del navegador. import , y las declaraciones que presentamos en el resto de estas lecciones, no funcionarán directamente en un navegador. Sin embargo, podemos usar varias herramientas para crear código a partir de esto para que funcione en el navegador. Nota
En la mayoría de los casos, la ruta del archivo requiere una ./ antes de ella; de lo contrario, el nodo buscará en el directorio node_modules primero intentando cargarlo como una dependencia.
## Instructions
Agregue la declaración de import apropiada que permitirá que el archivo actual use la función capitalizeString . El archivo donde vive esta función se llama "string_functions" , y está en el mismo directorio que el archivo actual.
## Tests
```yml tests: - text: declaración de import válida testString: 'getUserInput => assert(getUserInput("index").match(/import\s+\{\s*capitalizeString\s*\}\s+from\s+("|")string_functions\1/g), "valid import statement");' ```
## Challenge Seed
```js "use strict"; capitalizeString("hello!"); ```
### Before Test
```js window.require = function (str) { if (str === 'string_functions') { return { capitalizeString: str => str.toUpperCase() }}}; ```
## Solution
```js // solution required ```