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:
|
||||
;;
|
||||
;; - 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)
|
||||
))))
|
||||
|
||||
|
|
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
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue