如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

electron目标定位是客户端软件,所以,读取程序本身的版本号及名称,这是个刚性需求。除此之外,基于electron的软件作品,也可以读取其内置的nodeelectronchrome的版本号,这些对于程序的辅助debug,也是非常有裨益的。苏南大叔在本文中,主要讲述内容为:如何读取上述内容的版本号。本文涉及的源码的基础代码,来自electronquick-start范例。

读取框架(electronnodechrome)版本号

大家都知道,electron的背后实际上是nodechrome。所以,我们可以需要读取当前electron的版本号,以及nodechrome的版本号。读取的办法也非常简单,我们利用的electronprocess对象里面的versions对象。

在主进程和渲染进程里面,我们都可以访问process.versions,来获得框架版本信息。

console.log(process.versions);

下面的代码段,来自quick-start项目里面的渲染进程代码。

We are using Node.js <script>document.write(process.versions.node)</script>,
Chromium <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.

process.versions里面是很多个组件的版本号合集。大家自己看截图即可。

electron如何读取软件package.json中的名称及版本号 - process
electron如何读取软件package.json中的名称及版本号(图7-1)

读取软件自身的版本信息

智者千虑,必有一疏。上面的process.versions居然没有软件自身的版本号信息,这个可能是令大家大跌眼镜的。我们来看一下,electronnode)如何读取package.json里面的内容。代码非常简单,可以在主进程和渲染进程里面使用。

var package = require("./package.json");
console.log(package);

然后我们就可以顺利的拿到写在package.json里面的nameversion了,甚至是我们自定义的字段diy

var name = package.name;
var version = package.version;
//var diy=package.diy;

下面用截图演示说明代码效果。我们的package.json文件如下图所示:

electron如何读取软件package.json中的名称及版本号 - 007
electron如何读取软件package.json中的名称及版本号(图7-2)

在主进程中,使用范例截图如下:

electron如何读取软件package.json中的名称及版本号 - 008
electron如何读取软件package.json中的名称及版本号(图7-3)

但是在渲染进程里面使用的时候,特别是渲染进程里面有类似jquery之类的js类库加载的时候,这个require方法可能是有问题的。其中之一的方案就是修改require方法名。具体请参照这篇文章:https://newsn.net/say/electron-jquery.html 。在下面的截图中,演示的是上面的代码和jquery同时在渲染进程里面出现的情况,请知晓。

electron如何读取软件package.json中的名称及版本号 - 006
electron如何读取软件package.json中的名称及版本号(图7-4)

electron如何读取软件package.json中的名称及版本号 - 005
electron如何读取软件package.json中的名称及版本号(图7-5)

本方法适用于加载任何json文件,并不单指package.json文件

我们加载一个自定义的文件config.json,并且读出里面的配置项目。

var config = require("./config.json");
console.log(config);

electron如何读取软件package.json中的名称及版本号 - 009
electron如何读取软件package.json中的名称及版本号(图7-6)

额外说明

1:require("./package.json")里面的./,这个值是路径,表示当前同级目录!你懂的。所以,极端情况下,你可以试试path.join。比如:

const path = require('path')
console.log(require(path.join(__dirname, 'package.json')));

2:打包之后,根目录下面没有这个package.json,那是因为放到asar里面去了。对不?你懂的。所以还是能访问到这个文件的。见下图。

electron如何读取软件package.json中的名称及版本号 - package_json
electron如何读取软件package.json中的名称及版本号(图7-7)

结论

苏南大叔说:换个角度考虑问题,往往可以得到一个新的视角和空间,写代码也是这样。package.json并不是个神话级别的文件,其实它就是个普通json文件罢了,无它。您说是不是呢?

更多electron的经验文章,请点击这里查看:https://newsn.net/tag/electron/

 【node】秘籍文章入口,仅传授于有缘之人   node    electron

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!