Как настроить псевдоним пути в React Native с помощью Typescript

Это руководство предназначено для меня в качестве справочного материала при настройке приложений React Native с помощью Typescript. В нем объясняются шаги, необходимые для настройки трех различных способов настройки псевдонимов пути при создании приложения React Native.

Разработчик не знает, как настроить псевдонимы путей

Цели:

  • Как настроить псевдоним пути для каталоговcomponents/*
  • Как настроить псевдоним глобального пути для каталога srcsrc/*
  • Как настроить псевдоним глобального пути для каталога src с префиксом@/*

Представьте, что у нас есть следующая голая установка для проекта React Native:

/Users/skaan/Dev/rnapp
├── App.tsx
├── app.json
├── babel.config.js
├── package.json
├── src
|  ├── components
|  |  ├── form
|  |  |  ├── TextInput.tsx
|  |  |  └── index.tsx
|  ├── index.tsx
|  └── screens
|     └── Auth
|        └── index.tsx
|        └── AuthForm.tsx
├── tsconfig.json
└── yarn.lock

import { TextInput } from “../../components/form”

Как настроить псевдоним пути для каталогов

Первая цель — настроить проект таким образом, чтобы мы могли использовать абсолютный импорт для определенных каталогов, таких как

import { TextInput } from “components/form”

1. Установите псевдоним пути для машинописного текста

Нам нужно изменить tsconfig.json , чтобы указать Typescript, где он может найти наши модули.

// tsconfig.json
{
  "extends": "@tsconfig/react-native/tsconfig.json",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "components/*": ["src/components/*"]
    }
  },
  ...
}

Нам также нужно указать React Native, где взять наши файлы, для этого нам нужно настроить Babel.

Установите babel-plugin-module-resolverкак зависимость разработчика

yarn add --dev babel-plugin-module-resolver
npm install -save-dev babel-plugin-module-resolver

// babel.config.js
module.exports = {
  presets: ["module:metro-react-native-babel-preset"],
  plugins: [
    [
      "module-resolver",
      {
        root: ["./src"],
        extensions: [".ios.js", ".android.js", ".js", ".ts", ".tsx", ".json"],
        alias: {
          "components/": "./src/components"
        },
      },
    ],
  ],
}

Как настроить псевдоним пути для каталога src

Вторая цель — разрешить проекту использовать абсолютный импорт для каталога src :

import { TextInput } from “src/components/form”

1. Установите псевдоним пути для машинописного текста

Нам нужно настроить tsconfig.json , чтобы включить псевдоним пути для каталога src .

// tsconfig.json
{
  "extends": "@tsconfig/react-native/tsconfig.json",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "components/*": ["src/components/*"],
      "src/*": ["src/*"]
    },
  },
  ...
}

Нам также нужно указать React Native, где взять наши файлы, для этой цели нам также нужно добавить сопоставление каталога src с Babel.

// babel.config.js
module.exports = {
  presets: ["module:metro-react-native-babel-preset"],
  plugins: [
    [
      "module-resolver",
      {
        root: ["./src"],
        extensions: [".ios.js", ".android.js", ".js", ".ts", ".tsx", ".json"],
        alias: {
          "components/": "./src/components",
          "src/": "./src"
        }
      }
    ]
  ]
}

Третья цель — разрешить проекту использовать абсолютный импорт для каталога src с префиксом.

import { TextInput } from “@/components/form”

Обычно я выбираю именно этот вариант, так как он достаточно удобен. Вы можете четко различать относительный импорт, абсолютный импорт и импорт из node_modules .

1. Установите псевдоним пути для машинописного текста

Нам нужно настроить tsconfig.json , чтобы включить псевдоним пути для каталога src .

// tsconfig.json
{
  "extends": "@tsconfig/react-native/tsconfig.json",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    },
  },
  ...
}

Нам также нужно указать React Native, где взять наши файлы, для этого нам нужно добавить сопоставление каталога src с Babel с используемым префиксом.

// babel.config.js
module.exports = {
  presets: ["module:metro-react-native-babel-preset"],
  plugins: [
    [
      "module-resolver",
      {
        root: ["./src"],
        extensions: [".ios.js", ".android.js", ".js", ".ts", ".tsx", ".json"],
        alias: {
          "@/": "./src"
        }
      }
    ]
  ]
}

{
  "name": "@"
}

Suggested posts

Мои наиболее используемые ресурсы кодирования

Мои наиболее используемые ресурсы кодирования

На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.

Серия Lit library - 1: Глубокое погружение в библиотеку lit-html

Серия Lit library - 1: Глубокое погружение в библиотеку lit-html

Цель этой серии блогов — углубиться в библиотеку Lit и получить всестороннее представление о ее уникальных функциях и о том, чем она отличается от других библиотек и фреймворков на рынке. Серия разделена на три части, охватывающие такие темы, как 1.

Related posts

Преследование христиан: преступление на почве ненависти, о котором мы не говорим

Забудьте об исламофобии: христиане (и евреи) являются главными жертвами преступлений на почве религиозной ненависти.

Преследование христиан: преступление на почве ненависти, о котором мы не говорим

Любой здравомыслящий человек знает, что в политических и медийных кругах доминируют левые, даже крайне левые, что создает дисбаланс в политическом дискурсе. В области религии этот дисбаланс хорошо виден: левые газеты и сети не спешат защищать христианскую веру.

БЕЗГРАНИЧНАЯ ЖИЗНЬ

Когда вы вырастаете, вам, как правило, говорят, что мир такой, какой он есть, и ваша жизнь состоит в том, чтобы просто жить своей жизнью внутри мира, никогда не рискуя своей жизнью, просто следовать установленному пути и умереть в конце, и стараться не слишком сильно бить стены. Но это очень ограниченная жизнь.

3 проверенных способа улучшить свои навыки письма

Преимущества письма и стратегии, которые помогут вам в этом

3 проверенных способа улучшить свои навыки письма

В 2022 году, с выпуском GPT-3, навыки письма, кажется, стали менее важными. С помощью ИИ люди с плохим письмом также могут генерировать качественный персонал.

Сольное выступление рыжеволосой девушки

По заданию Хайдена Кэти снимает, как она мастурбирует.

Сольное выступление рыжеволосой девушки

Было уже за полночь, когда Хейден отвез Кэти обратно в общежитие колледжа после их совместного вечера. У нее был ранний урок утром, и у нее не было другой смены одежды после того, как она осталась с ним прошлой ночью.