Skip to content

Commit

Permalink
Rename npm domain to nodejs and add support for using pnpm as a…
Browse files Browse the repository at this point in the history
…lternative package manager.
  • Loading branch information
rnixx committed Jun 17, 2024
1 parent c3afefd commit 9089edd
Show file tree
Hide file tree
Showing 9 changed files with 115 additions and 112 deletions.
5 changes: 5 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@

- Add `plone-site` template configuration to `mx.ini` template.

**Breaking changes**

- Rename `npm` domain to `nodejs` and add support for using `pnpm` as
alternative package manager.

## 1.0a5 (2024-06-07)

- Export `OS` environment variable in `mxenv` domain to prevent warning on
Expand Down
7 changes: 2 additions & 5 deletions src/mxmake/topics/docs/jsdoc.mk
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
#:[jsdoc]
#:title = JSDoc Documentation
#:description = JSDoc installation and integration into Sphinx.
#:depends = js.npm
#:depends = js.nodejs

##############################################################################
# jsdoc
##############################################################################

# extend npm dev packages
NPM_DEV_PACKAGES+=jsdoc

# extend sphinx requirements and docs targets
NODEJS_DEV_PACKAGES+=jsdoc
DOCS_REQUIREMENTS+=sphinx_js
7 changes: 3 additions & 4 deletions src/mxmake/topics/js/karma.mk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#:[karma]
#:title = Karma tests
#:description = Run JavaScript tests using karma.
#:depends = js.npm
#:depends = js.nodejs
#:
#:[target.karma]
#:description = Run karma.
Expand All @@ -18,13 +18,12 @@
# karma
##############################################################################

# extend npm dev packages
NPM_DEV_PACKAGES+=\
NODEJS_DEV_PACKAGES+=\
karma \
karma-coverage \
karma-chrome-launcher \
karma-module-resolver-preprocessor

.PHONY: karma
karma: $(NPM_TARGET)
karma: $(NODEJS_TARGET)
@karma start $(KARMA_CONFIG) $(KARMA_OPTIONS)
96 changes: 96 additions & 0 deletions src/mxmake/topics/js/nodejs.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#:[nodejs]
#:title = Node.js
#:description = Provide targets for working with Node.js. A working version of
#: Node.js is expected to be installed. We suggest using `nvm` for managing
#: Node.JS installations.
#:depends = core.base
#:
#:[target.nodejs]
#:description = Installs Javascript packages using the current active node
#: version with the configured package manager.
#:
#:[target.nodejs-dirty]
#:description = Build :ref:`nodejs` target on next make run.
#:
#:[target.nodejs-clean]
#:description = Remove installed Javascript packages.
#:
#:[setting.NODEJS_PACKAGE_MANAGER]
#:description = The package manager to use. Defaults to `npm`. Possible values
#: are `npm` and `pnpm`
#:default = npm
#:
#:[setting.NODEJS_PREFIX]
#:description = Value for `--prefix` option when installing packages.
#:default = .
#:
#:[setting.NODEJS_PACKAGES]
#:description = Packages to install with `--no-save` option.
#:default =
#:
#:[setting.NODEJS_DEV_PACKAGES]
#:description = Packages to install with `--save-dev` option.
#:default =
#:
#:[setting.NODEJS_PROD_PACKAGES]
#:description = Packages to install with `--save-prod` option.
#:default =
#:
#:[setting.NODEJS_OPT_PACKAGES]
#:description = Packages to install with `--save-optional` option.
#:default =
#:
#:[setting.NODEJS_INSTALL_OPTS]
#:description = Additional install options. Possible values are `--save-exact`
#: and `--save-bundle`.
#:default =

##############################################################################
# nodejs
##############################################################################

export PATH:=$(shell pwd)/$(NODEJS_PREFIX)/node_modules/.bin:$(PATH)


