mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 14:21:50 +00:00
Make nvm visible to shell children
Shell functions are not automatically exported when declared, which turned out to be problematic when sourcing the `nvm.sh` file from a login shell. Non-login shells, which are children of the login shell, do not see the `nvm` function when it's sourced from `~/.profile` and other similar profile files. Take the following code as an example (using bash): $ foo() { echo 1; } # in login shell $ foo 1 $ bash # in non-login shell now $ foo bash: foo: command not found `foo` is not seen by the second bash instance, even though it has been declared by its parent process. One of the solutions is to export `foo` right after declaring it by doing `export -f NAME`: $ foo() { echo 1; } # in login shell $ export -f foo $ bash # in non-login shell now $ foo 1 This commit does the same to the `nvm` function and its dependencies.
This commit is contained in:
parent
73a513c389
commit
8d97975bc3
101
nvm.sh
101
nvm.sh
@ -3686,4 +3686,105 @@ nvm_process_parameters() {
|
||||
|
||||
nvm_process_parameters "$@"
|
||||
|
||||
# Export the `nvm` shell function to make it visible to a shell's children.
|
||||
# This fixes the problem of a non-login shell not being able to use `nvm` when
|
||||
# it's sourced in the login shell through `~/.profile` et al.
|
||||
export -f nvm_is_zsh
|
||||
export -f nvm_stdout_is_terminal
|
||||
export -f nvm_echo
|
||||
export -f nvm_cd
|
||||
export -f nvm_err
|
||||
export -f nvm_grep
|
||||
export -f nvm_has
|
||||
export -f nvm_has_non_aliased
|
||||
export -f nvm_is_alias
|
||||
export -f nvm_command_info
|
||||
export -f nvm_has_colors
|
||||
export -f nvm_curl_libz_support
|
||||
export -f nvm_curl_use_compression
|
||||
export -f nvm_get_latest
|
||||
export -f nvm_download
|
||||
export -f nvm_has_system_node
|
||||
export -f nvm_has_system_iojs
|
||||
export -f nvm_is_version_installed
|
||||
export -f nvm_print_npm_version
|
||||
export -f nvm_install_latest_npm
|
||||
export -f nvm_tree_contains_path
|
||||
export -f nvm_find_up
|
||||
export -f nvm_find_nvmrc
|
||||
export -f nvm_rc_version
|
||||
export -f nvm_clang_version
|
||||
export -f nvm_curl_version
|
||||
export -f nvm_version_greater
|
||||
export -f nvm_version_greater_than_or_equal_to
|
||||
export -f nvm_version_dir
|
||||
export -f nvm_alias_path
|
||||
export -f nvm_version_path
|
||||
export -f nvm_ensure_version_installed
|
||||
export -f nvm_version
|
||||
export -f nvm_remote_version
|
||||
export -f nvm_remote_versions
|
||||
export -f nvm_is_valid_version
|
||||
export -f nvm_normalize_version
|
||||
export -f nvm_ensure_version_prefix
|
||||
export -f nvm_format_version
|
||||
export -f nvm_num_version_groups
|
||||
export -f nvm_strip_path
|
||||
export -f nvm_change_path
|
||||
export -f nvm_binary_available
|
||||
export -f nvm_print_formatted_alias
|
||||
export -f nvm_print_alias_path
|
||||
export -f nvm_print_default_alias
|
||||
export -f nvm_make_alias
|
||||
export -f nvm_list_aliases
|
||||
export -f nvm_alias
|
||||
export -f nvm_ls_current
|
||||
export -f nvm_resolve_alias
|
||||
export -f nvm_resolve_local_alias
|
||||
export -f nvm_iojs_prefix
|
||||
export -f nvm_node_prefix
|
||||
export -f nvm_is_iojs_version
|
||||
export -f nvm_add_iojs_prefix
|
||||
export -f nvm_strip_iojs_prefix
|
||||
export -f nvm_ls
|
||||
export -f nvm_ls_remote
|
||||
export -f nvm_ls_remote_iojs
|
||||
export -f nvm_ls_remote_index_tab
|
||||
export -f nvm_get_checksum_alg
|
||||
export -f nvm_compute_checksum
|
||||
export -f nvm_compare_checksum
|
||||
export -f nvm_get_checksum
|
||||
export -f nvm_checksum
|
||||
export -f nvm_print_versions
|
||||
export -f nvm_validate_implicit_alias
|
||||
export -f nvm_print_implicit_alias
|
||||
export -f nvm_get_os
|
||||
export -f nvm_get_arch
|
||||
export -f nvm_get_minor_version
|
||||
export -f nvm_ensure_default_set
|
||||
export -f nvm_is_merged_node_version
|
||||
export -f nvm_get_mirror
|
||||
export -f nvm_install_binary
|
||||
export -f nvm_get_download_slug
|
||||
export -f nvm_download_artifact
|
||||
export -f nvm_get_make_jobs
|
||||
export -f nvm_install_source
|
||||
export -f nvm_use_if_needed
|
||||
export -f nvm_install_npm_if_needed
|
||||
export -f nvm_match_version
|
||||
export -f nvm_npm_global_modules
|
||||
export -f nvm_die_on_prefix
|
||||
export -f nvm_has_solaris_binary
|
||||
export -f nvm_sanitize_path
|
||||
export -f nvm_is_natural_num
|
||||
export -f nvm_check_file_permissions
|
||||
export -f nvm_cache_dir
|
||||
export -f nvm
|
||||
export -f nvm_get_default_packages
|
||||
export -f nvm_install_default_packages
|
||||
export -f nvm_supports_source_options
|
||||
export -f nvm_supports_xz
|
||||
export -f nvm_auto
|
||||
export -f nvm_process_parameters
|
||||
|
||||
} # this ensures the entire script is downloaded #
|
||||
|
Loading…
Reference in New Issue
Block a user