Để 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ế.
Why read it: 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ẽ.
Answer 3 short questions to earn reward points for this article. Only do it if you want the points.
3 questions · under a minute · optional
Source: https://www.bram.us/2026/09/20/npm-publish-subfolder. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Chiến dịch npm với package 'indexed-btree' cho thấy tấn công chuỗi cung ứng đang phát triển khi kẻ tấn công ẩn mã độc trong hành vi runtime bình thường của package thay vì trong install-script. Kẻ tấn lợi dụng Node.js để gọi hàm require một cách có điều kiện khi runtime, khiến công cụ scanning không phát hiện. Hậu quả là hàng ngàn máy chủ bị nhiễm malware do package này có trên 12.000 lượt tải hàng tháng. Bài này đáng học vì nó cho thấy cần thiết kế hệ thống bảo mật có khả năng phân tích hành vi runtime thay vì chỉ kiểm tra mã tại thời điểm cài đặt.
Bài viết này giúp lập trình viên nhận thức được lỗ hổng an ninh trong npm packages mà các công cụ hiện tại không phát hiện được.
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.
Cloudflare Tunnels cung cấp giải pháp miễn phí cho việc debug local webhook mà không cần sử dụng ngrok trả phí. Bài hướng dẫn sử dụng Docker Compose để triển khai Cloudflare Tunnels, giải quyết vấn đề timeout session và yêu cầu port forwarding phức tạp. Công nghệ tận dụng Cloudflare's edge network để tạo đường hầm HTTPS tunnel từ internet đến local development environment. Phương án này đặc biệt hữu ích cho developer thường xuyên cần expose local service mà không muốn trả phí cho ngrok bản trả tiền.
Bạn có thể thiết lập các đường hầm Cloudflare ổn định với Docker Compose để gỡ lỗi webhook mà không cần lo về thời gian hết phiên hoặc đăng ký trả phí ngrok.
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ũ.
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.
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.
Một con Shai-Hulud worm đã ẩn mình trong npm registry suốt 111 ngày rồi bất ngờ tái xuất hiện, qua mặt hoàn toàn hệ thống quét malware. Chiến thuật này khai thác khoảng trống thời gian trong cơ chế giám sát của npm, cho phép mã độc tồn tại lâu dài mà không bị phát hiện. Vụ việc này gây ra rủi ro bảo mật đáng kể cho các dự án phụ thuộc vào các package bị nhiễm. Lập trình viên nên cân nhắc thêm các bước kiểm tra bổ sung như analysis bằng công cụ như npm audit hoặc Snyk để phát hiện hành vi đáng ngờ. Điều này cho thấy giới hạn của hệ thống tự động và nhu cầu cần thiết về nhận thức cộng đồng trong việc bảo vệ ecosystem.
Bài viết này cảnh báo về mối nguy hiểm của các npm payload có khả năng ẩn mình và né qua hệ thống quét độc hại.
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.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it