簡體   English   中英

當我在webpack中將別名設置為react-native-electron時,electron-builder install-app-deps嘗試包含react-native

[英]electron-builder install-app-deps tries to include react-native while I have an alias set in webpack to react-native-electron

我如何告訴電子制造商包裝反應本征電子而不是反應本征? 我在electronic-builder文檔中找不到有關別名的任何信息,這也很令人驚訝,因為它不是一個本機模塊,因此它不包含任何.node文件,並且webpack(通過electon-webpack)已經處理了所有打包工作。

這是在Ubuntu上。

使用由electron-webpack管理的webpack服務器(使用electron-webpack dev命令)進行的開發構建可以完美地工作。

如果我嘗試用yarn add react-native構建,但是當我啟動生成的應用程序時,它將打開但不執行任何操作。

我還嘗試了復制react-native-electron文件夾並將其重命名為react-native。 然后它會構建,但是如果我啟動它,它甚至不會打開,但是我確實看到它在系統監視器中沒有任何作用。


當我嘗試不使用react-native的electron-builder install-app-deps ,出現以下錯誤:

Error: Unresolved node modules: react-native
    at /media/dj/dev/scan-app-desktop/node_modules/electron-builder-lib/src/util/packageDependencies.ts:108:17
From previous event:
    at Collector.resolveUnresolvedHoisted (/media/dj/dev/scan-app-desktop/node_modules/electron-builder-lib/src/util/packageDependencies.ts:164:10)
    at /media/dj/dev/scan-app-desktop/node_modules/electron-builder-lib/src/util/packageDependencies.ts:82:18
    at Generator.next (<anonymous>)
    at runCallback (timers.js:763:18)
    at tryOnImmediate (timers.js:734:5)
    at processImmediate (timers.js:716:5)
From previous event:
    at Collector.collect (/media/dj/dev/scan-app-desktop/node_modules/electron-builder-lib/src/util/packageDependencies.ts:84:6)
    at /media/dj/dev/scan-app-desktop/node_modules/electron-builder-lib/out/util/packageDependencies.js:123:47
    at Generator.next (<anonymous>)
(...)

在我的package.json中,我有electronWebpack配置:

      "electronWebpack": {
        "renderer": {
          "webpackConfig": "webpack.renderer.additions.js"
        }
      },

並在webpack.renderer.additions.js中:

const path = require('path')

const resolve = {
  alias: {
    'react-native': path.join(__dirname, 'node_modules/react-native-electron')
  }
}

module.exports = {resolve}

https://github.com/PaulLeCam/react-native-electron/issues/4

似乎devDependencies的定義與我devDependencies的定義有些不同。 在這種情況下,通常只是依賴項的軟件包現在僅由webpack使用,而不由電子構建器使用。 electronic-builder包括依賴關系,但不包括devDependencies。 因此,所有沒有本機組件的js模塊都可以位於devDependencies中,因為由於Webpack已將它們捆綁在一起,因此不必將它們包含在最終的電子版本中。 electronic-builder不會查看webpack的配置,因此它不知道別名,但是事實證明像ract-navigation這樣的軟件包及其子依賴項(例如react-native)無論如何都不應在構建中兩次。

因此,將所有不應單獨包含的內容移至devDependencies,應用將進行編譯。 它由於錯誤而沒有啟動,但這可能是另一個問題

暫無
暫無

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

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