add 'npm' and 'npm-update' make targets and lockfile (#7246)

* add 'npm' and 'npm-update' make targets and lockfile

- `make npm` installs and updates node_modules, triggered automatically
   on `make css` and `make js` as it completes reasonably fast and
   ensures consistent modules.
- `make npm-update` updates all dependencies to their latest version,
   regenerates `node_modules` from scratch and updates
   `package-lock.json`. It uses npm modules `updates` written by yours
   truly to find the latest version of each dependency.

* add suggested make dependencies

* remove package-lock.json during npm-update

* regenerate package-lock.json
This commit is contained in:
silverwind 2019-06-19 04:59:47 +02:00 committed by techknowlogick
parent 33ad554800
commit a71cabbd53
7 changed files with 4913 additions and 36 deletions

View file

@ -52,7 +52,6 @@ pipeline:
image: webhippie/nodejs:latest image: webhippie/nodejs:latest
pull: true pull: true
commands: commands:
- npm install
- make css - make css
- make js - make js
when: when:

1
.gitignore vendored
View file

@ -67,7 +67,6 @@ coverage.all
/node_modules /node_modules
/modules/indexer/issues/indexers /modules/indexer/issues/indexers
routers/repo/authorized_keys routers/repo/authorized_keys
/package-lock.json
/yarn.lock /yarn.lock
# Snapcraft # Snapcraft

1
.npmrc
View file

@ -1,2 +1 @@
package-lock=false
save-exact=true save-exact=true

View file

@ -366,29 +366,32 @@ release-compress:
fi fi
cd $(DIST)/release/; for file in `find . -type f -name "*"`; do echo "compressing $${file}" && gxz -k -9 $${file}; done; cd $(DIST)/release/; for file in `find . -type f -name "*"`; do echo "compressing $${file}" && gxz -k -9 $${file}; done;
.PHONY: js npm-check:
js: @hash npm > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
@if ([ ! -d "$(PWD)/node_modules" ]); then \ echo "Please install Node.js 8.x or greater with npm"; \
echo "node_modules directory is absent, please run 'npm install' first"; \
exit 1; \ exit 1; \
fi; fi;
@hash npx > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ @hash npx > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
echo "Please install npm version 5.2+"; \ echo "Please install Node.js 8.x or greater with npm"; \
exit 1; \ exit 1; \
fi; fi;
.PHONY: npm
npm: npm-check
npm install --no-save
.PHONY: npm-update
npm-update: npm-check
npx updates -cu
rm -rf node_modules package-lock.json
npm install --package-lock
.PHONY: js
js: npm
npx eslint public/js npx eslint public/js
.PHONY: css .PHONY: css
css: css: npm
@if ([ ! -d "$(PWD)/node_modules" ]); then \
echo "node_modules directory is absent, please run 'npm install' first"; \
exit 1; \
fi;
@hash npx > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
echo "Please install npm version 5.2+"; \
exit 1; \
fi;
npx lesshint public/less/ npx lesshint public/less/
npx lessc --clean-css="--s0 -b" public/less/index.less public/css/index.css npx lessc --clean-css="--s0 -b" public/less/index.less public/css/index.css
$(foreach file, $(filter-out public/less/themes/_base.less, $(wildcard public/less/themes/*)),npx lessc --clean-css="--s0 -b" public/less/themes/$(notdir $(file)) > public/css/theme-$(notdir $(call strip-suffix,$(file))).css;) $(foreach file, $(filter-out public/less/themes/_base.less, $(wildcard public/less/themes/*)),npx lessc --clean-css="--s0 -b" public/less/themes/$(notdir $(file)) > public/css/theme-$(notdir $(call strip-suffix,$(file))).css;)

View file

@ -138,14 +138,7 @@ make vet lint misspell-check
### Updating CSS ### Updating CSS
To generate the CSS, you will need [Node.js](https://nodejs.org/) 8.0 or greater and the build dependencies: To generate the CSS, you will need [Node.js](https://nodejs.org/) 8.0 or greater with npm. At present we use [less](http://lesscss.org/) and [postcss](https://postcss.org) to generate our CSS. Do **not** edit the files in `public/css` directly, as they are generated from `lessc` from the files in `public/less`.
```bash
npm install
```
At present we use [less](http://lesscss.org/) and [postcss](https://postcss.org) to generate our CSS. Do
**not** edit the files in `public/css` directly, as they are generated from `lessc` from the files in `public/less`.
Edit files in `public/less`, run the linter, regenerate the CSS and commit all changed files: Edit files in `public/less`, run the linter, regenerate the CSS and commit all changed files:
@ -155,13 +148,7 @@ make css
### Updating JS ### Updating JS
To run the JavaScript linter you will need [Node.js](https://nodejs.org/) 8.0 or greater and the build dependencies: To run the JavaScript linter you will need [Node.js](https://nodejs.org/) 8.0 or greater with npm. Edit files in `public/js` and run the linter:
```bash
npm install
```
Edit files in `public/js` and run the linter:
```bash ```bash
make js make js

4889
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,13 @@
{ {
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"autoprefixer": "9.5.1", "autoprefixer": "9.6.0",
"eslint": "5.16.0", "eslint": "5.16.0",
"less": "3.9.0", "less": "3.9.0",
"less-plugin-clean-css": "1.5.1", "less-plugin-clean-css": "1.5.1",
"lesshint": "6.3.6", "lesshint": "6.3.6",
"postcss-cli": "6.1.2" "postcss-cli": "6.1.2",
"updates": "8.1.0"
}, },
"browserslist": [ "browserslist": [
"> 1%", "> 1%",