Skip to main content

本地软件包中的链接

在自己的应用程序中尝试对 Backstage 主软件仓库中的软件包进行修改通常很有用。 例如,如果你想修改@backstage/core-plugin-api并在您的应用程序中试用。

要链接外部软件包,请将它们添加到您的package.jsonlerna.json这些路径可以是相对路径,也可以是绝对路径(带或不带全局变量),例如

"packages": [
"packages/*",
"plugins/*",
"../backstage/packages/core-plugin-api", // New path added to work on @backstage/core-plugin-api
],

然后重新安装软件包,让 yarn 设置符号链接:

yarn install

现在您可以修改@backstage/core-plugin-api软件包,并在您的应用程序中反映和测试这些更改。 只需使用yarn dev(或yarn start仅用于前台)与正常情况一样。

请注意,对于后端软件包,您需要确保链接的软件包不依赖于任何非链接的软件包。 例如,如果您想处理@backstage/backend-common,您还需要链接其他依赖于以下内容的后端插件和软件包@backstage/backend-common,或暂时禁用后端中的这些插件。 这是因为只要遇到非本地软件包,后端模块树的转换就会停止,从那时起节点将require包,直接用于整个模块子树。

在链接外部软件包时,类型检查也会出现问题,因为链接进来的软件包将使用外部项目中的类型,而两个项目之间的依赖关系版本不匹配可能会导致错误。 要修复这些错误,您需要同步两个项目中的依赖关系版本。 一个简单的方法是复制到yarn.lock并运行yarn install通常最好忽略类型错误,因为无论如何应用程序都能正常运行。

类型检查的另一个问题是,增量类型缓存不能正确失效链接的包,导致类型检查不能反映类型的更改。compilerOptions.incremental = falsetsconfig.json或删除类型缓存文件夹dist-types在运行之前yarn tsc.