2017-03-07 89 views
0

首先,我不知道我遇到的問題是由於webpack或電子構建器還是組合。使用電子構建器和webpack在main.js中使用節點模塊

問題所在。 當我爲開發構建時,我可以在我的package.json文件{"main" : "app/main.js"}中指定的main.js文件中使用已安裝的節點模塊。

但是,當我用電子生成器來創建一個安裝程序。當我使用安裝程序安裝應用程序時,啓動應用程序時出現以下錯誤消息: Error Message 我的猜測是我收到此消息是因爲所需的節點模塊無法通過main.js找到。那麼如何讓它們可用?

我希望有一個人比我聰明我們只是更好地使用Google :)

Package.js:

{ 
 
    "main": "app/main.js", 
 
    "scripts": { 
 
    "hot-server": "node hot-server.js", 
 
    "build-bundle": "rimraf app/dist.release && better-npm-run build-bundle", 
 
    "start": "better-npm-run start", 
 
    "start-hot": "better-npm-run start-hot", 
 
    "backend": "node backend-dummy.js", 
 
    "dist-win": "npm run build-bundle && rimraf dist && build --win --ia32", 
 
    "dist-mac": "npm run build-bundle && rimraf dist && build --mac" 
 
    }, 
 
    "betterScripts": { 
 
    "start": { 
 
     "command": "electron ./", 
 
     "env": { 
 
     "NODE_ENV": "production" 
 
     } 
 
    }, 
 
    "start-hot": { 
 
     "command": "electron ./", 
 
     "env": { 
 
     "HOT": 1, 
 
     "NODE_ENV": "development" 
 
     } 
 
    }, 
 
    "build-bundle": { 
 
     "command": "webpack --config webpack.config.production.js --progress --profile --colors", 
 
     "env": { 
 
     "NODE_ENV": "production" 
 
     } 
 
    } 
 
    }, 
 
    "bin": { 
 
    "electron": "./node_modules/.bin/electron" 
 
    }, 
 
    "build": { 
 
    "appId": "app", 
 
    "files": [ 
 
     "dist.release/*", 
 
     "dist.resources/*", 
 
     "main.js", 
 
     "thirdparty/*", 
 
     "app.html" 
 
    ], 
 
    "extraFiles": [ 
 
     "lang/*", 
 
     { 
 
     "from": "build/extra", 
 
     "to": "./", 
 
     "filter": "**/*" 
 
     } 
 
    ], 
 
    "asar": true 
 
    }

+0

您是否在使用Electron-packager?另外,你的package.json的devDependencies部分是否有電子日誌? –

+0

不,我不使用Electron-packager。我有依賴關係中的電子日誌和電子更新器。 –

+0

經過多一點挖掘後,我認爲它與我所有的節點模塊使用browserify進行打包並隱藏在該捆綁包中有關。所以我想我有兩個選擇可以在我的包之外添加所需的節點模塊,或者在我的包中訪問它們。 –

回答

0

於是我找到了解決我的問題。我所做的是我看着這個項目: https://github.com/chentsulin/electron-react-boilerplate

當不得不軟件包用於main.development.js所有node_modules特殊webpack.config.electron.js文件文件轉換成一個包含main.js文件我們需要的一切。然後當電子程序啓動時,它使用這個main.js包運行。要做到這一點,您需要在執行webpack.config.electron.js的package.json文件中添加一個構建腳本。

我認爲通過查看鏈接項目比解釋更容易理解如何解決它。