Pracuję nad biblioteką Angular, którą dostosowuję do kompilacji AOT. Mam go uruchomionego za pomocą kilku zadań do dudnienia około ngc
, ale wolałbym użyć @ngtools/webpack
, ponieważ pozwala mi to bardziej prostą metodę użycia SASS i PUG dla moich stylów i szablonów. Nie mogę jednak znaleźć sposobu na usunięcie plików deklaracji lub metadanych ze swojego wirtualnego systemu plików. Czy istnieje sposób na wyemitowanie tych plików?Czy mogę wysyłać pliki metadanych typowania/deklaracji (.d.ts) i metadanych dekoratora (.metadata.json) za pomocą @ ngtools/webpack?
Odpowiedz
Dla declarations
trzeba zmienić const lambda => funkcja eksportu.
To
const declarations =() => [
Component
];
do
export function declarations() {
return [
Components
];
}
następnie zastąpić tsc
w skrypty rozdział w swojej package.json z ngc
.
Teraz od (this comment on github)
Wszystkie użyte biblioteki musi zawierać plik .metadata.json wzdłuż boku żadnych plików .d.ts oni produkują w przeciwnym razie nie będzie działać poprawnie z NGC. Plik .metadata.json zawiera informacje, których potrzebujemy w oryginalnym pliku .ts, ale nie został uwzględniony w pliku .d.ts. Jeśli nie mamy tych informacji, nie możemy wygenerować fabryk dla biblioteki.
Więc upewnij się, że _ .metadata.json pliki są obok ich związanych
*.d.ts
plików.Ponieważ używasz WebPacka, najpierw musisz użyć
ngc
, a następnie WebPacka na skompilowanym kodzie.
Źródła
1. Making your Angular 2 library statically analyzable for AoT
2. Getting your Angular 2 library ready for AoT
Racja, już mogę to zrobić. Pytanie dotyczyło użycia @ ngtools/webpack, co pozwoliłoby mi wykorzystać wszystkie zalety korzystania z pakietu internetowego. –
Natknąłem się kilka artykułów, które mogą pomóc: [to] (http://blog.mgechev.com/2017/ 01/21/rozpowszechnianie-an-kąt-biblioteka-aot-ngc-typy /) i & [to] (https://medium.com/@isaacplmann/getting-your-angular-2-library-ready-for-aot -90d1347bcad). > Cytowanie z jednego z artykułów "Domyślnie ngc generuje ngfactories dla komponentów i modułów. Za pomocą flagi skipTemplateCodegen możemy pominąć to i otrzymujemy tylko pliki * .metadata.json." –