【发布时间】:2019-08-02 13:03:25
【问题描述】:
我刚刚开始了解 JavaScript、HTML 和 Electron 是如何工作的,我想知道在 package.json 的“脚本”->“开始”中运行 electron . 的内容,因为我不能不知道是什么,那种魔法让我很紧张。
根据npm 的手册页,npm start 所做的是读取package.json,查看“脚本”->“开始”->some_script 下的脚本,然后运行@ 987654327@。有时,some_script 类似于node foobar.js,这对我来说很有意义,因为我可以从命令行运行它。 NodeJS 正在执行 foobar.js。但是,在electron-api-demos 的情况下,some_script 是electron .
您可以下载并运行electron-api-demos via
git clone https://github.com/electron/electron-api-demos
cd electron-api-demos/
npm install && npm start
为了弄清楚electron . 运行的是什么,我在node shell 中运行了它,并尝试运行node main.js。我什至尝试打开node shell 并运行
electron-api-demos@2.0.2 start $DIR/electron-api-demos
electron .
(这正是npm start 的输出)。他们都没有工作,因为他们都没有启动 Electron 应用程序。在这一点上,我对启动脚本到底是如何执行的感到非常困惑。
所以我想我的问题是:是否存在一个命令(我可以在命令行上使用)来启动这个 Electron 应用程序,而不使用npm?如果没有,npm 调用什么来启动这个 Electron 应用程序?
如果之前有人问过这个问题,我深表歉意,但我发现的所有资料似乎都没有进一步详细说明npm start 运行时究竟做了什么以及它如何执行electron . .感谢您的宝贵时间!
【问题讨论】:
-
它在您的操作系统的外壳(“执行环境”)中运行,可能是 Linux/Mac 中的 bash 以及当今 Windows 中“DOS”所传递的任何内容。如果是前者,请尝试 ./electron 。相反 - 只是“电子”的原因。不起作用与 PATH 环境变量有关,它告诉操作系统在哪里可以找到可执行程序。当 npm run 脚本被执行时,它们假定当前工作目录,但你的 shell 没有。
-
再补充一点,当脚本是“node somescript.js”时,node 是一个在你的 PATH 上的应用程序,因此被找到,并且 - 可能有点违反直觉 - node 知道如何在当前目录中查找要运行的实际脚本。实际上不知道为什么默认情况下当前目录不在 PATH 上,我们都知道它不是;)
-
@Stoffe 感谢您的帮助,但有趣的是,当您下载 git 存储库时,并没有一个名为“electron”的脚本。如果我运行 ./electron 。相反,它只是说找不到任何脚本。
-
是的,忘记了 node_modules/.bin/ 部分的解释,但我看到你已经得到了一些很好的答案!
标签: javascript node.js npm electron