Для розробки Laravel ми часто вводимо команди, такі як ./vendor/bin/pest
запуск команд, специфічних для проекту.
Нам не потрібно!
Щоб допомогти тут, ми можемо оновити нашу змінну
Mac (або Linux). $PATH
Що таке$PATH
?
Змінна $PATH
встановлює каталоги, які ваша система шукає при пошуку команд для запуску.
Наприклад, ми можемо ввестиwhich <cmd>
, щоб знайти шлях до будь-якої заданої команди:
$ which git
/usr/local/bin/git
Моя система знала знайти git
в /usr/local/bin
тому, що /usr/local/bin
це один каталог встановлений у моєму $PATH
!
Ви можете echo
визначити свій шлях прямо зараз:
# Output the whole path
echo $PATH
# For human-readability, split out each
# directory into a new line:
echo "$PATH" | tr ':' '\n'
Відносні каталоги в PATH
Ми можемо редагувати нашу $PATH
змінну, щоб додати в будь-які каталоги, які ми хочемо!
Один надзвичайно зручний трюк - встановити відносні каталоги у вашій $PATH
змінній.
Два приклади додаються./vendor/bin
, і ./node_modules/.bin
:
# In your ~/.zshrc, ~/.bashrc or, ~/.bash_profile or similar
# Each directory is separated by a colon
PATH=./vendor/bin:./node_modules/.bin:$PATH
Тут ми передували нашим двом новим шляхам до існуючої $PATH
змінної. Тепер, незалежно від того, якою програмою Laravel ми займаємосяcd
, ми можемо запустити і знати, що ми працюємо ./vendor/bin/pest
, phpunit
щоб запустити ./vendor/bin/phpunit
pest
(і те саме для будь-якої даної команди вузла в ./node_modules/.bin
).
Ми також можемо встановити поточний каталог .
у нашому $PATH
(якщо він ще не встановлений - це може бути):
# In your ~/.zshrc, ~/.bashrc or, ~/.bash_profile or similar
# Each directory is separated by a colon
# Here we also set the current directory in our PATH
PATH=.:./vendor/bin:./node_modules/.bin:$PATH
Таким чином ми можемо ввести artisan
замість ./artisan
або php artisan
.
Це налаштування, які я встановлюю в Chipper CI, щоб користувачі могли запускати pest
або phpunit
не турбуватися про те, де існує команда в їх середовищах CI.
Примітки
Порядок також має значення в $PATH
. Під час пошуку команди спочатку здійснюється пошук у попередніх каталогах. Система буде використовувати першу знайдену команду - це означає, що ви можете перевизначити системну команду, помістивши її в каталог раніше в $PATH
. Ось чому ми готуємо ./vendor/bin
і ./node_modules/.bin
входимо$PATH
, а не додаємо його.
Ви можете знайти всі розташування команди так:
$ which -a git
git is /usr/local/bin/git
git is /usr/bin/git
git is /usr/local/bin/git
git is /usr/bin/git
Нарешті, у всіх випадках тут команди повинні мати виконувані дозволи для роботи так. Це те, про що слід пам'ятати, створюючи власні команди, наприклад, користувацький скрипт bash.