2017-02-04 120 views
2

我遇到了在ng2應用程序之間共享模塊的問題。這是一個非常簡單的場景來演示問題。使用角度cli一路:Angular 2 - 在不同的ng2應用程序之間共享模塊

  • 有一個SharedModule應用程序,用ng new SharedModule創建。
  • 有一個MyApp應用程序,使用ng new MyApp創建。
  • SharedModule應用程序中的模塊導出一個自定義組件(我希望在MyApp應用程序中使用該組件)。
  • MyApp中的主模塊從SharedModule應用程序導入模塊。
  • 當試圖與ng serve運行MyApp的,它的衝擊,出現錯誤:

    Error encountered resolving symbol values statically. Calling function 'makeDecorator', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function... error

省略不重要的東西,非常基本的結構是這樣的:

MyApp 
|────angular-cli.json 
|────package.json 
| 
└──src 
    └─app 
    |────app.module.ts 
    |────app-root.component.ts 
    └─ 

SharedModule 
|────angular-cli.json 
|────package.json 
| 
└─src 
    └─app 
    |────app-root.component.ts 
    |────custom-input.component.ts 
    |────shared.module.ts 
    └─ 

這裏的關鍵點MyApp和SharedModule是兩個不同的應用程序。如果我嘗試將MyApp中的共享模塊(和導出的自定義組件)放在一起,那麼它工作得很好。不幸的是,目前這不是一種選擇,我必須將模塊/應用程序分開。從SharedModule創建npm包並將其安裝到MyApp中也不是一種選擇。

我創建了一個github repository來演示這個問題。在MyApp的和SharedModule文件夾

  • 運行npm install: 爲了運行它。
  • 在MyApp文件夾中運行npm start

這裏的百萬美元的問題是我如何使這項工作?謝謝。

回答

3

我想說的問題在於這樣一個事實:角CLI現在使用AoT Compile爲默認值。

既然如此,您導入的SharedModule需要能夠進行靜態分析,以便它可以與MyApp一起構建。

當您使用CLI創建一個應用程序,它不希望你使用它作爲一個共享庫,因此,不包括所需要的文件*.metadata.json的AOT編譯器需要分析它。

我可以進一步解釋,但那裏有關於它的介質,在那裏我瞭解了這個偉大的文章:

Getting your Angular 2 Library ready for AoT

希望它可以幫助你。

編輯:

也有當CLI被更新了遇到這個問題了幾個角2個庫。僅舉幾個問題可以幫助你:

Tag-Input

Clarity

0

將你的SharedApp公開給github然後公開給npmjs。

在MyApp的

,只是npm install --save your/shared-app,然後在MyApp的

使用SharedApp
1

您現在可以在應用程序的角度之間共享的模塊。只要按照this guide on using multiple apps to an angular project,在引導他把兩個應用程序在角cli.json並且可以發佈&爲他們服務seperatly與--app標誌:

ng serve --app 0 
ng build --app 1 

或像這樣:

ng serve --app app1 
ng build --app app2 

我已經自己測試過這個,但是掙扎了一會兒,於是我自己在這裏提出了一個問題:Share a module between multiple angular apps that resides in the same project

+0

請在鏈接中添加上下文,以便您的同伴用戶可以瞭解它是什麼以及它爲什麼在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。 (引自[回覆]) –

+1

對不起,我的壞!我稍微擴展了我的答案。 – JulianSim

相關問題