Merge pull request #529 from return42/nvm-improve
Various improvements of the NVM environment
This commit is contained in:
		
						commit
						deca799e9f
					
				| @ -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 | ||||
| 
 | ||||
| @ -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 | ||||
| } | ||||
| 
 | ||||
| @ -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 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 New Issue
	
	Block a user