Korzystasz z plików .env w projektach Node.js? Istnieją co najmniej dwa powody, dla których nie warto tego robić!
Pierwszym problemem z plikiem .env jest to... że jest plikiem. Pliki .env często zawierają wrażliwe wartości np. hasła czy sekrety. Istnieje kilka sposobów na omyłkowe upublicznienie tego pliku, takie jak dołączenie go do obrazu dockerowego czy przypadkowy commit do repozytorium. Ponadto, osoba uprawniona do odczytu pliku ma dostęp do wszystkich zmiennych w nim zawartych!
Drugim problemem z plikami .env jest... wbudowane wsparcie dla nich od Node.js 20.6.0. Dotychczas, jednym ze sposobów na pracę z plikami .env była paczka dotenv. Mimo dodania wsparcia w Node prawdopodobnie w wielu projektach ta paczka pozostanie... a jest to błąd! Dalsze wsparcie dla tej paczki, w kontekście ostatnich zmian w Node.js mija się z celem, przez co szansa na naprawianie błędów (w tym błędów bezpieczeństwa) maleje.
Sprawdź linki, by dowiedzieć się więcej:
Table Of Contents Hello Reader The problem with .env files Storing the...
https://dev.to/gregorygaines/stop-using-env-files-now-kp0Od dłuższego czasu zbierałem się, żeby zrobić update mojego grammar checkera - w ten weekend się udało!
Wreszcie dodałem elementy, których mi brakowało:
Jak ktoś nie widział wcześniejszego posta (dawno to było) to w skrócie co to potrafi:
api.languagetool.org
) i możliwość użycia lokalnego serwera (zautomatyzowana instalacja),Używam na co dzień od dwóch lat (głównie do sprawdzania commitów, teraz także do README wszelakich).
Jak ktoś chce poczytać więcej to zapraszam na GitHub
Demko poniżej.
@Maciej Cąderek: Oczekuję od niej, że będę mógł jej użyć w moim programie w JavaScript, bez używania Twojego CLI oraz bez używania API HTTP. Chciałbym zrobić coś w stylu new Gramma().check()
albo gramma().check()
albo dowolnej innej metody lub entry pointa który był zaprojektowany.
Jeśli nie rozumiesz, o czym mówię to dla mnie sygnał że tego nie zrobiłeś; i biblioteka nie udostępnia interfejsu programistycznego, co w efekcie sprawa że dla mnie jest bezwartościowa.
Spędziłem 7 godzin na tropieniu buga w swojej aplikacji, tak śmiesznego, że aż wstyd. No ale klepiąc sobie kod we froncie, w którym jestem dosyć słaby, dostałem taki error na klatę:
WARN in ./node_modules/chokidar/lib/fsevents-handler.js friendly-errors 16:32:21
Module not found: Error: Can't resolve 'fsevents' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\chokidar\lib' friendly-errors 16:32:21
friendly-errors 16:32:21
ERROR Failed to compile with 13 errors friendly-errors 16:32:21
These dependencies were not found: friendly-errors 16:32:21
friendly-errors 16:32:21
* child_process in ./node_modules/nodemon/lib/version.js, ./node_modules/nodemon/lib/monitor/run.js and 1 other friendly-errors 16:32:21
* fs in ./node_modules/chokidar/index.js, ./node_modules/chokidar/lib/fsevents-handler.js and 8 others friendly-errors 16:32:21
friendly-errors 16:32:21
To install them, you can run: npm install --save child_process fs friendly-errors 16:32:21
i Waiting for file changes 16:32:21
i Memory usage: 449 MB (RSS: 633 MB) 16:32:21
i Listening on: http://localhost:8081/ 16:32:21
WARN Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\hiberfil.sys' 16:32:22
ERROR in ./node_modules/nodemon/lib/version.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\nodemon\lib'
ERROR in ./node_modules/nodemon/lib/spawn.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\nodemon\lib'
ERROR in ./node_modules/nodemon/lib/monitor/run.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\nodemon\lib\monitor'
ERROR in ./node_modules/pstree.remy/lib/index.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\pstree.remy\lib'
ERROR in ./node_modules/pstree.remy/lib/tree.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\pstree.remy\lib'
ERROR in ./node_modules/pstree.remy/lib/utils.js
Module not found: Error: Can't resolve 'child_process' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\pstree.remy\lib'
ERROR in ./node_modules/chokidar/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\JDeveloper\mywork\Vue\my-project-fronted-test\node_modules\chokidar'
Pierwsza rzecz to oczywiście Google i zaczynamy zabawę, podmiana wersji node, wyłączanie antywirusów, czyszczenie node_modules
, cachy, temp, package-lock.json
, instalowanie różnych wersji itp itd. No ni cholery nie idzie. Przeglądam swoje ostatnie commity, nic nie widzę, więc piszę na stacku, robię issue na gicie i pykam w rummikub z dziewczyną czekając, może ktoś pomoże...
Nie lubię kończyć tygodnia z przeświadczeniem, ze mój projekt nawet się nie kompiluje, a ja nie wiem czemu. Ciężko mi wtedy odpocząć. Więc z desperacji szukam na piechotę, tworzę nowy projekt, kopiuję package.json
, nuxt-config.js
- działa. Zaczynam kopiować po kolei źródła sprawdzając, kiedy się wysypie. I jeb! Wywaliło się przez jeden moduł vuexa, a dokładnie przez tę linijkę:
import {
reset
} from "nodemon";
Oczywiście ja jej nie napisałem. Dodał ją z automatu jakiś plugin w moim Visual Studio Code, kiedy pisałem mutację o pięknej nazwie reset()
.
Fakt, gdybym się cofnął gitem do poprzednich commitów zamiast tylko przeglądać zmiany, to bym to wcześniej wykrył. Jednak ten kawałek głupiego kodu dodanego przez IDE + całkowicie niepowiązane i nic nie mówiące treści błędów, trochę mi krwi napsuły. Takie meaningless
wyjątki pamiętam jeszcze za czasów siedzenia w Oracle ADF i Webcenter, choć tam sytuację ratowało forum, na którym udzielali się pracownicy oracla i jakoś to rozszyfrowywali..
https://news.ycombinator.com/item?id=26087064
Ciekawy watek, warto sie zapoznac.
Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies
The Story of a Novel Supply Chain Attack
Zaleznosci Nodejs problemem pierwszego swiata
Although this behavior was already commonly known, simply searching GitHub for --extra-index-url was enough to find a few vulnerable scripts belonging to large organizations — including a bug affecting a component of Microsoft’s .NET Core. The vulnerability, which may have allowed adding backdoors to .NET Core, was unfortunately found to be out of scope in the .NET bug bounty program.
- pfff :P
Od pewnego czasu, w wolnych chwilach, tworzę konsolową apkę do sprawdzania gramatyki w tekście (w języku angielskim). Apka weszła właśnie w fazę beta - podstawowe funkcjonalności są gotowe, jak ktoś ma ochotę może przetestować.
Co apka potrafi?
Jak to wygląda (przykład ze stringiem):
W czym to jest napisane?
Cała apka jest napisana w JSie (Node), korzysta z publicznego API grammarbot.io. Dla apki dostępne sa binarki, więc nie trzeba instalować Node'a by ją odpalić.
** Co planuję dodać?**
^^^^^^^
) dla błędów (zamiast/obok kolorków)OK fajne / niefajne, co dalej?
Bardzo prosiłbym o feedback od strony użytkownika (co do kodu to wiem, że czeka mnie refaktor, odezwę się pewnie przed wydaniem wersji 1.0.0):
Linki
Strona projektu: https://caderek.github.io/gramma/
Github: https://github.com/caderek/gramma
#opensource #node.js #js #terminal #gramma
@furious programming: wydaje się, że "ilość" może być: https://www.ekorekta24.pl/liczba-czy-ilosc-czy-te-slowa-sa-wymienne/
Jeśli chcesz wiedzieć, jak wyglądają realia pracy w Niemczech dla takiej marki jak Adidas, to zapraszamy na nasz kolejny live-stream, prosto z Bawarii. ✌
Naszym gościem będzie Damian Busz, fullstack developer, który programuje w Pythonie, choć częstym gościem jest też Node. Damian ma dość osobliwe podejście do kwestii edukacji programisty...
Podczas rozmowy towarzyszyć nam będzie również ** Maciej Olaczek ze szkoły programowania Kodilla** , który wspólnie z Damianem poruszy temat kariery w branży IT.
Zachęcamy: dziś, godzina 20:00, nasz lub FB.
Stay tuned!
https://www.facebook.com/JustJoinIT/videos/1869223773127423/?__tn__=-R
#python #nodejs #javascript #berlin #programowanie #naukaprogramowania #links #fullstack #frontend #backend
@MrMadMatt: Powinienem był doprecyzować, mówiłem o nodejs na backend. Ja osobiście frontend teraz piszę w Rust :p
@Mateuszto: jeśli mówimy o froncie, to teraz sobie testuje bun