在npm读取package.json之后,什么运行Electron?

问题描述 投票:2回答:2

我刚刚开始学习JavaScript,HTML和Electron是如何工作的,我想知道在electron .的“脚本” - >“开始”中运行package.json的原因,因为我不知道是什么做的和那种巫术使我紧张。

根据npm的手册页,npm start所做的是它读取package.json,查看脚本“脚本” - >“开始” - > some_script,然后运行some_script。有时,some_script就像node foobar.js,这对我来说很有意义,因为我可以从命令行运行它。 NodeJS正在执行foobar.js。然而,在electron-api-demos的情况下,some_scriptelectron .

您可以通过下载并运行electron-api-demos

git clone https://github.com/electron/electron-api-demos
cd electron-api-demos/
npm install && npm start

为了试图找出运行electron .的内容,我在node shell中运行它,并且我尝试运行node main.js。我甚至尝试打开node外壳并运行

[email protected] start $DIR/electron-api-demos
electron .

(这正是npm start的输出)。他们都没有工作,因为他们都没有启动Electron应用程序。在这一点上,我非常困惑,确切地说,启动脚本是如何执行的。

所以我想我的问题是:是否存在一个命令(我可以在命令行上使用)来启动这个Electron应用程序,而不使用npm?如果没有,npm呼吁启动这个Electron应用程序是什么?

如果以前曾经问过这个问题我会道歉,但是我发现的所有来源似乎都没有进一步详细说明当npm start运行时它是如何完成的以及它如何执行electron .。感谢您的时间!

javascript node.js npm electron
2个回答
3
投票

使用npm安装的命令行界面放在node_modules/.bin/目录中。您不能只从命令行运行它们,因为该目录不在您的PATH中(除非您将其放在那里,或者您在全局安装它)。

所以,如果你想在没有npm start的情况下运行电子,你可以运行./node_modules/.bin/electron .。由于这有点冗长,较新版本的npm提供命令npx来运行没有./node_modules/.bin/部分的东西,所以npx electron .也有效。

由于npm脚本经常使用您安装的软件包,因此在运行命令之前,它们会自动将node_modules/.bin/添加到PATH。因此,启动脚本可以直接引用电子。

npx也可以做一些其他很酷的事情 - npm有一个关于它的blog post


2
投票

当你运行npm start时,它默认运行命令对应的package.json脚本属性的“start”键就像

"script":{
   "start": "ng serve",
    "launch":"electron main.js" or "electron ."  // main.js located in the same dir
     "test": " ng test" 
 }

当你运行npm run launch时,它将触发与package.json文件的script属性的“launch”键相对应的命令。比如运行电子main.js命令,您的应用程序将启动。

因此,如果您想直接运行您的电子应用程序,如电子main.js,然后使用命令npm install electron -g全局安装电子模块,然后只需运行电子main.js命令,您的应用程序就会启动。

© www.soinside.com 2019 - 2024. All rights reserved.