* 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.jsontags/v1.9.0-rc1
@@ -52,7 +52,6 @@ pipeline: | |||
image: webhippie/nodejs:latest | |||
pull: true | |||
commands: | |||
- npm install | |||
- make css | |||
- make js | |||
when: |
@@ -67,7 +67,6 @@ coverage.all | |||
/node_modules | |||
/modules/indexer/issues/indexers | |||
routers/repo/authorized_keys | |||
/package-lock.json | |||
/yarn.lock | |||
# Snapcraft |
@@ -1,2 +1 @@ | |||
package-lock=false | |||
save-exact=true |
@@ -366,29 +366,32 @@ release-compress: | |||
fi | |||
cd $(DIST)/release/; for file in `find . -type f -name "*"`; do echo "compressing $${file}" && gxz -k -9 $${file}; done; | |||
.PHONY: js | |||
js: | |||
@if ([ ! -d "$(PWD)/node_modules" ]); then \ | |||
echo "node_modules directory is absent, please run 'npm install' first"; \ | |||
npm-check: | |||
@hash npm > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ | |||
echo "Please install Node.js 8.x or greater with npm"; \ | |||
exit 1; \ | |||
fi; | |||
@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; \ | |||
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 | |||
.PHONY: css | |||
css: | |||
@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; | |||
css: npm | |||
npx lesshint public/less/ | |||
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;) |
@@ -138,14 +138,7 @@ make vet lint misspell-check | |||
### Updating CSS | |||
To generate the CSS, you will need [Node.js](https://nodejs.org/) 8.0 or greater and the build dependencies: | |||
```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`. | |||
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`. | |||
Edit files in `public/less`, run the linter, regenerate the CSS and commit all changed files: | |||
@@ -155,13 +148,7 @@ make css | |||
### Updating JS | |||
To run the JavaScript linter you will need [Node.js](https://nodejs.org/) 8.0 or greater and the build dependencies: | |||
```bash | |||
npm install | |||
``` | |||
Edit files in `public/js` and run the linter: | |||
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 | |||
make js | |||
@@ -250,7 +237,7 @@ TAGS="bindata sqlite sqlite_unlock_notify" make generate build test-sqlite | |||
``` | |||
will run the integration tests in an sqlite environment. Other database tests | |||
are available but may need adjustment to the local environment. | |||
are available but may need adjustment to the local environment. | |||
Look at | |||
[`integrations/README.md`](https://github.com/go-gitea/gitea/blob/master/integrations/README.md) |
@@ -1,12 +1,13 @@ | |||
{ | |||
"license": "MIT", | |||
"devDependencies": { | |||
"autoprefixer": "9.5.1", | |||
"autoprefixer": "9.6.0", | |||
"eslint": "5.16.0", | |||
"less": "3.9.0", | |||
"less-plugin-clean-css": "1.5.1", | |||
"lesshint": "6.3.6", | |||
"postcss-cli": "6.1.2" | |||
"postcss-cli": "6.1.2", | |||
"updates": "8.1.0" | |||
}, | |||
"browserslist": [ | |||
"> 1%", |