typescript - Ortak, projeler arası yeniden kullanılabilir bir Angular bileşeni nasıl oluşturulur
Aşağıdaki proje yapısı varsayıldığında:
depo
Proje A
package.json
- @angular/core
- package.json
- @angular/core
Proje B
package.json
- @angular/core
Ortak klasör
package.json
- @angular/core
Her dizin kendi küçük projesidir ve kendi bağımlılıklarını içerir.
Şu anda, normal modül importunu kullanarak Proje A ve Proje B'de buton bileşenini ithal etmeye çalışıyorum. Bununla birlikte, benim importum birkaç adım geri gidiyor ../../../common/button.component
Ortak klasörde bir buton tanımlayabilmek için, orada @angular/core içeren bir node_modules klasörümün olması gerekiyor, aksi takdirde import {Component} from '@angular/core' kullanamam
Şimdi tüm bu kurulum iyi ve işlevsel görünüyor, ancak uygulamalarımdan birini ng serve kullanarak başlattığımda, aşağıdaki sorunla karşılaşıyorum:
HATA ../common/node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11): error TS2451: Blok kapsamlı değişken 'ngDevMode' yeniden bildirilemez. node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11): error TS2451: Blok kapsamlı değişken 'ngDevMode' yeniden bildirilemez.
Eğer ortak modülden @angular/core öğesini çıkarırsam ve tekrar çalıştırmayı denersem, şunu alıyorum :
HATA ../common/components/angular/common.modules.ts(1,30): hata TS2307: '@angular/common' modülü bulunamıyor.
Bu mantıklı oluyor, çünkü node_modules artık ortak projenin bir parçası değil.
Bu sorunun üstesinden nasıl gelineceğini bilmek istiyorum. Muhtemelen @angular/core'u ProjectA veya ProjectB'den ithal edebilirim, ama bu durumda ortak klasör için ProjectA ve B'ye herhangi bir bağımlılık olmaması kuralını ihlal etmiş olurum (Ama ortak projeye bağımlı olmak sorun değil).