Malicious npm packages evade install-script defenses at runtime
Chiến dịch npm với package 'indexed-btree' cho thấy tấn công chuỗi cung ứng đang phát …
Latest developer news about javascript, summarized in Vietnamese by AI.
Chiến dịch npm với package 'indexed-btree' cho thấy tấn công chuỗi cung ứng đang phát …
Bản phát hành Bun v1.4.2 được ra để sửa hai hồi quy ảnh hưởng tới Elysia và AsyncLocalStorage, cùng một treo trong @discordjs/ws, lỗi giải mã JPEG CMYK trong Bun.Image, một trường hợp crash JIT hiếm và một lỗi GC trên hệ thống musl. Những hồi quy này xuất hiện vì các thay đổi gần đây trong trình biên dịch JIT và bộ thu gom rác, làm ảnh hưởng tới cách lưu trữ trạng thái bất đồng bộ và xử lý kết nối websocket, đồng thời gây ra xử lý sai không gian màu CMYK khi giải mã ảnh. Do đó, các ứng dụng dùng Elysia hoặc AsyncStorage có thể gặp lỗi thời gian chạy, máy chủ sử dụng @discordjs/ws có thể bị treo vô thời hạn, hình ảnh CMYK không hiển thị đúng, và đôi khi toàn bộ tiến trình Bun sẽ crash do JIT hoặc GC. Những sự cố này cho thấy cần phải có bộ test hồi quy chuyên biệt cho các tính năng JIT, GC và xử lý ảnh đặc biệt trước khi phát hành bản mới. Việc duy trì các test tích hợp cho các thư viện phổ biến như Elysia và AsyncLocalStorage giúp phát hiện sớm các vấn đề tương tự trong chuỗi phát triển.
Lập trình viên cần đọc về Bun v1.4.2 để cập nhật kiến thức về các sự cố mới trong thư viện web và công cụ như Elysia, DiscordJS WebSocket, và Image.JS, giúp tránh lỗi trong dự án khi sử dụng phiên bản cũ.
Để tránh lộ thư mục dist/ hoặc src/ trong các đường dẫn import công khai, kỹ thuật này hướng dẫn việc xuất bản chỉ nội dung thư mục build (như ./dist) lên NPM với tư cách là gốc package bằng lệnh npm publish ./dist. Phương pháp này đòi hỏi thư mục phải chứa package.json, README và LICENSE riêng, nên cần script postbuild để sao chép và điều chỉnh đường dẫn package.json. Các biện pháp phòng ngừa được đề xuất để tránh vô tình chạy npm publish thông thường, cùng với lệnh dry-run và npm pack để kiểm tra tarball trước khi xuất bản thực tế.
Phương pháp xuất bản chỉ thư mục build lên NPM giúp tránh rò rỉ thông tin triển khai và giữ cho package sạch sẽ.
ESLint phiên bản 10.11.0 đã được phát hành, đây là công cụ linting có khả năng mở rộng và cấu hình để phát hiện và báo cáo các mẫu mã trong JavaScript. Phiên bản mới này tập trung vào cải thiện hiệu suất và trải nghiệm người dùng với các tính năng mới như auto-fix cho nhiều quy tắc phổ biến. ESLint giúp duy trì chất lượng code một cách dễ dàng nhờ hệ thống quy tắc linh hoạt và khả năng tùy chỉnh cao. Với hơn 50 quy tắc tích hợp sẵn và hỗ trợ plugins từ cộng đồng, ESLint trở thành công cụ không thể thiếu cho các dự án JavaScript quy mô lớn.
Lập trình viên nên đọc bài này để cập nhật các tính năng mới và cải tiến trong ESLint v10.11.0 giúp nâng cao chất lượng code JavaScript.
Node.js 26.8.2 là bản phát hành hiện hành của nền tảng runtime JavaScript đa nền tảng này. Bản cập nhật này tập trung vào cải thiện hiệu năng và ổn định cho các ứng dụng server-side và CLI tools. Các thay đổi đáng chú ý bao gồm tối ưu hóa garbage collection và sửa lỗi trong module system. Nếu bạn đang làm việc với dự án Node.js, việc cập nhật lên phiên bản 26.8.2 sẽ mang lại lợi ích về hiệu năng và bảo mật cho ứng dụng của mình.
Bài viết này cung cấp thông tin cập nhật và đầy đủ về phiên bản Node.js 26.8.2, giúp lập trình viên nắm bắt tính năng mới và cải tiến quan trọng để tối ưu hóa ứng dụng JavaScript của mình.
React Hooks trông đơn giản nhưng bên trong phải xử lý nhiều phức tạp. useState hoạt động qua một data structure gọi là linked list trong Fiber tree. useEffect sử dụng linked list riêng để theo d dependencies và avoid unnecessary re-renders. Hooks thay thế class-based components bằng cơ chế "call order" và "closure" để giữ state giữa renders. Hiểu implementation giúp tối ưu performance và avoid pitfalls như rules of Hooks.
Bài viết giải thích cách hoạt động bên trong của React Hooks giúp lập trình viên hiểu sâu và sử dụng chúng hiệu quả hơn.
Bối cảnh chuyển từ Vue 3 sang React 19 đòi hỏi sự điều chỉnh về tư duy component. Nguyên nhân kỹ thuật nằm ở cách hai framework xử lý component và props khác biệt: React sử dụng function component và JSX, trong khi Vue dùng template system và reactive props. Hệ quả là lập trình viên cần thay đổi cách tiếp cận composition và quản lý state khi làm việc với React. Điều đáng học là sự khác biệt trong cách nhúng component lẫn nhau, với React ưu tiên sử dụng children prop thay vì slots như Vue. Sự chuyển đổi này không chỉ là thay đổi cú pháp mà còn là thay đổi cách tư duy về cấu trúc ứng dụng.
Bài viết này giúp lập trình viên Vue hiểu nhanh cách tiếp cận component và props trong React để chuyển đổi công nghệ hiệu quả.
JavaScript toolchain đang dần chuyển từ JavaScript sang ngôn ngữ khác, với nhiều dự án đang xây dựng lại các công cụ bằng Rust. Oxc nổi bật như một bộ công cụ hiệu suất cao xử lý JavaScript và TypeScript, đang thay thế các công cụ truyền thống như ESLint và Babel. Nguyên nhân là Rust mang lại hiệu năng vượt trội so với JavaScript, đặc biệt trong các tác vụ xử lý code phức tạp. Hệ quả là các nhà phát triển có thể giảm đáng kể thời gian build và tăng tốc độ xử lý. Đáng học hỏi ở đây là xu hướng chuyển đổi ngôn ngữ cho toolchain để tối ưu hóa hiệu năng trong phát triển frontend.
Oxc mang lại hiệu năng vượt trội cho công cụ JavaScript và TypeScript, giúp tối ưu hóa quy trình phát triển frontend hiện đại.
Node.js 24.21.0 là phiên bản LTS mới nhất của nền tảng runtime JavaScript, tiếp tục kế thừa từ phiên bản 20.x LTS trước đó. Phiên bản này tập trung tối ưu hóa hiệu năng và sửa các lỗi bảo mật nhỏ quan trọng. Các cải tiến chính bao gồm tăng tốc độ xử lý các thao tác I/O và giảm 15% memory usage trong một số trường hợp sử dụng. Đối với lập trình viên đang làm việc với ứng dụng production cần sự ổn định, đây là bản update nên xem xét. Tuy nhiên, nếu bạn đang sử dụng các tính năng experimental thì cần kiểm tra kỹ tài liệu release note vì một API đã bị thay đổi.
Node.js 24.21.0 LTS mang lại những cải tiến hiệu suất và tính năng mới giúp lập trình viên tối ưu hóa ứng dụng JavaScript của mình.
Ladybird là một dự án trình duyệt mới được xây dựng từ đầu, nhằm mang lại trải nghiệm hiện đại và khả năng tùy chỉnh cao cho nhà phát triển và người dùng cuối. Trong bản cập nhật này, nhóm đã thêm chế độ duyệt ẩn danh, hỗ trợ nhiều hồ sơ người dùng, cũng như tích hợp chức năng undo/redo cho trình soạn thảo nội dung, đồng thời mở rộng hỗ trợ API Geolocation và WebAudio để nâng cao tính tương tác đa phương tiện. Những thay đổi này đi kèm với việc di chuyển bộ xử lý style và layout sang Rust, giúp tăng tốc compositor khoảng 30 % và giảm mức tiêu thụ bộ nhớ, đồng thời làm cho các tính năng mới như private browsing và profiles hoạt động ổn định hơn. Kết quả cho thấy việc áp dụng Rust cho các thành phần hiệu suất cao mang lại lợi ích rõ rệt về tốc độ và an toàn bộ nhớ, cung cấp bài học quan trọng cho các dự án trình duyệt khác khi cân nhắc di chuyển một phần mã nguồn sang ngôn ngữ này.
Bài viết cập nhật những tiến bộ mới nhất về trình duyệt Ladybird giúp lập trình viên nắm bắt công nghệ và cải thiện hiệu suất phát triển web.
JavaScript’s built‑in Date object long suffered from mutability, zero‑based months and weak timezone support, leading developers to look for a better alternative. Temporal reached TC39 Stage 4 and was shipped in Chrome 144, bringing immutable plain objects, true timezone‑aware types and month numbering from 1 to 12. These changes eliminate common bugs such as off‑by‑one month errors and unintended mutations, making date/time code clearer and easier to test. The experience shows that fixing core design flaws with an immutable, standards‑driven API greatly boosts reliability, so teams should begin migrating to Temporal once it gains wider browser support. Adopting such APIs early can reduce technical debt and improve overall code quality.
Temporal giải quyết triệt để những nhược điểm lớn nhất của đối tượng Date trong JavaScript bằng kiểu dữ liệu không thể thay đổi, hỗ trợ múi giờ chính xác và loại bỏ việc tháng được đánh số bắt đầu từ 0.
Hướng dẫn đơn giản cho người mới bắt đầu sắp xếp dự án React với cấu trúc thư mục rõ ràng, giải thích vai trò của từng thư mục như assets, components, pages, layouts, hooks, context, services, utils, constants, routes và styles. Bài viết cũng đề cập đến việc giữ component nhỏ gọn, tổ chức theo tính năng cho ứng dụng lớn và thống nhất quy ước đặt tên.
Những kiến thức về cấu trúc thư mục React giúp bạn tránh rối rắm và xây dựng dự án hiệu quả từ đầu, từ đó tiết kiệm thời gian và tránh lỗi khi phát triển ứng dụng lớn.
Node.js 24.20.0 là phiên bản LTS mới nhất của môi trường chạy JavaScript đa nền tảng, miễn phí và mã nguồn mở. Nó cho phép các nhà phát triển viết mã JavaScript để xây dựng máy chủ, ứng dụng web, công cụ dòng lệnh và script mà không cần phụ thuộc vào trình duyệt. Với bản phát hành này, Node.js tiếp tục hỗ trợ các tính năng ES2023 và cải thiện hiệu suất V8, giúp giảm latency trong các dịch vụ I/O mạnh. Sự ổn định của chuỗi LTS đảm bảo rằng các ứng dụng sản xuất nhận được bản vá bảo mật và cập nhật tối thiểu trong vòng 30 tháng, giảmภาระ bảo trì. Do đó, khi quyết định sử dụng Node.js cho dự án backend, chọn phiên bản 24.20.0 LTS là cách để cân bằng giữa tính năng mới và hỗ trợ dài hạn.
Bài viết cập nhật Node.js 24.20.0 (LTS) giúp lập trình viên nắm bắt những cải tiến và tối ưu hóa mới nhất cho ứng dụng JavaScript của mình.
tsgolint phiên bản ổn định v7 đã được ra mắt, mang đến khả năng linting TypeScript với tốc độ Go bản địa. Công cụ này tích hợp type-aware linting bằng cách tận dụng phân tích ngữ nghĩa của TypeScript thông qua compiler typescript-go. Oxlint nhận được bản cập nhật này, giúp cải thiện hiệu suất phân mã nguồn. Lập trình viên nên cân nhắc dùng công cụ này vì nó kết hợp được sức mạnh phân tích type của TypeScript với hiệu năng vượt trội của Go.
Lập trình viên nên đọc bài này để biết về tsgolint v7 - công cụ linting TypeScript có khả năng phân tích ngữ nghĩa mạnh mẽ được xây dựng bằng Go, giúp tăng tốc độ phân tích mã nguồn đáng kể.
Cloudflare đã cải tiến module registry cho Workers để hỗ trợ Node.js, cho phép ứng dụng lên đến 64 mebibytes. Họ triển khai hệ thống module registry dựa trên URL với tính năng import.meta, lazy compilation và shared code caches để tăng hiệu suất. Biến đổi này giúp giảm thiểu lỗi và cung cấp thông báo báo lỗi rõ ràng hơn. Sự phát triển này mang lại lợi ích lớn cho lập trình viên quen thuộc với Node.js muốn chuyển sang nền tảng Cloudflare.
Bài viết này giúp lập trình viên hiểu cách Cloudflare Workers hiện hỗ trợ Node.js với module registry mới và các tính năng ưu việt.
Bài viết mô tả một animation minh hoạ cách động cơ thể thao quay ở 9000 RPM, tương đương 150 vòng quay trục khuỷu mỗi giây trên các cấu hình inline-4, V6, boxer-6 hoặc flat-plane V8. Bối cảnh là so sánh tốc độ quay này với tần số làm mới của màn hình thường dùng, thường là 60Hz hoặc 120Hz. Nguyên nhân kỹ thuật là việc đổi RPM sang vòng mỗi giây (9000 ÷ 60 = 150) cho thấy mỗi khung hình ở 60Hz chỉ cattur được một phần nhỏ của một vòng quay. Hệ quả là nếu chỉ dựa trên màn hình 60Hz, người xem sẽ không thể cảm nhận được sự mượt mà thực sự của động cơ ở tốc độ cao, dẫn tới hiểu lầm về hiệu suất. Điều đáng học là khi trực quan hoá hiện tượng máy móc quay nhanh, cần sử dụng tốc độ làm mới màn hình đủ cao (>= 144Hz) hoặc dùng kỹ năng chậm motion để tránh bỏ qua chi tiết quan trọng.
Bài này giúp bạn hiểu cách động cơ thể thao hoạt động ở tốc độ cực cao vượt qua khả năng cảm nhận của mắt người.
Thư viện Prop For That của Adam Argyle cung cấp các CSS custom properties động, cho phép truy cập vào những thuộc tính CSS thông thường không thể truy xuất như vị trí con trỏ, tốc độ cuộn, trạng thái form hay thời gian hiện tại. Nhà phát triển chỉ cần thêm thuộc tính data vào HTML, sau đó sử dụng trực tiếp các biến CSS này trong stylesheet mà không cần viết JavaScript.
Lập trình viên nên đọc bài này để khám phá cách Prop For That giúp tối ưu hóa giao diện người dùng bằng cách kết nối trực tiếp CSS với dữ liệu động từ HTML mà không cần JavaScript, mở rộng khả năng tùy biến UI một cách đơn giản và hiệu quả.
ECMA International vừa phê duyệt ECMAScript 2026 (ES2026) vào ngày 30/6, phiên bản thứ 17 của đặc tả JavaScript. Bản cập nhật bổ sung nhiều tính năng mới như Math.sumPrecise, Iterator.concat, Array.fromAsync, Error.isError, phương thức mới cho Map/WeakMap, hỗ trợ chuyển đổi Uint8Array sang hex/base64, cùng cải tiến cho JSON.parse và JSON.stringify.
Lập trình viên nên đọc bài này vì ECMAScript 2026 mang đến những tính năng mới như Array.fromAsync và JSON.rawJSON, giúp cải thiện hiệu suất và tính linh hoạt trong xử lý dữ liệu đồng bộ/không đồng bộ và định dạng JSON trong các dự án hiện đại.
Một nhà phát triển chia sẻ về việc giảm thiểu sử dụng destructuring trong JavaScript, vì kỹ thuật này tối ưu cho việc viết code hơn là đọc hiểu, nhất là trong các hàm lớn khi biến mất đi ngữ cảnh gốc. Ông vẫn áp dụng destructuring khi thực sự hữu ích nhưng cân nhắc xem liệu việc loại bỏ object có thật sự cải thiện sự rõ ràng hay chỉ đơn thuần rút ngắn code.
Những lập trình viên muốn cải thiện chất lượng mã và tránh những thói quen làm giảm khả năng đọc hiểu, đặc biệt trong các dự án phức tạp, nên đọc để học cách sử dụng destructuring một cách thông minh và bảo tồn tính rõ ràng trong code.
Thay vì dùng localStorage hack, giờ đây có thể dùng BroadcastChannel API để đồng bộ tab trình duyệt một cách tự nhiên, ví dụ như đăng xuất cùng lúc trên nhiều tab hay cập nhật giỏ hàng tức thì.
Lập trình viên nên đọc bài này để tìm hiểu cách sử dụng BroadcastChannel thay vì giải pháp thủ công với localStorage để đồng bộ hóa dữ liệu giữa các tab mà không cần server, giúp giải quyết vấn đề logout hoặc cập nhật cart một cách hiệu quả và an toàn hơn.
React app thường tải một lượng JavaScript không cần thiết, gây ra hiệu năng kém. Nguyên nhân là do nhiều tính năng hoàn toàn có thể thực hiện bằng native browser features như :has() selector, Popover API, scroll-snap carousels và CSS animations. Hệ quả là app trở nên chậm, tốn tài nguyên và khó bảo trì. Đáng học ở đây là việc tối ưu bằng cách giảm phụ thuộc vào JavaScript, tận dụng các API trình duyệt hiện có. Phân tích cho thấy việc thay thế một số components React bằng CSS và DOM APIs giúp giảm tới 40% bundle size.
Bài viết này giúp bạn đơn giản hóa ứng dụng React bằng cách tận dụng các tính năng trình duyệt nguyên bản, giảm thiểu sự phụ thuộc vào JavaScript.
Cảnh báo về aria-hidden bị chặn là đúng, nhưng hầu hết các cách khắc phục bạn tìm thấy đều sai. Bài viết hướng dẫn cách sửa lỗi này đúng cách.
Lập trình viên nên đọc bài này để tránh những lỗi phổ biến và sai lầm trong cách xử lý thuộc tính aria-hidden trong HTML, giúp cải thiện tính khả dụng (accessibility) của ứng dụng mà không gây ra những vấn đề kỹ thuật không mong muốn.
Node.js 26.5.0 bổ sung các tính năng mới như blob.textStream() trên buffer API, cờ --experimental-import-text cho ESM, cải tiến giám sát độ trễ vòng lặp sự kiện trong perf_hooks, và hỗ trợ báo cáo nhóm TLS. Bản phát hành cũng khắc phục nhiều lỗi trong HTTP, crypto, streams, VFS cùng cập nhật dependencies quan trọng.
Lập trình viên Node.js nên đọc bài này để cập nhật về các tính năng mới như blob.textStream() và --experimental-import-text cho ESM, cũng như cải tiến về hiệu suất, an toàn TLS và bug fix trong các module quan trọng như HTTP, crypto và streams, giúp nâng cao hiệu năng và bảo mật ứng dụng của họ.
npm 12 mặc định tắt cài đặt scripts trong quá trình cài đặt package, buộc người dùng phải cho phép rõ ràng khi chạy scripts. Thay đổi này nhằm tăng cường bảo mật khi registry npm chuyển sang mô hình tin cậy minh bạch.
Lập trình viên nên đọc bài này vì npm 12 thay đổi cơ chế bảo mật bằng cách cắt bỏ mặc định quyền chạy script từ các gói npm, giúp giảm rủi ro từ các cuộc tấn công thông qua các lệnh tự động chạy trong dự án.
Tác giả muốn tạo ra các hiệu ứng chữ cuối cùng trong terminal mà không cần phụ thuộc vào thư viện bên ngoài. Anh đã phát triển tte.js, một thư viện chạy trên trình duyệt dùng Canvas để tạo ra 37 hiệu ứng khác nhau cho văn bản và ASCII art. Vì được viết bằng JavaScript thuần túy và không có bất kỳ dependency nào, tte.js có thể được tích hợp dễ dàng vào bất kỳ dự án web nào mà không tăng kích thước bundle. Thư viện này cho thấy cách sử dụng Canvas có thể mô phỏng các hiệu ứng terminal phức tạp mà vẫn giữ hiệu suất tốt. Đối với những lập trình viên đang cân nhắc đọc bài gốc, đây là một ví dụ thực tế về cách tối ưu hoá hiệu ứng đồ họa bằng JavaScript không cần framework.
Cung cấp 37 hiệu ứng văn bản Canvas tinh tế giúp lập trình viên nâng cao kỹ năng xử lý đồ họa web.
Một nhà phát triển chia sẻ kinh nghiệm xây dựng ứng dụng web phức tạp hoàn toàn bằng JavaScript thuần (vanilla JS) và Web Components, lập luận rằng các framework hiện đại như React, Angular, Vue hay Svelte tạo ra sự phức tạp không cần thiết khi tước quyền kiểm soát khỏi nhà phát triển. Tác giả nhấn mạnh rằng trình duyệt vốn đã là một framework, và các công nghệ web bản địa (HTML, CSS, JS) đã đủ mạnh để xây dựng ứng dụng vững chắc mà không cần pipeline build, TypeScript hay các lớp trừu tượng state reactive.
Là người phát triển muốn tối ưu hiệu suất và kiểm soát toàn bộ quy trình xây dựng ứng dụng mà không phụ thuộc vào các framework bên ngoài, bài viết này sẽ giúp bạn khám phá cách xây dựng ứng dụng mạnh mẽ bằng JavaScript nguyên sinh và Web Components, cùng các công cụ tự phát triển để giải quyết những vấn đề thực tế mà các framework hiện đại thường mang lại.
SvelteKit 3 preview ra mắt với các module $app mới, hỗ trợ lỗi zero-config props và tính năng refreshAll.
Là người phát triển web cần tối ưu hóa ứng dụng hiện đại, SvelteKit 3 preview mang lại những tính năng mới như $app modules và refreshAll sẽ giúp bạn xây dựng dự án nhanh hơn với cấu hình ít nhất, từ đó tiết kiệm thời gian và công sức trong quá trình phát triển và bảo trì.
Bài viết hướng dẫn cách tối ưu hóa việc lấy dữ liệu song song trong Next.js bằng cách kết hợp Suspense, Promise.all và Promise.allSettled nhằm tránh tình trạng loading kéo dài.
Nếu bạn muốn tối ưu hóa hiệu suất ứng dụng Next.js bằng cách xử lý tải dữ liệu song song một cách hiệu quả và tránh tình trạng chặn UI với các spinner không dứt, bài viết này sẽ cung cấp cách kết hợp Suspense, Promise.all và Promise.allSettled để giải quyết vấn đề.
Phiên bản Deno 2.9 bổ sung công cụ deno desktop để xây dựng ứng dụng desktop native từ công nghệ web, tạo ra các tệp thực thi duy nhất với backend webview hoặc CEF. Cải tiến đáng chú ý bao gồm hỗ trợ di chuyển từ lockfile npm/pnpm/yarn/Bun, snapshot testing, test theo tham số, tối ưu hiệu suất khởi động lạnh gấp đôi và giảm 3 lần bộ nhớ khi tải nặng.
Nếu bạn đang tìm cách xây dựng ứng dụng desktop hiệu quả từ công nghệ web, nâng cấp khả năng kiểm thử và an toàn trong dự án của mình, hoặc muốn tối ưu hóa hiệu suất và quản lý phụ thuộc, Deno 2.9 sẽ là công cụ quan trọng giúp bạn giải quyết những thách thức này một cách hiện đại và hiệu quả.
Lỗ hổng prototype pollution không phải lỗi của Node.js hay thư viện, mà phụ thuộc vào cách ứng dụng ngăn chặn các lỗ hổng bảo mật.
Lập trình viên nên đọc bài này để hiểu cách bảo vệ Node.js khỏi nguy cơ prototype pollution—một lỗ hổng thường bị bỏ qua mà có thể phá hủy tính bảo mật và tính ổn định của ứng dụng.
Reddit quyết định xem HTML thuần là không an toàn, khiến nhiều người bất ngờ và không hài lòng.
Những lập trình viên nên đọc bài này để hiểu cách Reddit phát triển ý kiến về HTML đơn giản có thể trở thành một vấn đề an toàn bảo mật, giúp họ tránh những rủi ro về mã hóa không an toàn trong các dự án tương lai.
Node.js là môi trường runtime JavaScript miễn phí, mã nguồn mở, đa nền tảng, cho phép lập trình viên tạo máy chủ, ứng dụng web, công cụ dòng lệnh và script.
Là người phát triển Node.js, bạn nên đọc để cập nhật về các tính năng mới nhất trong API tài liệu, giúp tối ưu hiệu suất, bảo mật và mở rộng khả năng xây dựng ứng dụng JavaScript một cách hiệu quả hơn.
pnpm 12.6 giới tính tính năng tự động loại bỏ sự trùng lặp dependency và relocatable packages. Phiên bản này sử dụng thuật toán pnpm-lock.yaml để phát hiện các bản sao lưu của cùng một dependency trong node_modules. Hệ quả là kích thước bundle giảm đáng kể, ví dụ dự án với 100 dependency có thể chỉ chiếm 50MB thay vì 200MB như trước. Điều đáng học là cơ chế hoisting của pnpm 12.6 cho phép các package được tái sắp xếp mà không phá vỡ cấu trúc cây dependency. Phiên bản mới cũng hỗ trợ tốt hơn với workspace và monorepo, giúp lập trình viên quản lý code phức tạp hiệu quả hơn.
Phiên bản pnpm 12.6 tự động loại bỏ trùng lặp dependency và hỗ trợ tái định vị, giúp tối ưu hóa dự án và giảm thiểu dung lượng lưu trữ.
Tháng 7/2026 giới thiệu cuộc thi CodeTV GSAP Webflow, sự kiện Astro Germany cùng những cập nhật mới khác.
Là người phát triển web muốn tối ưu hiệu suất, tính tương tác và tương thích đa nền tảng cho dự án của mình, bạn nên đọc bài này để cập nhật những tính năng mới nhất của Astro—cung cấp công cụ mạnh mẽ để xây dựng trang web nhanh hơn, an toàn hơn và tương thích hơn với các công nghệ hiện đại.
Phiên bản Node.js 26.8.0 (Current) được ra mắt như một môi trường chạy JavaScript miễn phí, mã nguồn mở và đa nền tảng. Nó được xây dựng trên motore V8 của Chrome và cung cấp API non‑blocking I/O, cho phép xử lý đồng thời nhiều kết nối mà không cần luồng bổ sung. Nhờ đó, các lập trình viên có thể xây dựng máy chủ HTTP, ứng dụng web, công cụ dòng lệnh và script chỉ bằng một ngôn ngữ JavaScript, giảm chi phí chuyển đổi ngữ cảnh giữa frontend và backend. Việc chọn Node.js 26.8.0 nghĩa là bạn nhận được một runtime ổn định, hỗ trợ các tính năng ES2023 mới nhất và có hệ thống package npm phong phú, giúp tăng tốc độ phát triển và duy trì mã nguồn. Ngoài ra, khả năng chạy trên Windows, macOS và Linux mà không thay đổi mã nguồn làm cho việc triển khai ứng dụng trở nên đơn giản và nhất quán.
Lập trình viên nên đọc bài này để cập nhật những tính năng và cải tiến mới nhất trong phiên bản Node.js 26.8.0.
Bối cảnh của vấn đề là kích thước ứng dụng desktop JavaScript thường quá lớn, vượt quá 10MB. Nguyên nhân kỹ thuật là do việc đóng gói các dependency như Node.js và các module của Electron làm tăng đáng kể kích thước ứng dụng. Hệ quả là người dùng phải mất nhiều thời gian tải xuống và tiêu tốn không gian lưu trữ trên thiết bị. Điều đáng học là các giải pháp như NW.js, GoJS hay sử dụng Bun giúp giảm kích thước xuống còn dưới 10MB bằng cách tối ưu hóa việc đóng gói và dependency management.
Bài viết này hướng dẫn tạo ứng dụng desktop JavaScript nhỏ gọn dưới 10MB, giúp tối ưu hóa hiệu năng và trải nghiệm người dùng.
Trình biên dịch React mới đã thay thế hoàn toàn kiến thức về memoization truyền thống, hướng các nhà phát triển chuyển sang học các kỹ thuật tối ưu hóa mới như tự động ghi nhớ (automatic memoization) và quản lý trạng thái hiệu quả.
Nếu bạn đang sử dụng React và muốn tối ưu hiệu suất cho các thành phần có nhiều state hoặc key, hãy đọc bài này để hiểu cách React Compiler thay thế thủ thuật memoization thủ công bằng các công cụ tự động mới, giúp giảm code và tăng hiệu suất đáng kể.
ESLint vừa phát hành phiên bản 10.9.0, công cụ linting phổ biến để kiểm tra mã JavaScript. Phiên bản này nâng cấp hệ thống plugin và cấu hình, cho phép tùy chỉnh quy tắc sâu hơn mà không cần thay đổi core. Nhờ đó, các nhà phát triển có thể phát hiện sớm các mẫu mã lỗi, kiểu dữ liệu không nhất quán và vi phạm phong cách với ít lỗi lặp hơn. Cải thiện hiệu suất của quá trình lint cũng giúp giảm thời gian chạy CI/CD trong các dự án lớn. Bài học là việc cập nhật ESLint định kỳ giúp duy trì chất lượng mã và tận dụng tối đa khả năng mở rộng của công cụ.
Lập trình viên nên đọc bài này để cập nhật những tính năng mới và cải tiến quan trọng trong ESLint v10.9.0 giúp nâng cao chất lượng code và tăng hiệu quả công việc.
Safari trước đây gặp lỗi khi sử dụng top‑level await vì bộ nạp module của nó còn dựa trên bản đề xuất WHATWG Loader đã bị bỏ và không tuân thủ đầy đủ spec ECMAScript. Nguyên nhân là bộ nạp cũ được viết bằng JavaScript, dẫn tới lỗi “accessed before initialization” và thứ tự đánh giá module không chính xác. Để khắc phục, nhóm WebKit đã viết lại toàn bộ bộ nạp module từ đầu bằng C++ nguyên bản và kiểm tra kỹ lưỡng bằng fuzzing, test262, WPT và các test case do Bun engineers cung cấp. Kết quả là Safari 27 beta và Safari Technology Preview 251 đã полностью hỗ trợ top‑level await mà không còn những lỗi trước đây. Bài học là đầu tư vào việc viết lại thành phần lõi bằng ngôn ngữ native và thực hiện bộ kiểm tra đa dạng giúp đạt được tuân thủ spec và ổn định lâu dài. Nhà phát triển có thể kiểm tra tính năng này ngay trong Safari Technology Preview 251 hoặc bản beta Safari 27 để xác nhận việc top‑level await hoạt động đúng như mong đợi.
Bài này giúp lập trình viên hiểu Safari đã sửa lỗi top-level await ảnh hưởng đến cách module được tải và thực thi.
Elena là một thư viện nhỏ gọn, đơn giản để xây dựng Progressive Web Components.
Elena là giải pháp tối ưu cho việc xây dựng các thành phần web tiến bộ với kích thước nhẹ và dễ sử dụng, giúp bạn tiết kiệm thời gian và công sức trong quá trình phát triển ứng dụng web hiện đại.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.