Browse Source

Makefile: add target node.env - download & install npm dependencies

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 5 years ago
parent
commit
d471ec86dd
5 changed files with 27 additions and 6 deletions
  1. 2 1
      .gitignore
  2. 20 3
      Makefile
  3. 1 1
      docs/dev/quickstart.rst
  4. 2 1
      searx/static/themes/oscar/.gitignore
  5. 2 0
      searx/static/themes/simple/.gitignore

+ 2 - 1
.gitignore

@@ -15,7 +15,8 @@ setup.cfg
 */*.pyc
 *~
 
-node_modules/
+/node_modules
+/package-lock.json
 
 .tx/
 

+ 20 - 3
Makefile

@@ -30,6 +30,7 @@ help:
 	@echo  '  project   - re-build generic files of the searx project'
 	@echo  '  themes    - re-build build the source of the themes'
 	@echo  '  docker    - build Docker image'
+	@echo  '  node.env  - download & install npm dependencies locally'
 	@echo  ''
 	@$(MAKE) -s -f utils/makefile.include make-help
 	@echo  ''
@@ -42,7 +43,7 @@ PHONY += uninstall
 uninstall: pyenvuninstall
 
 PHONY += clean
-clean: pyclean
+clean: pyclean node.clean
 	$(call cmd,common_clean)
 
 PHONY += run
@@ -89,6 +90,22 @@ searx.brand:
 	$(Q)echo "DOCS_URL = '$(DOCS_URL)'" >> searx/brand.py
 	$(Q)echo "PUBLIC_INSTANCES = 'https://searx.space'" >> searx/brand.py
 
+# node / npm
+# ----------
+
+node.env:
+	$(Q)./manage.sh npm_packages
+
+node.clean:
+	$(Q)echo "CLEAN     locally installed npm dependencies"
+	$(Q)rm -rf \
+	  ./node_modules  \
+	  ./package-lock.json \
+	  ./searx/static/themes/oscar/package-lock.json \
+	  ./searx/static/themes/oscar/node_modules \
+	  ./searx/static/themes/simple/package-lock.json \
+	  ./searx/static/themes/simple/node_modules
+
 # build themes
 # ------------
 
@@ -97,11 +114,11 @@ themes: themes.oscar themes.simple
 
 themes.oscar:
 	$(Q)echo '[!] Grunt build : oscar theme'
-	$(Q)grunt --gruntfile  "searx/static/themes/oscar/gruntfile.js"
+	$(Q)PATH="$$(npm bin):$$PATH" grunt --gruntfile  "searx/static/themes/oscar/gruntfile.js"
 
 themes.simple:
 	$(Q)echo '[!] Grunt build : simple theme'
-	$(Q)grunt --gruntfile  "searx/static/themes/simple/gruntfile.js"
+	$(Q)PATH="$$(npm bin):$$PATH" grunt --gruntfile  "searx/static/themes/simple/gruntfile.js"
 
 # docker
 # ------

+ 1 - 1
docs/dev/quickstart.rst

@@ -98,7 +98,7 @@ NodeJS, so first Node has to be installed.
 .. code:: sh
 
    sudo -H apt-get install nodejs
-   sudo -H npm install -g grunt-cli
+   make node.env
 
 After installing grunt, the files can be built using the following command:
 

+ 2 - 1
searx/static/themes/oscar/.gitignore

@@ -1 +1,2 @@
-node_modules/
+/node_modules
+/package-lock.json

+ 2 - 0
searx/static/themes/simple/.gitignore

@@ -0,0 +1,2 @@
+/node_modules
+/package-lock.json