2017-11-25 243 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);