簡體   English   中英

創建單獨的npm模塊並在本地使用它們的正確方法是什么

[英]What is the right way to create separate npm modules and use them locally

我創建了一個React Native組件,它位於具有自己的package.json文件的不同文件夾中,我想在另一個項目中使用它

MyComponent位於Workspace/MyComponent並作為package.json的一些依賴項

  "dependencies": {
    "react-navigation": "^1.0.0-beta.11"
  },
  "peerDependencies": {
    "react": "16.0.0-alpha.12",
    "react-native": "0.45.1"
  },
  "devDependencies": {
    "react": "16.0.0-alpha.12",
    "react-native": "0.45.1"
  }

我目前正在開發MyComponent所以我在repo中運行了npm install ,還有一個node_modules文件夾。

我有聯系MyComponentMyApp它位於Workspace/MyApp使用, npm link

雖然,當我運行MyApp並嘗試使用MyComponent ,它會抱怨重復的聲明,因為reactMyComponentMyApp ,並且它們是鏈接的。

如果我從MyComponent刪除node_modules文件夾,則react-navigation抱怨未定義的react

在ReactJS世界中,例如webpack允許使用首選的node_modules文件夾設置root。

module.exports = {
  ...
  resolve: {
    root: path.resolve(__dirname, 'node_modules'),
  }
  ...
}

我希望做類似的事情,所以我沒有重復的模塊,可以在MyApp調試MyComponent而無需為每一次更改重新安裝MyComponent 實現這一目標的最佳方法是什么?

謝謝

如果這最終將放在自己的repo中,然后將像任何其他組件一樣安裝,我可能只是在父項目的node_modules目錄中構建它。 這將阻止您為每一個小變化運行npm install

您還可以聲明對本地文件的依賴關系,然后npm將其安裝在node_modules中

  "dependencies": {
    "my-component": "file:app/components/my-component",
  }

所以我有一個我在我的package.json文件中引用的項目中構建的組件。 當我運行npm install此組件安裝在node_modules文件夾中。 這可能有助於重復的庫聲明,但它不能解決重復使用npm install

更新:我剛剛了解到npm 5沒有將文件復制到node_modules文件夾。 它現在創建一個符號鏈接(基本上是指向真實目錄的虛擬目錄)到項目中的代碼。

這意味着每次更改代碼時都不必運行npm install因此它可能是最適合您的解決方案。

我找到了一個問題的解決方案,它被稱為whackage https://github.com/FormidableLabs/whackage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM