Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
August 14, 2021 07:57 pm GMT

Guide to NW.js versions

This list is sorted by version number, not recommendation. The TLDR is, use the latest unless you have a good reason not to, then use one of the other versions detailed here.

Remember, any time you pick an NW.js version to use, make sure your globally installed version of Node matches what is built in to NW.js. You can easily switch Node versions with one of these tools:

TLDR Table of Contents

VersionShould you use
0.12.3No. Too old, API out of date.
0.13.0No. Newer versions offer all the same stuff
0.14.7Only if you need to support legacy OS's, use newer version for newer OSs
0.33.4Only if you need to do Tray app development on Win 7
0.34.0No. Introduces Tray app bug that is fixed in 0.48.0
0.39.2Only if you need Node-GYP/NW-GYP
0.42.4No. Newer versions off all the same stuff
0.45.3Only if you need to do your app development on Windows 7
LatestYes, use this, unless you need one of the above features

0.12.3 - 2015-08-01

Chromium: 41.0
Node: IO.js v1.2.0

This was the last version to use the original architecture. It is no longer recommended by anyone as it's API is just different enough to not be worth it (would be harder to upgrade). However it does have a slightly different approach to handling the window and loading the page. If using "main": "index.html" the URL will actually be the file:// filepath, rather than a chromium-extension URL like on newer NW.js versions. It also has an optional toolbar built in and does not ship without devTools. The old wiki on GitHub acted as the source of documentation for this version. This version shipped with a then compatible Mac App Store version (MAS) and a "normal" which came with dev tools built in but only accessible by the optional toolbar or programmatically (not by keyboard shortcut unless you set that up yourself). This has the smallest footprint of file size/dist/memory/cpu of any NW.js version. It is possible to create an installable executable that is less than 20MB in size on Windows (though expands to ~65-70MB on install).

Should you use this: No, API too different from modern NW.js. It's based on a very old version of Chromium and IO.js (~Node v1), meaning you need to write your code in a pretty outdated manner. No security updates.

0.13.0 - 2016-03-23

Chromium: 49.0
Node: 5.9.0

This was the first stable release of the newer Architecture. It had a newer API that has remained almost completely unchanged since it's release. This also spawned the newer website and documentation site focused on 0.13+.

Should I use this: No, everything this version offers is better handled in newer versions.

0.14.7 - 2016-07-22

Chromium: 50.0
Node: 5.11.1

This is the "Long Term Support" (LTS) version of NW.js. It supports Window XP+ and OSX 10.6+. And as far back as Ubuntu 10 (maybe 8, I don't quite remember). This is the officially recommended version for legacy OS's.

Officially Chromium 50 dropped support for XP, Vista, OS X 10.6, 10.7, and 10.8. Not sure why the LTS version uses Chromium 50 and not 49.

Should you use this: Only if need need to support older OS's. It will have a much smaller file size compare to newer NW.js versions because Chromium and Node have just gotten much bigger since this release. So some may use this if they value smaller dist sizes as well. Though it is recommended that you only use this version for legacy OS's, and that you also build using newer NW.js versions for newer OS's so those users get all the security patches that come with the latest NW.js versions. Because this uses older Chromium/Node, it has fewer of the modern development/language features you may be used to.

0.33.4 and below - 2018-09-25

0.48.0 and above - 2020-08-27

Chromium: 69.0 and below or 85.0 and above
Node: 10.11.0 and below or 14.8.0 and above

There was a bug introduced in NW.js 0.34.0-beta that was fixed in 0.48.0. This bug only occurs on tray apps. To avoid this bug use either NW.js 0.33.4 and below or 0.48.0 and above.

  • Github Issue for the bug: #6859).

Should you use this: No. Since this bug is no longer in the latest version, use the latest.

0.39.2 - 2019-06-27

Chromium: 75.0
Node: 12.4.0

Node.js uses Python to help build native bound code for some node modules via a tool called Node-GYP. NW.js created a similar tool based on Node-GYP to do the same thing, but for NW.js called NW-GYP. They were both built on Python 2. Over several years, Node-GYP transitioned to Python 3. This was a very difficult and long process that came after years of people requesting it. It took a lot of people to make this conversion.

  • 2019 - Node-gyp 5.x started adopting Python 3
  • 2020 - Node-gyp 6.x started to work with Python 3
  • 2020 - Node-gyp 7.x works with Python 3
  • 2021 - Node-gyp 8.x removes all Python 2 support, only supports Python 3
  • Source: Node-gyp changelog

Unfortunately, NW.js is a far far smaller project than Node.js, so getting community support to convert NW-GYP over, could be a long way off. Though fortunately it won't be as monumental of an effort as it was for Node-GYP, since NW-GYP is based on Node-GYP but with some tweaks. Perhaps you'll be the one to help update it to Python 3.

But for now, NW-GYP still requires Python 2. This means that newer versions of Node and node_modules that require native builds may not work with newer versions NW.js.

Node-gyp 5 started Python 3 adoption on 2019-06-13, so the latest node/npm before that would be Node 12.4.0 (2019-06-04) and npm 6.9.0. The version of NW.js that ships with Node 12.4.0 is v0.39.2.

Should you use this: Only if you need NW-GYP/Node-GYP support. Make sure to set your global Node version to 12.4.0 too.

0.42.4 - 2019-11-13

Chromium: 78.0
Node: 13.1.0

This was the first version of NW.js to ship with the NW2 rewrite turned on by default. This rewrite allows for deeper access into the Chromium UI. This is an under-the-hood architectural changed that did not effect the API, but did allow for NW.js to fix some existing bugs and could unlock new features in the future.

Should you use this: Neh, just noting the historical importance, use latest version instead.

0.45.3 - 2020-04-19

Chromium: 81.0
Node: 13.13.0

Node.js 13 was the last version to officially support Windows 7. So if you are doing development on a Win7 PC, you may experience issues with newer versions of Node globally installed. So to ease development, you'll want to use Node 13 and a version of NW.js that also has Node 13 Built in. NW.js 0.45.3 was the last version to support Node 13.

Chromium will still support Windows 7 until 2022 though.

Should you use this: Only if you need to develop the app on a Windows 7 machine. If you are on a newer version of Windows or a non-windows machine, use a newer version of NW.js.

Latest Stable NW.js Release

Chromium: Latest
Node: Latest

You can see what the latest version is on the website or in this JSON file:

Sometimes there are beta or RC versions available if you want to test your app in them before the stable version is released. In general the minor bumps in the version number relate to a new version of chromium. So 0.53.x will all use Chromium 90, 0.54.x will all use 91, 0.55.x will all use 92, etc. Then the patch bumps 0.x.0, 0.x.1, 0.x.2, etc, will relate to Node updates or NW.js fixes.

Should you use this: Yes. The latest version should be your default choice. It has all the latest language and tooling features, along with all the latest bug fixes and Security patches. The only reason you should deviate from this version is if you need to support legacy OS's (0.14.7) or there is a bug present in the latest version that was not present in a past version.

nature photo


Original Link: https://dev.to/thejaredwilcurt/guide-to-nw-js-versions-5d38

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To