[英]Nx Module Federation with Angular - No provider for HttpClient
[英]How to host assets with Module Federation on Angular and Nx monorepo
我需要使來自 Angular 遠程應用程序的資產(png、svg 圖像、字體)在 Webpack 模塊聯合會的主機應用程序中也可用。
以下是重現的長步驟 - 如果您知道解決方案,則無需閱讀:)
先決條件:
git clone -c core.symlinks=true https://github.com/Kichrum/module-federation-demo.git
)。npm i && npm start
預期結果:
在 http://localhost:4200(主機)和 http://localhost:4201/(遠程)上,我們有 4 張圖片可見。 構建應用程序時( npm run build
),兩個應用程序都有資產(可以托管在 CDN 上)。
我試過玩 package.json、webpack.config.json - 沒有幫助(也許做錯了什么)。
現在,我有一個解決方案:將所有資產托管在單獨的 CDN 上的某個位置,在源代碼中寫入絕對 URL,但隨后我必須保持 CDN 和代碼同步——這看起來不是一個長期的解決方案。
UPD:避免在 CSS 中使用相對路徑“修復”了問題: url('^assets/img.png')
或url('/assets/img.png')
。 開發和生產構建工作良好,但解決方案並不完美,因為:
/assets
文件夾移動到與apps/
相同的級別修復它;--skip-nx-cache
時我會錯過新資產。這三點都是可控的,但它們是技術債務的“症狀”,所以我希望社區有更好的解決方案,至少沒有符號鏈接。
您可以將資產存儲在登錄應用程序中: apps/login/src/assets
。 然后在儀表板應用程序的project.json中添加以構建配置下一行:
"assets": [
...,
{
"glob": "**/*",
"input": "apps/login/src/assets",
"output": "assets"
}
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.