【发布时间】:2019-01-15 18:12:08
【问题描述】:
我正在开发一个适用于 Windows 的电子测试应用程序。
目标是一个自动启动的应用程序,每次 Windows 用户登录时都会显示一个弹出消息。
场景:
- 我正在执行
npm start来打包我的代码。 (索引.js + 包.json) - 我执行生成的
.exe,它将弹出我的消息。 (到目前为止一切都很好,对吧?) - 我从 Windows 中退出(
CTRL + L ALT + DEL,如果这很重要)并再次登录以测试应用程序。 - 弹出窗口会打开,但默认的电子欢迎页面也会打开。
package.json
{
"name": "test",
"description": "",
"version": "0.0.1",
"main": "index.js",
"scripts": {
"test": "electron .",
"start": "electron-packager . Test --platform=win32 --arch=x64 --overwrite"
},
"author": "",
"license": "MIT",
"build": {
"appId": "com.test.test",
"win": {
"target": "NSIS"
}
},
"dependencies": {
"auto-launch": "^5.0.5"
},
"devDependencies": {
"electron": "latest",
"electron-packager": "^12.1.1"
}
}
index.js
const {app, dialog} = require("electron");
const AutoLaunch = require("auto-launch");
app.on("ready", function(){
dialog.showMessageBox({ message: "We are ready to take off! :-)", buttons: ["OK"] });
let autoLaunch = new AutoLaunch({
name: "test"
// path: app.getPath("exe")
}).isEnabled().then((isEnabled) => {
if (!isEnabled){
autoLaunch.enable();
dialog.showMessageBox({ message: "AutoLaunch enabled.", buttons: ["OK"] });
}
else dialog.showMessageBox({ message: "AutoLaunch already enabled.", buttons: ["OK"] });
});
app.quit();
});
编辑:发现了一个阻止package.json 更新的问题。一个简单的npm info 会导致完全出乎意料的输出。
【问题讨论】:
-
快速查看该包(自动启动),您需要定义一个路径,您已将其注释掉.. 该包所做的只是在各种系统中设置自动启动.. npm start 不会需要建造的工作
-
npm-start 启动打包程序,从而生成完整的 stnadalone。 npmjs.com/package/auto-launch 说:options.path - 字符串(NW.js 和 Electron 应用程序可选)
-
好吧,抱歉错过了你的脚本..(一般 start 不使用,而是 build 是,test 也是 dev 但是嘿..),但其余的就可以了..
-
如果已安装,则为可选..检查源..github.com/Teamwork/node-auto-launch/blob/master/src/…
-
如果我将“开始”更改为“构建”,我会在 cmd 中收到一条错误消息。我现在就去检查。我觉得这条路是必要的,必须是绝对的。
标签: javascript node.js electron electron-packager