gpt4 book ai didi

node.js - 如何在启动 node-webkit 之前启动 Meteor 实例?

转载 作者:搜寻专家 更新时间:2023-10-31 23:25:10 26 4
gpt4 key购买 nike

我开发了一个 Meteor应用程序。我想将此应用程序打包到 Chromium 的 node-webkit 应用程序运行时中。我需要 Meteor 服务器进程在本地运行。 当用户启动 node-webkit 应用程序时,我将如何启动 Meteor 服务器进程?

我知道我可以像这样使用 node-webkit 启动 NodeJS 服务器实例:

服务器.js

#!/usr/bin/env node
require('http').createServer(function(req, res) {
res.writeHead(200, {'content-type': 'text/html'});
res.end('<h1>sup</h1>');
}).listen(9000, '127.0.0.1');

然后如果我运行:

$ nw ./

node-webkit 将启动 NodeJS 服务器并启动 node-webkit 实例。我没有在此处包括 package.json 文件,但它基本上只是说看看 http://127.0.0.1:9000

那么,当 node-wekkit 应用程序运行时,我将如何编写 server.js 文件来启动 Meteor 实例?

感谢您的任何想法。

最佳答案

首先捆绑你的 meteor 应用程序 meteor build --directory/your/node-webkit/project/ 并使用此代码启动你的应用程序。但是,用 node-webkit 打包 Meteor 可能有点复杂。首先,您需要在客户端计算机上或客户端可以随时连接的某个地方运行一个 mongodb 服务器。

var path = require('path');
var child_process = require('child_process');

// change these
var PORT = 9000;
var ROOT_URL = 'http://localhost:'+PORT;
var MONGO_URL = 'mongodb://localhost:27017/my_app_db';
var NODE_BIN = '/usr/local/bin/node';

// install npm dependencies
var options = {cwd: path.resolve(__dirname, 'bundle/programs/server/')};
var installNpm = child_process.exec('npm install', options, onNpmInstall);

function onNpmInstall (err, stderr, stdout) {
if(err) throw new Error('could not install npm dependencies');

// start Meteor
var options = {
env: {PORT: PORT, MONGO_URL: MONGO_URL, ROOT_URL: ROOT_URL},
cwd: __dirname
};

var proc = child_process.spawn(NODE_BIN, ['bundle/main.js'], options);
proc.on('close', function (code) {
console.log('Meteor exited with code ' + code);
});
}

如果你想要一个 100% 的客户端应用程序,你必须删除与 mongo 相关的智能包。

关于node.js - 如何在启动 node-webkit 之前启动 Meteor 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24898467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com