He estado usando el paquete create-react-app para crear un sitio web de reacción. Estaba usando rutas relativas en toda mi aplicación para importar componentes, recursos, redux, etc., por ejemplo, import action from '../../../redux/action
He intentado usar el paquete module-alis npm pero sin éxito. ¿Hay algún complemento que pueda usar para importar según el nombre de la carpeta o el alias, es decir, una ruta absoluta?
Por ejemplo, import action from '@redux/action' o import action from '@resource/css/style.css'
Cree un archivo llamado .env en la raíz del proyecto y escriba allí:
NODE_PATH=src Luego reinicie el servidor de desarrollo. Debería poder importar cualquier cosa dentro de src sin rutas relativas.
Tenga en cuenta que no recomendaría llamar a su carpeta src/redux porque ahora es confuso si la importación de redux se refiere a su aplicación o a la biblioteca. En su lugar, puede llamar a su carpeta src/app e importar cosas desde app/... .
Intencionalmente, no admitimos la sintaxis personalizada como @redux porque no es compatible con el algoritmo de resolución de Node.
El enfoque en la respuesta aceptada ahora ha sido reemplazado. Create React App ahora tiene una forma diferente de establecer rutas absolutas como se documenta aquí .
Para resumir, puede configurar su aplicación para admitir la importación de módulos utilizando rutas absolutas haciendo lo siguiente:
Cree/Edite su jsconfig.json/tsconfig.json en la raíz de su proyecto con lo siguiente:
{ "compilerOptions": { "baseUrl": "src" }, "include": ["src"] }Una vez que haya hecho esto, puede importar especificando subdirectorios de "src" (en el siguiente ejemplo, components es un subdirectorio de src), por ejemplo
import Button from 'components/Button'Después de probar la solución anterior de Ben Smith, si encuentra que eslint se queja de importar la ruta absoluta, agregue la siguiente línea a su configuración de eslint:
settings: { 'import/resolver': { node: { paths: ['src'], }, }, },reemplace 'src' con su carpeta si usa su propia plantilla con el nombre de su carpeta.