如何解决在从外部项目上一级导入类型时尝试构建 Firebase 函数项目 `tsc` 编译后丢失文件夹结构
很抱歉问这么长的问题,但项目结构问题/错误有点难以解释。
我有一个 Next.js 项目,这是我的根项目。这是一个 Typescript 项目,所以它有自己的 tsconfig.json
这是基本结构:
> app // APP COMPONENTS
> pages // NEXT.JS PAGES
> types // SOME GLOBAL TYPES FOR THE PROJECT
firebase.json
firestore.rules
storage.rules
tsconfig.json
https://firebase.google.com/docs/functions/typescript
基本上我已经输入了 firebase init functions
并按照 CLI 中的说明进行操作。
然后它创建了一个 functions
如下(>
符号表示一个文件夹):
> app
> functions // NEW FOLDER FOR THE FUNCTIONS PROJECT
> src
index.ts
package.json
tsconfig.json
> pages
> types
firebase.json
firestore.rules
package.json
storage.rules
tsconfig.json
现在看到 functions
文件夹有自己的 tsconfig.json
文件和自己的 package.json
文件。从本质上讲,它是一个自己的项目。我同意这个想法。
{
"compilerOptions": {
"module": "commonjs","noImplicitReturns": true,"noUnusedLocals": true,"outDir": "lib","sourceMap": true,"strict": true,"target": "es2017"
},"compileOnSave": true,"include": [
"src"
]
}
它还为我的 predeploy
文件添加了一个 firebase.json
钩子。
"functions": {
"predeploy": "npm --prefix \"$RESOURCE_DIR\" run build"
}
这是在部署前构建 .ts
文件所必需的。它将按照 functions/src
将 functions/lib
文件夹中的文件构建到 tsconfig.json
文件夹。
基本的 helloWorld
示例构建和部署都很好。我已将一些文件添加到 functions
文件夹中,并且一切正常。
在 functions/src
上查看我的文件:
查看 functions/lib
上的编译文件:
正如您所期望的那样,它的结构和文件完全相同。
问题
当我从“外部”根项目导入类型时,问题就开始了。例如:
我继续 functions/src/index.ts
并执行以下操作:
import SomeType from "../../types/whatever"
// USE THE TYPE HERE
现在看看构建结果是什么(即:functions/lib
文件夹):
现在它基本上在 functions
文件夹下创建了另一个 lib
。它也基本上从我的 types
文件夹中复制文件。我不知道它为什么这样做。
我完全没想到。我想使用外部根项目中的类型,但不会弄乱生成的 functions/lib
文件夹的结构。
会发生什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。