npm: Tăng tốc gấp 3 lần và cài đặt package offline
Javascript
243
nodejs
72
npm
5
White

Khoa Nguyen viết ngày 13/04/2016

Chắc chắn là ai đã từng làm việc với npm thì đều biết một điều rằng npm nó siêu chậm. Vì vậy mình hay hạn chế chạy npm install đến mức tối thiểu và thường không nhận được patch update, ... cũng như nhiều vấn đề khác phát sinh. Trong bài viết này mình sẽ giới thiệu với các bạn một package không những giúp tăng tốc npm mà còn cho phép bạn cài đặt package offline.

local-npm

local-npm sẽ tạo ra 1 replicate cho toàn bộ database của npm (chỉ hơn 1GB một tí thôi) cũng như là cache các package đã tải về. Vì vậy bạn sẽ không bao giờ tải một file 2 lần.

Sử dụng

  • Cài đặt
npm install --global local-npm
  • Tạo một thư mục để chứa dữ liệu
mkdir ~/local_npm
  • Chạy local-npm server
local-npm -d ~/local_npm
  • Lúc này bạn sẽ thấy giao diện chính của chương trình xuất hiện

Giao diện của local-npm

  • Thiết lập cho npm tải dữ liệu từ local-npm
npm set registry http://127.0.0.1:5080
  • Nếu bạn không thích dùng local-npm nữa thì gõ lệnh
npm set registry https://registry.npmjs.org
  • local-npm còn công cấp cho bạn một giao diện kiểu như npm để bạn có thể duyệt các package offline. Nhưng bạn phải đợi cho local-npm replicate hoàn toàn database của npm về máy đã. Bạn có thể truy cập vào [http://localhost:5080/_browse/#/] để sử dụng

local-npm UI

Vậy là xong. local-npm sẽ tự động replicate database của npm về, mỗi khi bạn tải một package nào về thì nó sẽ tự động cache, đảm bảo là bạn không bao giờ phải tải một file nào đó 2 lần.

Tự động chạy local-npm khi khởi động máy

Ở đây mình hướng dẫn cho Ubuntu 15.04

  • Mở dash và tìm kiếm Startup Applications

dash search

  • Tạo mới một entry để tự khởi động command ở trên mỗi khi mở máy

startup setup

Done. npm is not a jerk anymore. :D

Benchmark

Nói nhảm như vậy là đủ rồi. Mình sẽ thực hiện benchmark mẫu cho các bạn xem.

Mình sẽ cài đặt clone và cài đặt các dependencies của React.js.

Các số bên dưới là kết quả cuối cùng sau 3 lần cài đặt để đảm bảo các package đều được local-npm và npm cache đầy đủ.

  • local-npm (đã replicate 100% database):
$ time npm install

real    0m49.944s
user    0m50.128s
sys 0m4.436s
  • npm registry
$ time npm install

real    2m39.070s
user    1m2.968s
sys 0m5.272s

Như các bạn thấy thì thời gian cài đặt khi dùng local-npm giảm tới 3 lần. Và tất nhiên kết quả này là hoàn toàn đoán trước được vì với local-npm thì bạn đang copy file từ ổ cứng mà. :smile:

Kết luận

Việc thiết lập local-npm sẽ giúp các bạn tiết kiệm khá nhiều thời gian và băng thông khi làm việc với Javascript. Nếu các bạn làm việc ở một văn phòng thì việc thiết lập một local-npm server càng hiệu quả hơn nữa.

Hy vọng bài viết giúp ích cho các bạn

P/s: vẫn còn cách khác để tăng tốc npm. Hãy chờ phần 2 nhé

Bài gốc từ blog của mình

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Khoa Nguyen

14 bài viết.
62 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
39 3
Nếu bạn là thành viên của (Link) thì các bạn có thể đã biết đến khóa học của (Link) Khóa học này (có phí) gồm các (Link) kèm với đó là (Link). (Ả...
Khoa Nguyen viết gần 2 năm trước
39 3
White
30 3
(Ảnh) Giới thiệu Đi câu cá hay mấy anh Tây hay gọi Phishing có nghĩa là lừa đảo nhằm đánh cắp tài khoản, mật khẩu, thẻ tín dụng của người dùng. ...
Khoa Nguyen viết hơn 1 năm trước
30 3
White
27 8
Động lực Sau khi đọc bài viết (Link) của bác @quocnguyen thì mình có giới thiệu cho em gái trang phim.clgt.vn . Nó coi được 5 phút thì bảo là cái ...
Khoa Nguyen viết hơn 1 năm trước
27 8
Bài viết liên quan
White
43 8
Tăng sức mạnh cho javascript với lodash Lần này mình sẽ giới thiệu 1 thư viện javascript vô cùng bá đạo có tên là "lodash]1]", có thể nói nó là LI...
Huy Hoàng Phạm viết hơn 2 năm trước
43 8
White
25 8
Lâu không post gì muốn viết một bài dài dài về js cơ mà đau đầu quá viết mãi không xong, thôi post bài ngắn vậy :smiley: Lấy screen size ở đây tôi...
Hoàng Duy viết hơn 2 năm trước
25 8
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
14 bài viết.
62 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!