【问题标题】:How can I start a Meteor instance before launching a node-webkit?如何在启动 node-webkit 之前启动 Meteor 实例?
【发布时间】:2014-09-13 22:16:30
【问题描述】:

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

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

server.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 实例?

感谢您的任何想法。

【问题讨论】:

    标签: node.js meteor node-webkit


    【解决方案1】:

    首先捆绑您的流星应用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 相关的智能包。

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 2022-06-18
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多