Проблемы с использованием псевдонима в проекте typescript

#typescript #webpack #google-cloud-functions

#typescript #webpack #google-cloud-функции

Вопрос:

Я пытаюсь настроить функциональность псевдонима в проекте Typescript облачной функции.

Я в принципе хочу иметь возможность просто сделать это:

import { ROLES } from '@config/roles" — ‘роли’ — это ts-файл, который экспортирует константу

Это работает только в том случае, если я создаю индексный файл в папке config, который делает export * from "./roles" , тогда я могу это сделать import { ROLES } from '@config' . Если у меня нет индексного файла и я пытаюсь импортировать файл ts напрямую, я получаю следующую ошибку на этапе сборки:

Ошибка: ошибка при синтаксическом анализе триггеров: не удается найти модуль ‘/ functions / config / roles’

Моя проблема в том, что существует несколько мест, откуда может возникнуть ошибка, но я, кажется, неправильно понимаю, как эти три раздела работают вместе:

tslint.json

  "no-implicit-dependencies": [
      true,
      ["@", "@model", "@services", "@utils", "@config"]
    ],
  

tsconfig

 {
  "compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "resolveJsonModule": true,
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "outDir": "lib",
    "sourceMap": true,
    "strict": true,
    "target": "es2017",
    "baseUrl": "src",
    "paths": {
      "@/*": ["./*"],
      "@model": ["model"],
      "@services": ["services"],
      "@utils": ["utils"],
      "@config": ["config"]
    }
  },
  "compileOnSave": true,
  "include": ["src"]
}
  

module-alias

Я использую module-alias для сопоставления псевдонимов typescript с скомпилированными файлами js во время процесса сборки (у меня есть индексный файл, который просматривает все папки и автоматически создает имена функций на основе имен папок и файлов)

  "_moduleAliases": {
    "@": ".",
    "@model": "lib/model",
    "@services": "lib/services",
    "@utils": "lib/utils",
    "@config": "lib/config"
  }
  

С приведенными выше настройками в нем говорится:

Не удается найти модуль «@config / roles» или его соответствующие объявления типов.ts (2307)

Я перепробовал все возможные комбинации изменения параметров во всех трех разделах, но я не могу просто ссылаться на файл внутри вложенной папки в пределах одного из псевдонимов, мне всегда приходится использовать бочкообразные файлы.

Мне могла бы понадобиться помощь, чтобы разобраться в моей конфигурации…

Комментарии:

1. Чтобы начать расследование, следите ли вы за какой-либо документацией?

2. Я нашел некоторую информацию о настройке, чтобы продвинуть это medium.com/@wcandillon /…

3. @MrTech извините, забыл ответить — вы действительно помогли мне решить мою проблему с вашим первоначальным сообщением. Я так застрял в режиме устранения неполадок, что забыл просто повторить шаги и следовать рабочему руководству. Тогда я нашел это, и как только я с этим справился, все было в порядке: dev.to/larswaechter/path-aliases-with-typescript-in-nodejs-4353