2017-08-21 22 views
0

我正在使用自制組件庫共享我的項目之間的組件。問題是,即使通過webpack使用Authoring libraries指南後它使包括我的主構建這些依賴關係,我的想法是什麼設定,這是由...當他們已經在主供應商文件中時,Webpack保持包含來自依賴關係的node_modules

構建分析引起的(捆綁我的應用程序時, )

在這裏您可以看到node_moduleswizer-components/node_modules。包括react-dom兩次(及其他)

enter image description here

構建分析

(的成分),正如你可以看到沒有node_modules在這裏捆綁...

enter image description here

設置文件

因爲我找不到在哪裏的問題在於我已經創建gists of my config files

  • webpack.config.js
  • webpack.config.production.js(的應用程序)(的組件庫)

設置

就像信息一樣,我正在使用monorepo設置,其中lernanpm link(wizer無需將其推送到npm作爲模塊。這可能是webpack認爲需要重新添加react(和其他人)的問題嗎?

回答

0

經過了4天的試圖做這項工作(之前我問這個問題),我設法解決它(最後)!

問題在於lerna/NPM鏈接和依賴關係解析,請參閱此答案底部的方便鏈接。

我通過執行以下步驟修復它:在wizer-components(我的組件庫)package.json文件

  • 我消除了種種node_modules文件夾

    1. 移動dependenciesreactreact-dom)至peerDependencies(應用程序和組件庫)
    2. 運行$ lerna bootstrap重新下載我的node_modules
    3. 刪除我的組件庫的編譯過程中(我建立這些時,我建我的應用程序)
    4. 更改我的webpack.config.production.js在這些關鍵領域

    (做了一個圖片,因爲它不會對上這裏格式化-_ -

    enter image description here

    幫助鏈接(也看評論):

  • +0

    永遠記住,當js文件的WebPack搜索捆綁,它在默認情況下搜索*所有*文件夾在您的項目,除非你明確告訴它包含或排除某些路徑。隨意將此標記爲已解決。 :) – MForMarlon