Skip to content

Releases: Lombiq/NodeJs-Extensions

v3.0.0

25 Oct 00:20
c61f925

Choose a tag to compare

Note that this release will be the last one of the project. It will keep working for the foreseeable future, but won't receive any updates besides security fixes. On why we moved away from Node.js-using builds and how, see our "Step away from that Node.js" blog post. Scroll down for our recommended migration guide.

This release brings a host of dependency updates to keep up with the ecosystem, which unfortunately also cause breaking changes.

Breaking changes

Recommended Node.js version is now 24

Node.js v24 will enter active long-term support (LTS) phase within days, after which it will be supported until about April 2028. While you can use Node.js Extensions with earlier version (and notably v22, perhaps v20 should just work), we now recommend you use v24.

Breaking changes in linters and SASS

In the #144 pull request we updated all the NPM dependencies. This means, among others, that ESLint was updated from 8.47.0 to 9.37.0, PostCSS from 8.4.31 to 8.5.6, Prettier from 3.0.3 to 3.6.2, and SASS from 1.69.5 to 1.93.2.

While we tried to keep impact to projects consuming Node.js Extensions to a minimum as far as NE itself goes, since many of these are breaking releases, you need to expect at least a lot of new linter violations and SASS deprecations. See e.g. Lombiq/Orchard-Base-Theme#152 for the kinds of changes you may need to do in your own projects.

ESLint uses a new config file format. While we added support for this in a backward-compatible way, so your current config files will continue to work, note that a new, eslint.config.cjs file will be automatically created. You can remove this if not needed, or if you use just the default .eslintrc.js file (the old format) then remove the latter.

Upgrade PNPM from 8.15.9 to 9.15.9

Node.js Extensions used the old 8.x version of PNPM, so now we upgraded to 9.x. The only impact consuming projects may feel is the format of pnpm-lock.yaml files changing and packageManager being updated in their package.json files. This is automatic, however, and you shouldn't notice anything part from these files getting updated the first time you install Node.js Extensions v3.

As you may know, the current version of PNPM is 10.x. We choose not to upgrade to it, since it contains a lot of breaking changes that also severely impact all consuming projects. We don't see us upgrading to 10.x in the foreseeable future.

Migrating away from Node.js Extensions and Node builds

With modern browsers, CSS, and JS, for a lot of apps you don't actually need a client-side asset build pipeline at all. In our experience, this is the case at least. Here's how you can move your project to a no-build approach, without Node.js Extensions, or using Node.js at all:

  1. Migrate all SCSS to CSS. Be sure to fully utilize what modern CSS is capable of, which is most of what SCSS covers minus mixins. Put CSS files into the wwwroot folders directly.
  2. Move all JS files to the wwwroot folders. No need to copy them from an Assets folder.
  3. Use Microsoft Library Manager instead of NPM for third-party packages and remove any remaining Node references. You can see an example of us doing that here: https://github.com/Lombiq/Orchard-Chart.js/pull/103/files.
  4. Re-add CSS, JS, and MD linting with our Asset Linting GitHub Actions workflow. This uses the exact same default configuration as NE, and you also have the option to override those, similarly to NE.

Enjoy your builds now being a lot faster, and your development story being much simpler!

What's Changed

New Contributors

Full Changelog: v2.2.0...v3.0.0

v2.2.0

15 May 16:55

Choose a tag to compare

What's Changed

Full Changelog: v2.1.3...v2.2.0

v2.1.3

19 Apr 17:53
37b12d2

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.1.1...v2.1.3

v2.1.2

02 Feb 22:15
7000866

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.1.1...v2.1.2

v2.1.1

05 Jun 17:34
e53b167

Choose a tag to compare

What's Changed

Full Changelog: v2.1.0...v2.1.1

v2.1.0

21 Feb 22:23
fd109c5

Choose a tag to compare

What's Changed

Full Changelog: v2.0.0...v2.1.0

v2.0.0

21 Feb 17:16
6ee339a

Choose a tag to compare

Breaking Changes

Stylelint was upgraded to 15, which deprecates 76 linting rules, see the issue #70 and the pull request #85. This required us to reimplement those rules with Prettier. If you want to keep using all SCSS linting rules, then follow the new Prettier setup: https://github.com/Lombiq/NodeJs-Extensions/blob/dev/Lombiq.NodeJs.Extensions/Docs/Styles.md#stylelint-and-prettier-rules.

What's Changed

New Contributors

Full Changelog: v1.3.2...v2.0.0

v1.3.2

26 Sep 16:36
089bea8

Choose a tag to compare

What's Changed

Full Changelog: v1.3.1...v1.3.2

v1.3.1

25 Sep 11:23
4c17c8c

Choose a tag to compare

What's Changed

Full Changelog: v1.3.0...v1.3.1

v1.3.0

17 Aug 09:04
72a216f

Choose a tag to compare

PNPM v8

The project has been upgraded to use PNPM 8. Please update your references and check the following:

  • Node.js 14 is no longer supported by PNPM. Please check with node -v that you have at least v16 installed. If not, it's best to go straight to the current LTS version 18.17.1. (NVM users: nvm alias default 18).
  • The new lock file format is not backward compatible and this could cause CI builds to fail. Regenerate the lock files by rebuilding the solution and then commit them. If you have problems, try running this pwsh one-liner in the solution root: Get-ChildItem -Recurse pnpm-lock.yaml | ForEach-Object { Push-Location $_.Directory; pnpm install; Pop-Location }.
  • You shouldn't have to update PNPM yourself, because Lombiq.NodeJs.Extensions selects the specific excepted version automatically by calling corepack enable && corepack prepare pnpm@8.6.12 --activate. If you have manually installed PNPM before, uninstall it and let our library manage the version using corepack that comes with node out of the box.

What's Changed

Full Changelog: v1.2.5...v1.3.0