• Час читання ~2 хв
  • 03.08.2023

Для розробки 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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297