• Czas czytania ~2 min
  • 03.08.2023

W przypadku rozwoju Laravel często wpisujemy polecenia, takie jak ./vendor/bin/pest uruchamianie poleceń specyficznych dla projektu.

Nie musimy!

Aby pomóc tutaj, możemy zaktualizować naszą zmienną

Mac (lub Linux). $PATHCo to $PATHjest ?

Zmienna $PATH ustawia katalogi, których system szuka podczas znajdowania poleceń do uruchomienia.

Na przykład, możemy wpisaćwhich <cmd>, aby znaleźć ścieżkę do dowolnego polecenia:Mój system wiedział, że znaleźć git w,

$ which git
/usr/local/bin/git

ponieważ /usr/local/bin jest jeden katalog ustawiony w /usr/local/bin moim $PATH!

echo Możesz teraz wytyczyć swoją ścieżkę:Katalogi względne w PATH

# Output the whole path
echo $PATH

# For human-readability, split out each
# directory into a new line:
echo "$PATH" | tr ':' '\n'

Możemy edytować naszą $PATH zmienną,

aby dodać ją w dowolnych katalogach!

Jedną z niezwykle przydatnych sztuczek jest ustawienie względnych katalogów w zmiennej$PATH.

Dwa przykłady to dodawanie ./vendor/bin i ./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

Tutaj poprzedziliśmy nasze dwie nowe ścieżki do istniejącej $PATH zmiennej. Teraz, bez względu na to, w jakiej aplikacji Laravel się cdznajdujemy, możemy uruchomić i wiedzieć, że uruchamiamy ./vendor/bin/pest, phpunit aby uruchomić ./vendor/bin/phpunit pest (i to samo dla każdego polecenia Node w ).

./node_modules/.binMożemy również ustawić bieżący katalog . w naszym $PATH (jeśli nie jest jeszcze ustawiony - może być):

# 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

W ten sposób możemy wpisać artisan zamiast ./artisan lub php artisan.

Są to ustawienia, które mam w Chipper CI, dzięki czemu użytkownicy mogą uruchamiać pest lub phpunit bez martwienia się o to, gdzie polecenie istnieje w ich środowiskach CI.

Kolejność notatek

ma również znaczenie w $PATH. Podczas wyszukiwania polecenia najpierw przeszukiwane są wcześniejsze katalogi. System użyje pierwszego znalezionego polecenia - oznacza to, że możesz nadpisać polecenie systemowe, umieszczając je w katalogu wcześniej w $PATHformacie . Dlatego przygotowujemy ./vendor/bin ./node_modules/.bin i dołączamy, a nie dołączamy$PATH.

Możesz znaleźć wszystkie lokalizacje polecenia w następujący sposób:

$ 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

Wreszcie, we wszystkich przypadkach tutaj polecenia powinny mieć uprawnienia wykonywalne, aby działać w ten sposób. Należy o tym pamiętać podczas tworzenia własnych poleceń, takich jak niestandardowy skrypt bash.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297