Page MenuHomeFreeBSD

Add USE_NODEJS to nodejs.mk for specifying NodeJS packager manager
AbandonedPublic

Authored by tagattie on Jan 3 2022, 10:45 AM.
Tags
None
Referenced Files
F136382678: D33727.diff
Mon, Nov 17, 12:50 PM
F136380434: D33727.diff
Mon, Nov 17, 12:37 PM
Unknown Object (File)
Sun, Nov 16, 11:25 AM
Unknown Object (File)
Sat, Oct 25, 11:58 PM
Unknown Object (File)
Mon, Oct 20, 3:39 PM
Unknown Object (File)
Mon, Oct 20, 3:38 PM
Unknown Object (File)
Mon, Oct 20, 1:46 AM
Unknown Object (File)
Oct 3 2025, 5:01 PM
Subscribers

Details

Reviewers
0mp
bhughes
sunpoet
pizzamig
mfechner
Group Reviewers
portmgr
Summary

A NodeJS-based software often uses a NodeJS package manager (NPM or Yarn) for building and/or running the software. Currently a porter must manually specify a package manager depending on the same major version according to USES=nodejs:<version>. Something like:

USES= nodejs:14
BUILD_DEPENDS= www/npm-node14>0:www/npm-node14

This proposal adds USE_NODEJS variable to nodejs.mk for specifying the NodeJS package manager used by a port.

USES= nodejs:14
USE_NODEJS= npm

adds BUILD_DEPENDS= www/npm-node14>0:www/npm-node14

If current version of NodeJS is used:

USES= nodejs:current
USE_NODEJS= npm

adds BUILD_DEPENDS= www/npm>0:www/npm

So a porter does not have to manually ensure that NodeJS's major version and that of a package manager's are the same.

Additionally, fetch, extract, patch, build, run, and/or test can be taken as arguments to specify a specific *_DEPENDS like:

USE_NODEJS= npm:fetch,build

adds

FETCH_DEPENDS= www/npm>0:www/npm
BUILD_DEPENDS= www/npm>0:www/npm

P.S. I would like elastic (for textproc/kibana7) and opensearch (for textproc/opensearch-dashboards) teams to review this proposal. Does anybody know who I should contact?

Test Plan

There 4 ports touched by this change, namely:

security/greenbone-security-assistant
textproc/kibana7
textproc/opensearch-dashboards
textproc/write-good

All the 4 ports have built fine with poudriere.




Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Skipped
Unit
Tests Skipped