Skip to content

v3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Oct 00:20
· 25 commits to dev since this release
c61f925

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