2016-12-31 36 views
8

Używam przykładowego przykładowego cli początkowego, który znajduje się na kanciastym miejscu cli. Stworzyłem usługę POZA folderem aplikacji i umieściłem go w module aplikacji w dostawcy ..etc. Nie pytaj mnie, dlaczego ... Tylko wyobraź sobie, że to usługa, którą tworzę, że planuję dzielić się między różnymi projektami kątowymi. Teraz działaj, ale działaj - zrób przerwę w kompilacji. Oto błąd, który otrzymuję. Wszelkie pomysły, jak to naprawić? Dziękikątowe cli Błąd kompilacji AOT

Oto link do mojego struktury projektu

https://s3.amazonaws.com/uploads.hipchat.com/20493/94971/eVkgsEDXM8Kfzs1/upload.png

ng służyć - Na wyposażeniu m.in błąd poniżej:

błąd w rozwiązywaniu napotkanych błędów wartości symboli statycznie. Funkcja wywołująca "makeDecorator", wywołania funkcji nie są obsługiwane. Rozważ rep sznurowanie funkcji lub lambda z odwołaniem do wyeksportowanej funkcji, rozpoznawanie symbolu Injectable w C:/ANGULAR PROJECTS/testNgCLI/node_modul es/@angular/core/src/di/metadata.d.ts, rozdzielanie symbolu OpaqueToken w C:/ANGULAR PROJECTS/testNgCLI/node_modules/@ angle/core/src/di/opaque_t oken.d.ts, rozdzielenie symbolu OpaqueToken w C:/ANGULAR PROJECTS/testNgCLI/node_modules/@ angle/core/src/di /opaque_token.d.ts

CLI wersja: kątowe-cli: 1.0.0-beta.24 węzeł: 7.3.0 OS: Win32 x64

Odpowiedz

-2

Wszystko kod sh powinien znajdować się w jednym folderze app, aby śledzić Angular 2 StyleGuide. Ponadto widziałem Twój problem w AngularCLI. CLI ściśle przestrzega Przewodnika po stylach, więc problem prawdopodobnie zostanie zamknięty.

Wewnątrz folderu app można stworzyć coś takiego:

app/ 
| 
+-- shared/ 
    | 
    +-- utils/ 
     | 
     + -- file.service.ts 
    +-- shared.module.ts // this will be the module that declares and exports shared files 
+-- app1/ 
    | 
    +-- app1.module.ts // declare and export app1 stuff 
+-- app2/ 
    | 
    +-- app2.module.ts // declare and export app2 stuff 
+-- app.module.ts // import app1, app2, and shared 

Proponuję nie nazwać rzeczy app1 lub app2 bo to po prostu złe praktyki, coś więcej wyjaśniający jak admin lub user, na przykład , łatwiej będzie nawigować, gdy trzeba naprawić błąd.

Mam nadzieję, że to wystarczająco jasne. Jeśli nie, mogę spróbować wyjaśnić lepiej.

+0

Tx dla replyng. Nazwałam je jako takie (app1,2.), Aby wyjaśnić ci, bez zbytniego rozeznawania tego, co chciałem. Nie sądzę, aby powyższa struktura, którą zasugerowałeś, zadziała w przypadku, w którym chcę zachować pojedynczą kopię mojego globalnego modułu, który chcę udostępnić bw diff proj. Trojany tutaj są podobne do folderów aplikacji root w twoim pic powyżej, który będzie miał własne pliki ang cli.json. Canyou powiedz mi, dlaczego cli zgłasza błąd w AOT? Lub czy istnieje jakikolwiek inny sposób, w jaki mogę osiągnąć to, czego chcę. Nie jestem w stanie stworzyć więcej niż 1 kopię globalnego Moda na moim komputerze, dzięki czemu mogę dzielić się aplikacjami – MohanB

1

Myślę, że problem dotyczy kodu znajdującego się w serwisie. Stało się to dla mnie zbyt, a błąd był taki sam: Funkcja

Wywołanie, wywołania funkcji „makeDecorator” nie są obsługiwane. Rozważmy rep sznurowanie funkcję lub lambda z odniesieniem do eksportowanych funkcji

Używasz jakąś anonimową funkcję o nazwie makeDecorator. Aby kod był gotowy do AoT, musisz przenieść to do oddzielnej funkcji i wyeksportować (również musi to być klasyczna function, a nie => lamda).

Trzeba mieć coś takiego:

export function makeDecorator() { 
    // implementation... 
}