从本地文件夹或网络文件夹安装Angular library

从本地文件夹或网络文件夹安装Angular library,angular,npm,angular-library,Angular,Npm,Angular Library,如果我创建一个像这样的角度库: ng new libraries-workspace --create-application=false cd libraries-workspace ng generate library test-library ng add test-library c:\libraries-workspace\dist\test-library... 现在我建立了图书馆 ng build test-library --watch 现在,如果我在一个完全不同的文件夹

如果我创建一个像这样的角度库:

ng new libraries-workspace --create-application=false
cd libraries-workspace
ng generate library test-library
ng add test-library c:\libraries-workspace\dist\test-library...
现在我建立了图书馆

ng build test-library --watch
现在,如果我在一个完全不同的文件夹(远离工作区)中创建一个新的angular应用程序

如何在不发布到NPM的情况下引用或安装我的库。所以基本上我想从一个文件夹安装这个库

大概是这样的:

ng new libraries-workspace --create-application=false
cd libraries-workspace
ng generate library test-library
ng add test-library c:\libraries-workspace\dist\test-library...
我不想将我的项目添加到工作区文件夹


谢谢编辑07.02.2021:一个更简单的方法

您可以将angular library直接链接到您选择的应用程序,例如主应用程序。为此,请执行以下步骤:

  • 导航到终端中angular library项目的输出目录,并运行命令
    npm link
    。您可能需要触发ng build一次,以便输出目录存在。这将使您的库在您的计算机上本地可用
  • 现在导航到将角度库用作依赖项的主应用程序,并运行命令
    npm link[模块名称]
  • 在projects>architect>build下的angular.json文件中添加
    “preserveSymlinks”:true
  • 使用ng serve运行主应用程序,对库进行一些更改,然后构建它。根据您的IDE,您可以创建触发自动生成的监视任务。您应该能够看到您的更改
  • 最后,如果您完成了更改测试,您可以通过在主应用程序的根目录中运行命令
    npm unlink[name\u of_your\u module]
    来取消依赖项与主应用程序的链接。转到angular library项目目录,运行
    npm unlink
    ,使库不再在本地可用。现在,您可以发布更改,并在主应用程序中安装npm以安装最新版本
  • 请记住,它必须是dist output文件夹,因为angular cli不支持直接链接库。您也可以以相同的方式将库链接到其他angular库,但必须将
    “preserveSymlinks”:true
    添加到库的tsconfig.json中

    旧答案:


    您必须先打包库的生成输出。为此,必须在生成输出文件夹中使用命令。Npm pack将创建一个包,复制所创建包的路径,在终端中导航到您的测试项目,并点击Npm安装“C:\path\to\Npm\pack\package”

    确定。我尝试了,但出现错误。我正在使用以下命令:npm install C:\…\dist\test library\test-library-0.0.1.tgznpm ERR!代码enoint npm ERR!系统调用状态npm错误!路径C:\…\dist\test library\test-library-0.0.1.tgz npm ERR!错误号-4058 npm错误!eNote eNote:没有这样的文件或目录,stat'C:\…\dist\test library\test-library-0.0.1.tgz'npm ERR!eNONT这与npm无法找到文件有关。npm错误!但那个目录和文件确实存在,路径是否有空格?请尝试npm安装“C:\…\dist\test library\test-library0.0.1.tgz”,或者将软件包移动到其他位置并从那里安装。您甚至可以将其移动到与测试项目相同的目录中。谢谢,我想我正在工作。我应该用另一种方式吗?似乎有点冗长,构建库,复制,然后使用npm安装。我只是希望使用类似ng build的东西——观察,还是只有当应用程序在工作区内时,它才起作用?感谢您的帮助。如果您阅读了的文档,他们会提到。\注意:如果您只想将一个dev目录链接到您的npm根目录,您可以通过使用npm link来更轻松地完成此操作。\不知道这是否有帮助,我自己还没有尝试过。