2016-12-31 4 views
8

Я использую простой пример стартового углового кли, который находится на угловом кли-сайте. Я создал службу OUTSIDE в папке приложения и включил ее в модуль приложения в провайдерах ..etc. Не спрашивайте меня, почему. Просто представьте себе свою услугу, которую я создаю, и я планирую поделиться между разными угловыми проектами. Теперь ng служит, но ng служит - aot breaks build. Вот ошибка, которую я получаю. Есть идеи, как это исправить? Благодаряangular cli Ошибка компиляции AOT

Вот ссылка на мою структуру проекта

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

нг служить - АОТ ошибки ниже:

ОШИБКА в Обнаружена ошибке разрешения значения символов статический. Функция вызова 'makeDecorator', вызовы функций не поддерживаются. Рассмотрим rep , связав функцию или лямбда со ссылкой на экспортированную функцию, разрешающий символ Инъецируемый в C:/ANGULAR PROJECTS/testNgCLI/node_modul es/@angular/core/src/di/metadata.d.ts, разрешающий символ OpaqueToken в C:/ANGULAR PROJECTS/testNgCLI/node_modules/@ angular/core/src/di/opaque_t oken.d.ts, разрешающий символ OpaqueToken in C:/ANGULAR PROJECTS/testNgCLI/node_modules/@ angular/core/src/di /opaque_token.d.ts

CLI версия: угловой кли: 1.0.0-beta.24 узел: 7.3.0 ОС: win32 x64

ответ

-2

Все код ш ould находиться внутри одной папки app, чтобы следовать Angular 2 StyleGuide. Кроме того, я видел вашу проблему в AngularCLI. CLI строго следует руководству по стилю, поэтому проблема, вероятно, будет закрыта.

Внутри папки app вы могли бы создать что-то вроде этого:

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 

Я хотел бы предложить вам не назвать вещи app1 или app2 потому что это просто плохая практика, что-то более описательный как admin или user, например, , будет легче ориентироваться при исправлении ошибки.

Надеюсь, это достаточно ясно. Если нет, я могу попытаться объяснить лучше.

+0

Tx для replyng. Я назвал их таковыми (app1,2.), Чтобы дать понять вам, что я не хотел этого делать. Я не думаю, что вышеуказанная структура, которую вы предложили, будет работать для случая, когда я хочу сохранить одну копию моего глобального модуля, который я хочу разделить bw diff projs.Proj здесь, похоже на папку корневого приложения (ов) в вашем pic, выше которого будут свои собственные файлы ang cli.json. Canyou расскажите мне, почему cli выбрасывает ошибку в AOT? Или есть ли какой-либо другой способ, которым я мог бы достичь того, что я хочу. Мое требование заключается в том, чтобы создать более 1 копию глобального Mod на моей машине, чтобы я мог делиться между приложениями – MohanB

1

Я думаю, что проблема связана с кодом, который находится внутри службы. Это случилось со мной тоже, и ошибка была та же:

Вызов функции , вызовы функций «makeDecorator» не поддерживаются. Рассмотрим респ шнуровка функцию или лямбда со ссылкой на экспортируемой функции

Вы используете некоторые анонимную функцию под названием makeDecorator. Чтобы код был готов для AoT, вам нужно переместить его, чтобы разделить функцию и экспортировать его (также это должно быть классическое function, а не => lamda).

Вы должны иметь что-то вроде этого:

export function makeDecorator() { 
    // implementation... 
} 
Смежные вопросы