在an unrelated question上,我们想知道Google Firebase支持的道格(Doug)是否会以不同的方式导入软件包,从而导致漏洞。
文档使用Typescript和npm来做到这一点:
import * as firebase from "firebase/app";
import "firebase/auth";
import "firebase/firestore";
我使用Type 3.9的Yarn和Lerna。它要求我使用命名空间/模块语法在导入的开头添加一个@,否则会抱怨不是URL友好字符。
我使用:
import firebase from "@firebase/app";
import "@firebase/auth";
import "@firebase/firestore";
这两个选项实际上是否有所不同,以至于第二个选项可能会因为第一个@ @触发在第一个选项中不会发生的错误?
谢谢
答案 0 :(得分:1)
两个不同的导入路径意味着两个不同的东西:
RichTextBox rtb = ...
rtb.AppendText("Hello", FontStyle.Italic);
rtb.AppendText("World", Color.Red);
rtb.AppendText("!", FontStyle.Bold);
表示您正在导入import "@firebase/auth"
NPM软件包。这意味着程序包本身在NPM中发布为@firebase/auth
@firebase/auth
意味着您正在从import "firebase/auth"
包中导入auth
文件夹看看它说的@firebase/auth
自述文件
此软件包不能直接使用,只能通过官方支持的firebase软件包使用。
这似乎支持您应该使用firebase
软件包并导入其子文件夹之一的文档。
输入您的other question:您实际上firebase
是哪个包裹?
因为如果您使用的是npm install
软件包 ,那么应该安装而不是firebase
(不是它自己的NPM模块)或{{1} },不适合直接使用。
如果您确实安装了firebase/auth
,这将解释为什么TypeScript在@firebase/auth
路径中找不到类型,因为它与您安装的包不同。