如何通过symlink或repository导出和集成独立的Angular模块?

如何通过symlink或repository导出和集成独立的Angular模块?,angular,centos,Angular,Centos,依赖项: 角度8.1.2 节点v10.16.0 NPM 6.10.2 Centos 7 我希望能够创建一个集成不同独立模块的角度应用程序。这些模块将出现在私有存储库中。因此,它们将有一个版本,可以添加到package.json中 这些模块将包含测试、组件、模板和服务 根据angular的文档,创建一个库可以实现我的愿望-> 但是,只能在Angular应用程序中生成库,我不想这样做。我希望有一个独立的模块,它只能作为一个依赖项添加到package.json或带有符号链接 此外,我还发现可以创建

依赖项:

  • 角度8.1.2
  • 节点v10.16.0
  • NPM 6.10.2
  • Centos 7
我希望能够创建一个集成不同独立模块的角度应用程序。这些模块将出现在私有存储库中。因此,它们将有一个版本,可以添加到package.json中

这些模块将包含测试、组件、模板和服务

根据angular的文档,创建一个库可以实现我的愿望->

但是,只能在Angular应用程序中生成库,我不想这样做。我希望有一个独立的模块,它只能作为一个依赖项添加到package.json或带有符号链接

此外,我还发现可以创建一个完整的angular应用程序并将其导出为存储库。然而,我觉得它有点“沉重”。我只希望能够导出一个包含很少服务或组件的模块。我不需要它是一个完整的角度应用程序

我现在意识到:

  • 在主应用程序中创建名为module-a的库
  • 将模块a库移动到主应用程序外的文件夹中
  • 我用“npm链接”链接此库
  • 我在主应用程序中添加了module-a库和“npm-link-module-a”
  • 然而,这个解决方案是不可行的,因为当我创建一个“ng生成库”时,它与父级有着很强的依赖性。我们不能出口它

  • 我创建了一个包含模块a的完整角度应用程序
  • 我将此角度应用程序链接到“npm链接”
  • 我用“npm链接模块a”在主应用程序中添加了这个角度模块a应用程序
  • 当我尝试将模块a导入主应用程序时,IDE无法识别模块a。此外,我发现这种方法非常繁重,因为module-a是一个完整的angular应用程序,只包含少数组件和服务

    我的主应用程序的JSON包

    {
      "name": "pui",
      "version": "0.0.0",
      "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
      "private": true,
      "dependencies": {
        "@angular/animations": "~8.1.2",
        "@angular/common": "~8.1.2",
        "@angular/compiler": "~8.1.2",
        "@angular/core": "~8.1.2",
        "@angular/forms": "~8.1.2",
        "@angular/platform-browser": "~8.1.2",
        "@angular/platform-browser-dynamic": "~8.1.2",
        "@angular/router": "~8.1.2",
        "rxjs": "~6.4.0",
        "tslib": "^1.9.0",
        "zone.js": "~0.9.1"
      },
      "devDependencies": {
        "@angular-devkit/build-angular": "~0.801.2",
        "@angular/cli": "~8.1.2",
        "@angular/compiler-cli": "~8.1.2",
        "@angular/language-service": "~8.1.2",
        "@types/node": "~8.9.4",
        "@types/jasmine": "~3.3.8",
        "@types/jasminewd2": "~2.0.3",
        "codelyzer": "^5.0.0",
        "jasmine-core": "~3.4.0",
        "jasmine-spec-reporter": "~4.2.1",
        "karma": "~4.1.0",
        "karma-chrome-launcher": "~2.2.0",
        "karma-coverage-istanbul-reporter": "~2.0.1",
        "karma-jasmine": "~2.0.1",
        "karma-jasmine-html-reporter": "^1.4.0",
        "protractor": "~5.4.0",
        "ts-node": "~7.0.0",
        "tslint": "~5.15.0",
        "typescript": "~3.4.3"
      }
    }
    
    

    我希望的结果是能够将模块导出为存储库。此模块必须很轻,并从主angular应用程序继承package.json依赖项。

    如果您想创建独立库,此链接可能会帮助您

    或者,您可以在创建新的angular应用程序时使用此选项:ng new--create application false


    然后您可以使用ng生成库

    如果您想创建一个独立库,此链接可能会对您有所帮助

    或者,您可以在创建新的angular应用程序时使用此选项:ng new--create application false


    然后您可以使用ng生成库

    谢谢!这个选项看起来非常简单。我会用这个:)谢谢!这个选项看起来非常简单。我会用这个:)