forked from Ponysearch/Ponysearch
Merge pull request #529 from return42/nvm-improve
Various improvements of the NVM environment
This commit is contained in:
commit
deca799e9f
4 changed files with 27 additions and 7 deletions
|
@ -19,6 +19,7 @@
|
||||||
;; Some buffer locals are referencing the project environment:
|
;; Some buffer locals are referencing the project environment:
|
||||||
;;
|
;;
|
||||||
;; - prj-root --> <repo>/
|
;; - prj-root --> <repo>/
|
||||||
|
;; - nvm-dir --> <repo>/.nvm
|
||||||
;; - python-environment-directory --> <repo>/local
|
;; - python-environment-directory --> <repo>/local
|
||||||
;; - python-environment-default-root-name --> py3
|
;; - python-environment-default-root-name --> py3
|
||||||
;; - python-shell-virtualenv-root --> <repo>/local/py3
|
;; - python-shell-virtualenv-root --> <repo>/local/py3
|
||||||
|
@ -57,6 +58,9 @@
|
||||||
(setq-local python-environment-directory
|
(setq-local python-environment-directory
|
||||||
(expand-file-name "./local" prj-root))
|
(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
|
;; use 'py3' enviroment as default
|
||||||
(setq-local python-environment-default-root-name
|
(setq-local python-environment-default-root-name
|
||||||
"py3")
|
"py3")
|
||||||
|
@ -90,10 +94,9 @@
|
||||||
|
|
||||||
(js-mode
|
(js-mode
|
||||||
. ((eval . (progn
|
. ((eval . (progn
|
||||||
|
;; use nodejs from the (local) NVM environment (see nvm-dir)
|
||||||
|
(nvm-use-for-buffer)
|
||||||
(setq-local js-indent-level 2)
|
(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)
|
(flycheck-mode)
|
||||||
))))
|
))))
|
||||||
|
|
||||||
|
|
8
.nvm_packages
Normal file
8
.nvm_packages
Normal file
|
@ -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
|
||||||
|
|
1
.nvmrc
Normal file
1
.nvmrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
v16.13.0
|
|
@ -94,6 +94,7 @@ nvm.: use nvm (without dot) to execute nvm commands directly
|
||||||
clean : remove NVM installation
|
clean : remove NVM installation
|
||||||
status : prompt some status informations about nvm & node
|
status : prompt some status informations about nvm & node
|
||||||
nodejs : install Node.js latest LTS
|
nodejs : install Node.js latest LTS
|
||||||
|
cmd ... : run command ... in NVM environment
|
||||||
bash : start bash interpreter with NVM environment sourced
|
bash : start bash interpreter with NVM environment sourced
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
@ -115,6 +116,8 @@ nvm.install() {
|
||||||
NVM_VERSION_TAG="$(git describe --abbrev=0 --tags --match "v[0-9]*" "${NVM_VERSION_TAG}")"
|
NVM_VERSION_TAG="$(git describe --abbrev=0 --tags --match "v[0-9]*" "${NVM_VERSION_TAG}")"
|
||||||
info_msg "checkout ${NVM_VERSION_TAG}"
|
info_msg "checkout ${NVM_VERSION_TAG}"
|
||||||
git checkout "${NVM_VERSION_TAG}" 2>&1 | prefix_stdout " ${_Yellow}||${_creset} "
|
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
|
nvm.env
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +136,7 @@ nvm.clean() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm.status(){
|
nvm.status() {
|
||||||
if command -v node >/dev/null; then
|
if command -v node >/dev/null; then
|
||||||
info_msg "Node.js is installed at $(command -v node)"
|
info_msg "Node.js is installed at $(command -v node)"
|
||||||
info_msg "Node.js is version $(node --version)"
|
info_msg "Node.js is version $(node --version)"
|
||||||
|
@ -153,12 +156,12 @@ nvm.status(){
|
||||||
info_msg "NVM is installed at ${NVM_DIR}"
|
info_msg "NVM is installed at ${NVM_DIR}"
|
||||||
else
|
else
|
||||||
warn_msg "NVM is not installed"
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm.nodejs(){
|
nvm.nodejs() {
|
||||||
nvm install --lts
|
nvm install
|
||||||
nvm.status
|
nvm.status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,6 +170,11 @@ nvm.bash() {
|
||||||
bash --init-file <(cat "${NVM_DIR}/nvm.sh" "${NVM_DIR}/bash_completion")
|
bash --init-file <(cat "${NVM_DIR}/nvm.sh" "${NVM_DIR}/bash_completion")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nvm.cmd() {
|
||||||
|
nvm.ensure
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
nvm.ensure() {
|
nvm.ensure() {
|
||||||
if ! nvm.is_installed; then
|
if ! nvm.is_installed; then
|
||||||
nvm.install
|
nvm.install
|
||||||
|
|
Loading…
Reference in a new issue