Общие модули и псевдонимы машинописи с использованием функций Firebase - PullRequest
0 голосов
/ 26 апреля 2020

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

Код компилируется, если я на него ссылаюсь, используя относительные пути, но мой каталог functions/ загружается в функции Firebase и не может использовать относительные файлы за пределами своего каталога.

Структура каталога

functions/
- tsconfig.json
- src/*.ts
- lib/*.js

shared/
- tsconfig.json
- src/*.ts
- lib/*.ts

src/
- components/*.vue

tsconfig.json
tsconfig-base.json

В своем функциональном файле я пытаюсь сослаться на один из моих общих модулей, например, так:

import { MyClass } from '@shared/src/MyClass'; // Error: Cannot find module '@shared/src/MyClass'

import { MyClass } from '../../shared/src/MyClass' // This Compiles, but fails deploying Cloud Functions

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

Что я делаю неправильно моя установка, структура или развертывание?

Я также пытался добавить "@shared": "file:../shared" к functions/package.json, как описано здесь

tsconfig-base. json

{
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitReturns": true,
        "noUnusedLocals": true,
        "sourceMap": true,
        "strict": true,
        "declaration": true,
        "declarationMap": true,
        "lib": [
            "es2018"
        ],
        "target": "es2018",
        "types": [
            "node"
        ]
    },
    "compileOnSave": true,
    "files": [],
    "include": [],
    "exclude": [
        "lib",
        "node_modules"
    ]
}

shared / tsconfig. json

{
  "extends": "../tsconfig-base.json",
  "compilerOptions": {
    "composite": true,
    "baseUrl": "./",
    "outDir": "./lib",
    "rootDir": "./src",
  },
  "compileOnSave": true,
  "include": [
    "src"
  ],
  "references": [],
  "exclude": [
    "lib",
    "node_modules"
  ]
}

functions / tsconfig. json

{
  "extends": "../tsconfig-base.json",
  "references": [
    {
      "path": "../shared"
    }
  ],
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./lib",
    "rootDir": "./src",
    "paths": {
      "@shared/*": [
        "../shared/*"
      ]
    }
  },
  "compileOnSave": true,
  "include": [
    "src"
  ],
  "exclude": [
    "lib",
    "node_modules"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...