NODEJS_TARGET:=$(SENTINEL_FOLDER)/nodejs.sentinel
$(NODEJS_TARGET): $(SENTINEL)
@echo "Install nodejs packages"
@test -z "$(NODEJS_DEV_PACKAGES)" \
&& echo "No dev packages to be installed" \
|| $(NODEJS_PACKAGE_MANAGER) --prefix $(NODEJS_PREFIX) install \
--save-dev \
$(NODEJS_INSTALL_OPTS) \
$(NODEJS_DEV_PACKAGES)
@test -z "$(NODEJS_PROD_PACKAGES)" \
&& echo "No prod packages to be installed" \
|| $(NODEJS_PACKAGE_MANAGER) --prefix $(NODEJS_PREFIX) install \
--save-prod \
$(NODEJS_INSTALL_OPTS) \
$(NODEJS_PROD_PACKAGES)
@test -z "$(NODEJS_OPT_PACKAGES)" \
&& echo "No opt packages to be installed" \
|| $(NODEJS_PACKAGE_MANAGER) --prefix $(NODEJS_PREFIX) install \
--save-optional \
$(NODEJS_INSTALL_OPTS) \
$(NODEJS_OPT_PACKAGES)
@test -z "$(NODEJS_PACKAGES)" \
&& echo "No packages to be installed" \
|| $(NODEJS_PACKAGE_MANAGER) --prefix $(NODEJS_PREFIX) install \
--no-save \
$(NODEJS_PACKAGES)
@touch $(NODEJS_TARGET)

.PHONY: nodejs
nodejs: $(NODEJS_TARGET)

.PHONY: nodejs-dirty
nodejs-dirty:
@rm -f $(NODEJS_TARGET)

.PHONY: nodejs-clean
nodejs-clean: nodejs-dirty
@rm -rf $(NODEJS_PREFIX)/node_modules

INSTALL_TARGETS+=nodejs
DIRTY_TARGETS+=nodejs-dirty
CLEAN_TARGETS+=nodejs-clean
90 changes: 0 additions & 90 deletions src/mxmake/topics/js/npm.mk

This file was deleted.

7 changes: 3 additions & 4 deletions src/mxmake/topics/js/rollup.mk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#:[rollup]
#:title = Rollup JavaScript module bundler
#:description = Create JavaScript bundles with rollup.
#:depends = js.npm
#:depends = js.nodejs
#:
#:[target.rollup]
#:description = Run rollup JavaScript bundler.
Expand All @@ -14,12 +14,11 @@
# rollup
##############################################################################

# extend npm dev packages
NPM_DEV_PACKAGES+=\
NODEJS_DEV_PACKAGES+=\
rollup \
rollup-plugin-cleanup \
@rollup/plugin-terser

.PHONY: rollup
rollup: $(NPM_TARGET)
rollup: $(NODEJS_TARGET)
@rollup --config $(ROLLUP_CONFIG)
7 changes: 3 additions & 4 deletions src/mxmake/topics/js/scss.mk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#:[scss]
#:title = SCSS Compiler
#:description = Compile Stylesheets using SCSS.
#:depends = js.npm
#:depends = js.nodejs
#:
#:[target.scss]
#:description = Run SCSS Stylesheet Compiler.
Expand All @@ -26,10 +26,9 @@
# scss
##############################################################################

# extend npm dev packages
NPM_DEV_PACKAGES+=sass
NODEJS_DEV_PACKAGES+=sass

.PHONY: scss
scss: $(NPM_TARGET)
scss: $(NODEJS_TARGET)
@sass $(SCSS_OPTIONS) $(SCSS_SOURCE) $(SCSS_TARGET)
@sass $(SCSS_OPTIONS) --style compressed $(SCSS_SOURCE) $(SCSS_MIN_TARGET)
7 changes: 3 additions & 4 deletions src/mxmake/topics/js/wtr.mk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#:[wtr]
#:title = Web test runner
#:description = Run JavaScript tests using web test runner.
#:depends = js.npm
#:depends = js.nodejs
#:
#:[target.wtr]
#:description = Execute web test runner.
Expand All @@ -18,11 +18,10 @@
# web test runner
##############################################################################

# extend npm dev packages
NPM_DEV_PACKAGES+=\
NODEJS_DEV_PACKAGES+=\
@web/test-runner \
@web/dev-server-import-maps

.PHONY: wtr
wtr: $(NPM_TARGET)
wtr: $(NODEJS_TARGET)
@web-test-runner $(WTR_OPTIONS) --config $(WTR_CONFIG)
1 change: 0 additions & 1 deletion src/mxmake/topics/system/dependencies.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#:title = System dependencies
#:description = System dependency management.
#:depends = core.base
#:soft-depends = js.npm
#:
#:[target.system-dependencies]
#:description = Install system dependencies.
Expand Down

0 comments on commit 9089edd

Please sign in to comment.