2017-09-13 57 views
0

致力於通過Node-Windows將PKG for Windows作爲服務部署在應用程序中。將Utility應用程序部署爲Windows服務NodeJS

我有我的NodeWindows安裝和卸載腳本,我試圖用PKG將它們製作成Windows可執行文件。 PKG創建.exe文件,但是當我運行該文件,它拋出類似下面的錯誤:

PKG /前奏/ bootstrap.js:1226 回報wrapper.apply(this.exports,參數); ^

ReferenceError: svc is not defined 
    at Object.<anonymous> (C:\snapshot\transient\installTransient2.js:0) 
    at Module._compile (pkg/prelude/bootstrap.js:1226:22) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (pkg/prelude/bootstrap.js:1281:12) 
    at run (bootstrap_node.js:432:7) 
    at startup (bootstrap_node.js:192:9) 
    at bootstrap_node.js:547:3 

與我的節點Windows腳本是這樣的:

var Service = require('node-windows').Service; 

var scv = new Service({ 
    name: 'Transient2', 
    description: 'Yet Another File Transfer Utility in NodeJS', 
    script: 'server.js' 
}); 

svc.on('install',() => { 
    console.log('successfully installed'); 
    svc.start(); 
}); 

svc.install(); 

我想認爲節點窗口中,無法裝入可執行文件。根據PKG的文件,它應該在要求聲明中「填充」任何東西,除非它聲明爲path.join()呼叫。

如何將我的應用程序打包到在Windows中創建服務的安裝程序中?

回答

2

提示出現錯誤 - 您已在Node.js腳本的第3行中聲明變量名'scv'而不是'svc'。

這意味着當您將第9行的'install'事件處理程序添加到'svc'時,它無法找到該變量,因爲它是拼寫錯誤。這就是您收到ReferenceError描述的原因。

+0

呵呵。我需要更好地發現那些 –

相關問題