В ответ на это:
https://stackoverflow.com/a/5923898/7381355
Вы можете добавить это в свой .bashrc, чтобы устанавливать NODE_PATH только при запуске repl, поскольку требование глобальных модулей является антишаблоном.
node() {
if (( $# == 0 )); then
NODE_PATH=$(npm root -g) command node
else
command node "$@"
fi
}
Он устанавливает NODE_PATH, когда никакие аргументы не передаются узлу. Так что это не будет работать с чем-то вроде node -i
. Вы должны добавить дополнительную проверку аргументов, чтобы охватить все случаи, когда запускается repl.
Это сделало бы, чтобы repl всегда устанавливал NODE_PATH. Если вы хотите иметь возможность выбрать, запускать ли repl или скрипт с глобальными модулями или нет, вы можете вместо этого добавить это в ваш .bashrc.
node_global() {
NODE_PATH=$(npm root -g) node "$@"
}
Тогда просто запустите node_global. Я пошел со вторым вариантом.