2017-02-14 1 views
1

私のnodejsプロジェクトの実行可能な配布を作成しようとしています。 Tomcatを埋め込んだ実行可能なjarファイルと同様の実行可能ファイルを送信したいと思います。それは、NPMを投げるインストールした後、私はhttps://www.npmjs.com/package/node-compileノードコンパイラの使用方法「ERROR:package.json変数を使用しようとしましたが、セットアップはしません」

Node Compiler is a command-line utility that compiles your Node.js application into a single executable file. 

を読んで、私が試した:

nodejs my-project-nodejs # node-compiler server.js 
....> ERROR: trying to use package.json variables, but not setup to do so! 

ので、私のストレート質問は:私は私のpackage.jsonで行方不明です何?

さらに、私はMongoDbを使用しています。もし私のcostumerをダウンロードして、実行可能なnodejsプロジェクトをMongoDbが実行していなければ、私は問題に直面しないだろうと私は信じています。私が使用しようとしていますので、

but by using default nexe, we could not easily produce a working binary which with with monogoose + express.js 

は、私の知る限り理解されるように、私はMongoDBのに問題に直面することはありません代わりに、純粋なnexeのノードをコンパイル:私は同じURLで読むので、私はそれをcomentingています。

server.js

// Load required packages 
var express = require('express'); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 
var ejs = require('ejs'); 
var session = require('express-session'); 
var passport = require('passport'); 
var userController = require('./controllers/user'); 
var authController = require('./controllers/auth'); 
var oauth2Controller = require('./controllers/oauth2'); 
var clientController = require('./controllers/client'); 

var cartaoController = require('./controllers/cartao'); 


mongoose.connect('mongodb://localhost:27017/my-db'); 

// Create our Express application 
var app = express(); 

// Set view engine to ejs 
app.set('view engine', 'ejs'); 

// Use the body-parser package in our application 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ 
    extended: true 
})); 

// Use express session support since OAuth2orize requires it 
app.use(session({ 
    secret: 'Super Secret Session Key', 
    saveUninitialized: true, 
    resave: true 
})); 

// Use the passport package in our application 
app.use(passport.initialize()); 

// Create our Express router 
var router = express.Router(); 

router.route('/cartoes') 
.post(cartaoController.postCartoes); 
// .post(authController.isAuthenticated, cartaoController.postCartoes); 

router.route('/users') 
    .post(userController.postUsers) 
    .get(authController.isAuthenticated, userController.getUsers); 

router.route('/clients') 
    .post(authController.isAuthenticated, clientController.postClients) 
    .get(authController.isAuthenticated, clientController.getClients); 

router.route('/oauth2/authorize') 
    .get(authController.isAuthenticated, oauth2Controller.authorization) 
    .post(authController.isAuthenticated, oauth2Controller.decision); 

router.route('/oauth2/token') 
    .post(authController.isClientAuthenticated, oauth2Controller.token); 

app.use('/api', router); 

app.listen(3000); 

nexeで私のアプリをバンドルしようとしたときのモデルの

{ 
    "name": "my-app-dmz", 
    "main": "server.js", 
    "dependencies": { 
    "bcrypt-nodejs": "0.0.3", 
    "body-parser": "^1.0.2", 
    "ejs": "^1.0.0", 
    "express": "^4.1.1", 
    "express-session": "^1.6.1", 
    "mongoose": "^3.8.8", 
    "node-rest-client": "^2.5.0", 
    "oauth2orize": "^1.0.1", 
    "passport": "^0.2.0", 
    "passport-http": "^0.2.2", 
    "passport-http-bearer": "^1.0.1", 
    "reqclient": "^2.1.0" 
    } 
} 
// Load required packages 
var mongoose = require('mongoose'); 

// Define our client schema 
var ClientSchema = new mongoose.Schema({ 
    name: { type: String, unique: true, required: true }, 
    id: { type: String, required: true }, 
    secret: { type: String, required: true }, 
    userId: { type: String, required: true } 
}); 

// Export the Mongoose model 
module.exports = mongoose.model('Client', ClientSchema); 
+0

を、私はまだこの質問への答えを慎重に探しています:nexeドキュメントが示唆するよう

これを解決する

は、私は単に、私のpackage.jsonファイルで"nexe"エントリを追加する必要がありました。 – DemeCarvO

答えて

1

package.jsonちょうど同じ警告を得ました。 https://github.com/nexe/nexe/tree/V1-EOL#packagejson-inclusion

"nexe": { 
    "input": "./bin/nexe", 
    "output": "nexe^$", 
    "temp": "src", 
    "browserify": { 
     "requires": [], 
     "excludes": [], 
     "paths": [] 
    }, 
    "runtime": { 
     "framework": "node", 
     "version": "5.6.0", 
     "js-flags": "--use_strict", 
     "ignoreFlags": true 
    } 
} 
+0

私はリンクターゲットがもう存在しないと思うが、まだここに見つけることができる: https://www.npmjs.com/package/nexe#packagejson-inclusion –

+0

@ Xan-Kun Clark-Davisそれを指摘してくれてありがとう。 nexe v1のドキュメントへのリンクを更新しました。 – TGrif

関連する問題