2017-11-25 229 views
0

如何設置網絡服務器製作我的電子應用程序,它的負載作出反應的應用程序在8080端口上乳寧的WebPack-dev的服務器上反應應用與節點服務器應用程序的端口9001通信我如何設置網絡服務器生產?我現在正在嘗試通過postinstall腳本單獨安裝節點。因此,電子使用自己的打包版本的節點和webpack-dev-server使用另一個版本的節點,通過腳本安裝。我覺得這不是正確的方法。我如何使用webpack-dev-server的electron的版本節點?是否有可能使它只使用電子和webpack-dev-server的打包節點版本?由於電子與陣營:

回答

0

通過的deb安裝依賴節點的想法是不是由於在Windows安裝後問題好 - 它不是那麼容易寫的依賴安裝在Windows上。相反,我下載了節點二進制文件,並將節點二進制文件打包爲asar包。 我使用的文件選項打包僅適用於平臺的建設二進制運行上:

的package.json:

"build": { 
    "asarUnpack": [ 
     "**/*" 
    ], 
    "files": [ 
     "!binaries", 
     "binaries/${os}/${arch}/node", 
     "src", 
     "*.html", 
     "*.js", 
     "*.tpl", 
     "*.sh", 
     "*.json", 
     "*.md", 
     "*.lock" 
    ], 

感謝asarUnpack選項我拆開包裝ASAR和我能夠訪問節點的二進制文件系統。然後在主進程index.js我構造節點的路徑是這樣的:

const nodePath = path.join(
    process.resourcesPath, 
    "app.asar.unpacked", 
    'binaries', 
    platform == "win32" ? "win" : platform, 
    arch, 
    "node" 
) 

const productionWebpackServerStartPathArgs = [`${process.resourcesPath}/app.asar.unpacked/node_modules/webpack-dev-server/bin/webpack-dev-server.js`, '--config', `${process.resourcesPath}/app.asar.unpacked/webpack.config.js`]; 
let webpack_dev_server_cmd = crossSpawn(nodePath, productionWebpackServerStartPathArgs);