能否在不先构建库的情况下使用NPM链接来使用Angular库?

4

我有一个Angular库,可以构建为一个Node模块。

为了在不发布的情况下使用我的本地版本,并测试它在多个应用程序上是否正常工作,我尝试使用npm link命令。

我通过导航到库的dist文件夹并运行npm link找到包含package.json的位置。然后我导航到我想要使用它的应用程序并运行npm link THE_LIBRARY_NAME。这很好用,但如果我更新了该库,则需要重新构建它,而当我重建它时,链接会中断,所以我必须重复这些步骤。

如果我尝试链接到库本身,而不是它输出的Node模块,则会出现“找不到模块”的错误。

请问我做错了什么?

尝试链接到库本身似乎实际上有效,我可以在node_modules中找到它,但为了澄清,导入未找到该模块。


这是一个仅包含库的独立项目,还是与使用它的应用程序结合在一起的项目? - Maxim Palenov
@katzz0 这是一个完全独立的项目。 - Craig
如果有重构项目的可能性,我建议使用Angular工作区项目结构。这样,您就可以直接从项目的消费者中使用构建库。更多详细信息和文档:https://angular.io/guide/file-structure 我在我的存储库中有一个示例:https://github.com/tenkmilan/angular-workspace-example 根据我的经验,这比使用“npm link”更好。 - Milan Tenk
1个回答

1

您需要构建库并进行链接,但如果使用观察模式构建库,然后再进行链接,则此后的任何更改都不需要重新设置链接。使用该库的应用程序将自动重新编译。


我无法让这个工作起来。我们只需要在观察模式下,通过npm链接库的dist文件夹,然后在使用该库的应用程序中运行npm link @library-name,对吗? - Winnemucca
无法使其正常工作。更改未在主应用程序中反映出来。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接