使用PKG for Windows作为服务通过Node-Windows部署应用程序。
我有我的NodeWindows安装和卸载脚本,我正在尝试使用PKG将它们变成Windows可执行文件。 PKG创建.exe
文件,但是当我运行该文件时,它会抛出如下错误:
PKG /前奏/ bootstrap.js:1226 return wrapper.apply(this.exports,args); ^
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
使用我的Node-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的文档,它应该在require语句中的任何内容中“填充”,除非它是通过path.join()
调用声明的。
如何在Windows中创建服务的安装程序中打包我的应用程序?
答案 0 :(得分:2)
提示是错误的 - 你已经在Node.js脚本中的第3行声明了变量名'scv'而不是'svc'。
这意味着当您将第9行的'install'事件处理程序添加到'svc'时,它找不到该变量,因为它是拼写错误。这就是您收到所描述的ReferenceError的原因。