summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dir-locals.el9
-rw-r--r--.nvm_packages8
-rw-r--r--.nvmrc1
-rwxr-xr-xutils/lib_nvm.sh16
4 files changed, 27 insertions, 7 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index b8f7ecc76..f67ab4714 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -19,6 +19,7 @@
;; Some buffer locals are referencing the project environment:
;;
;; - prj-root --> <repo>/
+;; - nvm-dir --> <repo>/.nvm
;; - python-environment-directory --> <repo>/local
;; - python-environment-default-root-name --> py3
;; - python-shell-virtualenv-root --> <repo>/local/py3
@@ -57,6 +58,9 @@
(setq-local python-environment-directory
(expand-file-name "./local" prj-root))
+ ;; to get in use of NVM enviroment, install https://github.com/rejeep/nvm.el
+ (setq-local nvm-dir (expand-file-name "./.nvm" prj-root))
+
;; use 'py3' enviroment as default
(setq-local python-environment-default-root-name
"py3")
@@ -90,10 +94,9 @@
(js-mode
. ((eval . (progn
+ ;; use nodejs from the (local) NVM environment (see nvm-dir)
+ (nvm-use-for-buffer)
(setq-local js-indent-level 2)
- ;; flycheck should use the eslint checker from simple theme
- (setq-local flycheck-javascript-eslint-executable
- (expand-file-name "searx/static/themes/simple/node_modules/.bin/eslint" prj-root))
(flycheck-mode)
))))
diff --git a/.nvm_packages b/.nvm_packages
new file mode 100644
index 000000000..13eabc5c2
--- /dev/null
+++ b/.nvm_packages
@@ -0,0 +1,8 @@
+# -*- coding: utf-8; mode: conf-unix -*-
+#
+# Developement tools pre-installed in NVM's node installation [1]
+#
+# [1] https://github.com/nvm-sh/nvm#default-global-packages-from-file-while-installing
+
+eslint
+
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 000000000..5dbac1ed0
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+v16.13.0 \ No newline at end of file
diff --git a/utils/lib_nvm.sh b/utils/lib_nvm.sh
index d35abef2a..267ba8a4a 100755
--- a/utils/lib_nvm.sh
+++ b/utils/lib_nvm.sh
@@ -94,6 +94,7 @@ nvm.: use nvm (without dot) to execute nvm commands directly
clean : remove NVM installation
status : prompt some status informations about nvm & node
nodejs : install Node.js latest LTS
+ cmd ... : run command ... in NVM environment
bash : start bash interpreter with NVM environment sourced
EOF
}
@@ -115,6 +116,8 @@ nvm.install() {
NVM_VERSION_TAG="$(git describe --abbrev=0 --tags --match "v[0-9]*" "${NVM_VERSION_TAG}")"
info_msg "checkout ${NVM_VERSION_TAG}"
git checkout "${NVM_VERSION_TAG}" 2>&1 | prefix_stdout " ${_Yellow}||${_creset} "
+ popd &> /dev/null
+ cp "${REPO_ROOT}/.nvm_packages" "${NVM_DIR}/default-packages"
nvm.env
}
@@ -133,7 +136,7 @@ nvm.clean() {
fi
}
-nvm.status(){
+nvm.status() {
if command -v node >/dev/null; then
info_msg "Node.js is installed at $(command -v node)"
info_msg "Node.js is version $(node --version)"
@@ -153,12 +156,12 @@ nvm.status(){
info_msg "NVM is installed at ${NVM_DIR}"
else
warn_msg "NVM is not installed"
- info_msg "to install NVM and Node.js (LTS) use: ${main_cmd} nvm install --lts"
+ info_msg "to install NVM and Node.js (LTS) use: ${main_cmd} nvm.nodejs"
fi
}
-nvm.nodejs(){
- nvm install --lts
+nvm.nodejs() {
+ nvm install
nvm.status
}
@@ -167,6 +170,11 @@ nvm.bash() {
bash --init-file <(cat "${NVM_DIR}/nvm.sh" "${NVM_DIR}/bash_completion")
}
+nvm.cmd() {
+ nvm.ensure
+ "$@"
+}
+
nvm.ensure() {
if ! nvm.is_installed; then
nvm.install