我刚刚开始学习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_script
是electron .
您可以通过下载并运行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 .
。感谢您的时间!
使用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。
当你运行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命令,您的应用程序就会启动。