2016-02-29 26 views
1

我使用Electron基于现有代码(使用Electron v0.26.1开发)构建原生应用程序。我想使用更新版本的Electron上提供的功能,所以我将package.json中的版本号更改为v0.36.9(迄今为止最新的版本),并重新安装了它的依赖项。现在电子应用程序的基本调试

,我完全运行npm start时,实际上它的预期的一个应用突破,但没想到该错误信息是如此无信息:

Error opening app 
The app provided is not a valid Electron app, please read the docs on how to write one: 
https://github.com/atom/electron/tree/v0.36.9/docs 

Error: Cannot find module '/home/user/electron/myapp/build' 

我想它是否会升值说为什么它不再是一个有效的电子应用程序,给任何形式的堆栈跟踪或文件导致问题。

运行npm start确实创建了一个像以前一样的build目录,其中包含几个文件,就像升级之前一样。从措辞的方式,我不知道Cannot find module消息是原因的错误,或后果。如果是这个原因,我不知道是谁或者什么需要这样的模块,因为在升级之前这从来没有发生过。

我尝试“标准”的调试技术,就像跑npm start --debug(标志存在,但没有用在这种情况下),npm rebuild,阅读电子常见问题解答,寻找任何*.log文件(被发现无),并期待出现require('build')或类似情况(没有这种情况)。没什么帮助。

我怎么能得到任何有关为什么这是失败的信息?我所知道的每一种编程语言/编译系统都至少会输出发生错误的源文件以及可能的更多信息。

+0

尝试'npm重建'。新版本可能正在运行不同版本的节点,并且必须重新编译所有本地依赖项。我可以同情缺乏信息错误信息。 – ccnokes

+0

我忘了提及我已经尝试过'npm rebuild',甚至擦除'build'目录并重新开始,仍然是同样的错误。 – anol

+0

这是我最好的猜测。它在构建文件夹中寻找东西的事实对我来说似乎很陌生。 – ccnokes

回答

1

在你的应用程序的package.json有可能是这样的:

"scripts": { 
    "start": "electron /home/user/electron/myapp/build" 
} 

这就是当你运行npm start将要执行的命令,所以固定在那里的路径指向.js文件,其中包含您的应用程序入口点。

+0

这个问题实际上与您的建议无关,但确实在'package.json'中,所以建议仔细查看该文件。我仍然在寻找关于如何调试它的一般信息。 – anol

0

好了,在这里和那里平分的变化,并按照瓦迪姆Macagon的意见,进一步考虑package.json后,我发现了以下变化负责的彻底失败:

  • 更改"fs-jetpack": "^0.6.4""fs-jetpack": "^0.7.1"

现在,不幸的是我还根本不知道有关为什么发生这种情况,或如何我本来可能发现它除了在这里和那里盲目改变设置。

这不是我的问题的答案(我仍然喜欢有关如何调试Electron应用程序以避免将来出现类似问题的有用信息),但它确实可以让我继续工作。也就是说,如果我决定继续使用Electron,我不确定这是个好主意。

编辑:在Github上至少有一个related issue,但它已关闭,问题尚未解决。