Importul unui pachet Node nu stabilește durata fișierelor
Cloudflare Workers acceptă API-uri Node de fișiere cu durate distincte. Verificați fișierele incluse, spațiul temporar pe cerere și persistența la migrare.
Un pachet se poate importa cu succes și poate depinde totuși de fișiere care nu vor exista la următoarea operațiune. Mutarea unui program Node pe Cloudflare Workers cere, așadar, examinarea presupunerilor despre fișiere și procese. Urmăriți fiecare fișier de la creare până la ultimul cititor necesar și decideți unde aparține persistența. Disponibilitatea API-ului poate elimina muncă de adaptare fără să stabilească durata stocării pe care o așteaptă aplicația.
Privind din noiembrie 2026, Cloudflare a publicat retrospectiva despre compatibilitatea Node și un articol mai larg despre platforma pentru dezvoltatori pe 25 septembrie 2025. Articolele descriu o platformă în dezvoltare, nu o promisiune universală de echivalență completă cu Node. Anunțul sistemului de fișiere este datat 15 august 2025, înaintea retrospectivei din septembrie. Prezentarea datei retrospectivei drept prima disponibilitate a API-ului ar denatura cronologia.
Retrospectiva Node din septembrie descrie și spațiu temporar partajat între cererile unui Durable Object, negând explicit persistența peste reporniri sau publicări. Este o afirmație delimitată din anunț, nu stocarea durabilă a obiectului. Analiza de mai jos privește cereri Workers obișnuite, fără stare; migrarea unui Durable Object cere propria examinare pentru versiunea concretă.
Trei locuri presupun trei contracte diferite
Referința oficială actuală despre sistemul de fișiere, consultată pe 9 noiembrie 2026, descrie un sistem virtual bazat pe memorie. /bundle expune modulele incluse ca fișiere doar pentru citire. /tmp oferă spațiu temporar în care se poate scrie, unic pentru fiecare cerere. /dev expune dispozitive de caractere selectate, inclusiv /dev/null și /dev/zero. Sunt afirmații din documentația actuală, separate de anunțul datat din 2025, nu dovezi că toate detaliile prezente existau în acea zi.
Un șablon inclus poate corespunde bine codului care deschide un fișier prin cale. Proprietatea necesară este ca șablonul selectat să însoțească versiunea publicată și să poată fi citit. Aceasta nu spune nimic despre scrierea modificărilor înapoi în pachetul inclus. Un pachet care încarcă valori implicite și rescrie ulterior aceeași cale a trecut de la citire la alt contract de stocare.
Spațiul temporar poate susține activități intermediare într-o cerere. Un convertor ilustrativ poate crea fișiere de lucru și le poate consuma înainte să returneze rezultatul. Dacă altă cerere urmează să le citească mai târziu, proiectarea a trecut o limită de durată. Alegerea unui nume identic nu creează stare comună, iar o scriere reușită nu dovedește că fișierul supraviețuiește altei cereri sau unei noi publicări.
Căile dispozitivelor au propria semantică. Nu sunt locuri pentru păstrarea unui rezultat al aplicației doar fiindcă apar alături de alte căi într-un arbore de directoare. Examinați de ce le deschide o dependență, ce așteaptă de la citiri sau scrieri și dacă API-ul concret este acceptat. Aspectul familiar al sistemului de fișiere este o facilitate, nu dovada existenței unui disc persistent de server convențional.
Compatibilitatea are o dată și o opțiune de activare
Anunțul din august 2025 spune că node:fs este disponibil implicit cu nodejs_compat și o dată de compatibilitate de 2025-09-01 sau ulterioară. Pentru date anterioare documentează enable_nodejs_fs_module împreună cu nodejs_compat; numește și disable_nodejs_fs_module. Acestea sunt limitele istorice de activare relevante pentru anunț. Articolul spune explicit că fișierele temporare nu persistă și nu sunt partajate între cereri sau între instanțe Workers.
Documentația actuală de compatibilitate Node, citită pe 9 noiembrie 2026, adaugă o limită ulterioară: datele de compatibilitate începând cu 2026-08-04 activează implicit compatibilitatea Node. Această opțiune implicită ulterioară nu ar trebui atribuită unei configurații din 2025. Consemnați data și opțiunile aplicabile când evaluați un Worker existent; simpla afirmație că este activată compatibilitatea Node omite o parte din contract.
Aceeași referință actuală deosebește implementările native de adaptoarele care permit importul, dar produc erori la apelarea metodelor. O verificare limitată la import dovedește, așadar, foarte puțin despre execuția efectivă a unui pachet. Urmăriți traseele pe care le va apela aplicația, inclusiv tratarea erorilor și funcționalitățile opționale. Articolul interpretează limita documentată fără să schimbe configurații, să acceseze tokenuri, să publice un Worker sau să ruleze un experiment cu sistemul de fișiere.
O cerere nu deține un proces permanent
Explicația actuală despre funcționarea Workers, consultată în noiembrie 2026, descrie mediile izolate și posibila lor eliminare. Nu oferă aplicației un proces permanent rezervat tuturor cererilor ulterioare. Păstrarea unui nume de fișier într-o variabilă de modul nu poate extinde durata documentată a fișierului numit. O cale memorată și un rezultat persistent sunt proprietăți separate.
Luați un export ilustrativ în doi pași. O cerere începe generarea unui raport, iar alta îl descarcă ulterior. Dacă raportul există doar în spațiul temporar local cererii, al doilea pas nu are un contract de persistență pe care să se bazeze. O proiectare durabilă ar avea nevoie de o destinație explicită de stocare, un identificator și o stare de finalizare înțelese de ambii pași. Serviciul potrivit depinde de nevoile de acces, coerență și păstrare ale aplicației; API-ul de fișiere nu îl alege singur.
Traseele de eșec merită aceeași examinare. O dependență poate scrie un cache, un fișier de blocare sau un marcaj de recuperare care pare secundar până când o reîncercare depinde de el. Întrebați dacă pierderea fișierului costă doar recalculare sau schimbă corectitudinea. Un fișier de lucru inofensiv și singura înregistrare a unei lucrări acceptate de la client cer decizii diferite. Este analiză de arhitectură, nu relatarea unei compatibilități testate sau a unui serviciu de export implementat.
Bibliotecile fără stare au un traseu mai simplu
Contraargumentul cel mai puternic este o bibliotecă ce citește doar resurse incluse sau folosește fișiere temporare exclusiv într-o cerere. Presupunerile ei pot corespunde deja mediului, astfel încât înlocuirea fiecărui API de fișiere cu o abstracție nouă ar adăuga muncă inutilă. Evaluați traseele reale, fără să respingeți un pachet fiindcă menționează Node sau folosește sistemul de fișiere.
Pentru dezvoltare software la comandă, faceți ca inventarul migrării să descrie autorul scrierii, cititorul și durata necesară a fișierelor importante. Păstrați utilizările compatibile fără stare și atribuiți rezultatelor persistente un loc explicit. Acceptați un pachet după ce traseele lui importante respectă contractele, cu versiunea și setările de compatibilitate consemnate. Importul reușit este o pregătire utilă; examinarea stocării determină dacă aplicația își poate respecta promisiunile după încheierea cererii.
Paul