gpt4 book ai didi

angular - 如何通过符号链接(symbolic link)或存储库导出和集成独立的 Angular 模块?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:02 26 4
gpt4 key购买 nike

依赖关系:

  • Angular 8.1.2
  • 节点 v10.16.0
  • NPM 6.10.2
  • Centos 7

我希望能够创建一个集成不同独立模块的 Angular 应用程序。这些模块将存在于私有(private)存储库中。因此它们将有一个版本并且可以添加到 package.json 中。

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

根据 angular 的文档,可以通过创建一个库来做我想做的事 -> https://angular.io/guide/creating-libraries

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

另外,我看到可以创建一个完整的 Angular 应用程序并将其导出为存储库。但是,我觉得它有点“重”。我只想导出一个包含很少服务或组件的模块。我不需要它是一个完整的 Angular 应用程序!

这是我暂时意识到的:

  1. 在主 Angular 应用程序中创建一个名为 module-a 的库
  2. 将 module-a 库移动到主 Angular 应用程序之外的文件夹
  3. 我用“npm link”链接这个库
  4. 我使用“npm link module-a”在主应用程序中添加了 module-a 库。

However this solution is not viable because when I make a "ng generate library" there is a strong dependence with the parent. We can not export it.

  1. 我创建了一个包含模块 a 的完整 Angular 应用程序。
  2. 我将此 Angular 应用程序与“npm 链接”链接起来
  3. 我使用“npm link module-a”在主应用程序中添加了这个 angular module-a 应用程序。

当我尝试将模块 a 导入主应用程序时,我的 IDE 无法识别它。此外,我发现这种方法非常繁重,因为 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 依赖项。

最佳答案

如果您想创建一个独立的库,此链接可能会对您有所帮助 https://github.com/angular/angular-cli/issues/10929

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

然后就可以使用ng生成库了

关于angular - 如何通过符号链接(symbolic link)或存储库导出和集成独立的 Angular 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com