forked from cowboy/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path50_node.sh
121 lines (109 loc) · 4.49 KB
/
50_node.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
export NVM_DIR="/Users/PV/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
# export PATH
# PATH=~/.nave/installed/default/bin:"$(path_remove ~/.nave/installed/*/bin)"
# Set a specific version of node as the "default" for "nave use default"
# function nave_default() {
# local version
# local default=${NAVE_DIR:-$HOME/.nave}/installed/default
# [[ ! "$1" ]] && echo "Specify a node version or \"stable\"" && return 1
# [[ "$1" == "stable" ]] && version=$(nave stable) || version=${1#v}
# rm "$default" 2>/dev/null
# ln -s $version "$default"
# echo "Nave default set to $version"
# }
# Install a version of node, set as default, install npm modules, etc.
# function nave_install() {
# local version
# [[ ! "$1" ]] && echo "Specify a node version or \"stable\"" && return 1
# [[ "$1" == "stable" ]] && version=$(nave stable) || version=${1#v}
# if [[ ! -d "${NAVE_DIR:-$HOME/.nave}/installed/$version" ]]; then
# e_header "Installing Node.js $version"
# nave install $version
# fi
# [[ "$1" == "stable" ]] && nave_default stable && npm_install
# }
# Global npm modules to install.
# npm_globals=(
# bower
# ember-cli
# grunt-cli
# grunt-init
# linken
# node-inspector
# yo
# )
# Update npm and install global modules.
# function npm_install() {
# local installed modules
# e_header "Updating npm"
# npm update -g npm
# { pushd "$(npm config get prefix)/lib/node_modules"; installed=(*); popd; } >/dev/null
# modules=($(setdiff "${npm_globals[*]}" "${installed[*]}"))
# if (( ${#modules[@]} > 0 )); then
# e_header "Installing Npm modules: ${modules[*]}"
# npm install -g "${modules[@]}"
# fi
# }
# Publish module to Npm registry, but don't update "latest" unless the version
# is an actual release version!
# function npm_publish() {
# local version="$(node -pe 'require("./package.json").version' 2>/dev/null)"
# if [[ "${version#v}" =~ [a-z] ]]; then
# local branch="$(git branch | perl -ne '/^\* (.*)/ && print $1')"
# echo "Publishing dev version $version with --force --tag=$branch"
# npm publish --force --tag="$branch" "$@"
# else
# echo "Publishing new latest version $version"
# npm publish "$@"
# fi
# }
# Crazy-ass, cross-repo npm linking.
# Inter-link all projects, where each project exists in a subdirectory of
# the current parent directory. Uses https://github.com/cowboy/node-linken
# alias npm_linkall='eachdir "rm -rf node_modules; npm install"; linken */ --src .'
# alias npm_link='rm -rf node_modules; npm install; linken . --src ..'
# Link this project's grunt stuff to the in-development grunt stuff.
# alias npm_link_grunt='linken . --src ~/gruntjs'
# Print npm owners in subdirectories.
# alias npm_owner_list='eachdir "npm owner ls 2>/dev/null | sort"'
# Add npm owners to projects in subdirectories.
# function npm_owner_add() {
# local users=
# local root="$(basename $(pwd))"
# [[ $root == "gruntjs" ]] && users="cowboy tkellen"
# if [[ -n "$users" ]]; then
# eachdir "__npm_owner_add_each $users"
# fi
# }
# function __npm_owner_add_each() {
# local owners
# owners="$(npm owner ls 2>/dev/null)"
# [[ $? != 0 ]] && return
# for user in $*; do
# echo $owners | grep -v $user >/dev/null && npm owner add $user
# done
# }
# Look at a project's package.json and figure out what dependencies can be
# updated. While the "npm outdated" command only lists versions that are valid
# per the version string in package.json, this looks at the @latest tag in npm.
# function npm_latest() {
# if [[ -e 'node_modules' ]]; then
# echo 'Backing up node_modules directory.'
# mv "node_modules" "node_modules-$(date "+%Y_%m_%d-%H_%M_%S")"
# fi
# local deps='JSON.parse(require("fs").readFileSync("package.json")).dependencies'
# # Install the latest version of all dependencies listed in package.json.
# echo 'Installing @latest version of all dependencies...'
# npm install $(node -pe "Object.keys($deps).map(function(m){return m+'@latest'}).join(' ')");
# # List all dependencies that are now invalid, along with their (new) version.
# local npm_ls="$(npm ls 2>/dev/null)"
# if echo "$npm_ls" | grep invalid >/dev/null; then
# echo -e '\nTHESE DEPENDENCIES CAN POSSIBLY BE UPDATED\n'
# echo 'Module name: @latest: package.json:'
# echo "$npm_ls" | perl -ne "m/.{10}(.+)@(.+?) invalid\$/ && printf \"%-30s %-20s %s\", \$1, \$2, \`node -pe '$deps[\"\$1\"]'\`"
# return 99
# else
# echo -e '\nAll dependencies are @latest version.'
# fi
# }