Cập nhật javascript có quan trọng không?

Các thư viện JavaScript phổ biến mà tất cả chúng tôi sử dụng trong các giải pháp của mình đang liên tục được cải thiện. Bạn có chắc chắn rằng bạn sử dụng các phiên bản mới nhất với các bản sửa lỗi, bản vá và bản cập nhật bảo mật gần đây không?

Không có thế giới nào không có thư viện JavaScript

Ngày nay, việc xem xét xây dựng một giải pháp phía máy khách không sử dụng gì ngoài JavaScript đơn giản là điều không tưởng. Có hàng trăm, hàng nghìn thư viện có sẵn trên internet có thể giúp bạn giải quyết các vấn đề thường gặp và tập trung vào những vấn đề thực sự quan trọng đối với tổ chức của bạn. Vì vậy, thay vì tự mình xây dựng mọi thứ, bạn nên cân nhắc sử dụng các thư viện mà vấn đề cụ thể đã được giải quyết – rất có thể là theo cách mạnh mẽ hơn

Luôn cập nhật, nhưng làm thế nào

Nhưng giống như bất kỳ mã nào mà bạn không sở hữu, bạn phải chú ý đến các bản cập nhật và bản sửa lỗi quan trọng. Việc sử dụng các phiên bản mới nhất của thư viện JavaScript cho phép bạn không chỉ tránh rủi ro mà còn có thể giúp bạn cải thiện hiệu suất của các giải pháp của mình

Với số lượng thư viện bạn sử dụng và các giải pháp khác nhau mà bạn xây dựng và triển khai, hầu như không thể theo dõi phiên bản thư viện nào được sử dụng trong giải pháp nào và thư viện nào sẽ được cập nhật. Tin tốt là bạn không cần phải làm thủ công

Nhận thông báo về các bản cập nhật thư viện JavaScript bằng SPCAF

Cập nhật javascript có quan trọng không?

Nếu bạn đã tích hợp SPCAF với hệ thống xây dựng của mình, thì mỗi khi bạn xây dựng dự án, SPCAF sẽ phân tích giải pháp của bạn, phát hiện thư viện JavaScript nào và phiên bản nào bạn sử dụng, kiểm soát xem có phiên bản mới hay không và thông báo cho bạn nếu có bản cập nhật phù hợp. Vì SPCAF tính đến phiên bản chính mà bạn sử dụng, nó không chỉ đề xuất bạn nên nâng cấp lên phiên bản mới nhất hiện có. Thay vào đó, nó kiểm tra xem có phiên bản mới hơn trong phiên bản chính mà bạn sử dụng hay không. Điều này sẽ giúp bạn luôn cập nhật mà không phải liên tục làm lại các giải pháp của mình

Cập nhật javascript có quan trọng không?

_SPCAF đề xuất nâng cấp AngularJS_

Ngay cả khi bạn không thay đổi mã của mình, bạn nên chạy phân tích SPCAF định kỳ để xác minh xem có bất kỳ bản cập nhật nào mà bạn nên biết hay không.

Công việc giữ cho các thư viện JavaScript được cập nhật có thể mang nhiều sắc thái hơn là chỉ thỉnh thoảng chạy npm update hoặc yarn up. Các dự án mới thường bắt đầu với các phiên bản mới nhất của thư viện, nhưng chúng có thể trở nên lỗi thời khá nhanh

Đây là một chủ đề đặc biệt quan trọng đối với các nhà phát triển JavaScript vì các dự án được viết bằng JS có xu hướng có các cây phụ thuộc tương đối lớn so với các dự án được viết bằng các ngôn ngữ khác

Tại sao rất nhiều phụ thuộc?

Có một vài lý do cho xu hướng này. Đầu tiên là hệ sinh thái JS gắn liền với Node. js và sổ đăng ký npm. Điều này rất quan trọng vì Nút. js có một thư viện tiêu chuẩn nhỏ có chủ ý. Chỉ cần so sánh nó với thư viện chuẩn của Python

Có những ưu và nhược điểm đối với cách tiếp cận này, nhưng kết quả thực tế là các nhà phát triển JS có thói quen chuyển sang các thư viện của bên thứ ba để giải quyết vấn đề, ngay cả đối với các tác vụ như thêm chức năng mkdir -p. Thư viện mkdirp được tải xuống hơn 20 triệu lần mỗi tuần

Vì bản thân các phụ thuộc có thể có các phụ thuộc, nên thói quen này có thể dẫn đến một thư mục node_modules lớn. Kích thước của nó đã trở thành một meme, và thông thường đối với package-lock.json của npm và yarn.lock của Yarn dài hàng nghìn hoặc thậm chí hàng chục nghìn dòng

Cập nhật javascript có quan trọng không?
Cập nhật javascript có quan trọng không?

Ở một mức độ lớn hơn so với các hệ sinh thái khác, các nhà phát triển JS cũng chấp nhận triết lý tạo và sử dụng các phần phụ thuộc nhỏ và tập trung. Điều này đôi khi là mục tiêu của sự chỉ trích, đặc biệt là khi các gói chỉ chứa một dòng mã

Bất kể sự đánh đổi của thực tế này là gì, các nhà phát triển sẽ cần xem xét chiến lược cập nhật phụ thuộc của họ tại một số điểm

Tại sao phải cập nhật

Bạn có thể hỏi tại sao ngay từ đầu, việc cập nhật các phần phụ thuộc lại đáng giá như vậy, đặc biệt là khi một dự án đang hoạt động tốt như hiện tại.

Lý do đầu tiên là để ngăn chặn các lỗ hổng bảo mật. Ngay cả khi bạn có khả năng viết mã hoàn hảo, mọi mã của bên thứ ba mà bạn sử dụng, trực tiếp hoặc gián tiếp, đều có thể gặp sự cố bảo mật. Điều này có thể dẫn đến hậu quả tàn khốc. Vi phạm dữ liệu Equachus năm 2017 là do Equachus không cập nhật khung được sử dụng cho một trong các trang web của mình sau khi khung này vá lỗ hổng bảo mật

Ý tưởng tương tự áp dụng cho các bản sửa lỗi, cải tiến chức năng và cải thiện hiệu suất khác. Bằng cách cập nhật các phần phụ thuộc, bạn có thể dễ dàng đưa những cải tiến này vào dự án của mình

Lý do thứ hai là để tránh phải thực hiện những thay đổi lớn sau này khi bạn buộc phải nâng cấp vì bất kỳ lý do gì. Ví dụ: bạn có thể bắt đầu với phiên bản 1. 0 của một thư viện. Bạn không nâng cấp trong một thời gian dài và sau đó bạn cố gắng nâng cấp trực tiếp lên phiên bản 4. 0. Điều này có thể liên quan đến những thay đổi quan trọng có thể ít đau đớn hơn nếu bạn đã nâng cấp lên 2. 0 và 3. 0 ở giữa

Đây không phải là trường hợp hiếm gặp. Có thể bạn muốn nâng cấp lên phiên bản chính mới của Node, nhưng phiên bản hiện tại của một trong các thư viện của bạn không hỗ trợ phiên bản đó

Tương tự, có thể các thư viện của bạn phụ thuộc vào nhau theo cách gây khó khăn cho việc cập nhật cái này mà không cập nhật cái khác. Ví dụ: bạn có thể sử dụng thư viện thành phần React có sự phụ thuộc ngang hàng vào React. Bạn chỉ muốn cập nhật thư viện thành phần, nhưng sau đó bạn thấy mình cũng bị buộc phải cập nhật React

Hiệu ứng xếp tầng này có thể dẫn đến thay đổi lớn hơn nhiều so với dự định ban đầu của bạn, đặc biệt nếu kết quả là bạn phải thay đổi một số mã của riêng mình. Bạn càng để lâu mà không cập nhật thư viện của mình, bạn càng có nhiều khả năng gặp phải tình huống này

Một số tác giả thư viện cố gắng giảm bớt việc di chuyển bằng cách giới thiệu các thay đổi đột phá một cách chu đáo, chẳng hạn như loại bỏ các tính năng trước khi xóa chúng. Nếu bạn hiếm khi cập nhật, cuối cùng bạn có thể buộc phải thực hiện những thay đổi lớn vào thời điểm không thuận tiện thay vì có cảnh báo sớm và cơ hội lập kế hoạch


Cập nhật javascript có quan trọng không?
Cập nhật javascript có quan trọng không?

Hơn 200 nghìn nhà phát triển sử dụng LogRocket để tạo ra trải nghiệm kỹ thuật số tốt hơn

Cập nhật javascript có quan trọng không?
Cập nhật javascript có quan trọng không?
Tìm hiểu thêm →


Cập nhật các phụ thuộc cũng là một cách để cập nhật thông tin. Nó cho bạn biết quá trình phát triển của một thư viện đang diễn ra như thế nào. Bạn có thể tìm hiểu về một tính năng mới sẽ hữu ích cho bạn. Hoặc bạn có thể nhận ra rằng thư viện đang thay đổi theo cách không đáp ứng được nhu cầu của bạn trong tương lai và bạn nên bắt đầu điều tra các giải pháp thay thế. Thật dễ dàng để bỏ lỡ những thứ như thế này nếu bạn cài đặt một thư viện và không bao giờ nghĩ về nó nữa

Cuối cùng, nếu bản thân bạn là tác giả thư viện, bạn nên thay mặt người dùng cuối cập nhật các phần phụ thuộc của mình. Họ không thể dễ dàng kiểm soát các phiên bản của phần phụ thuộc phụ, vì vậy nếu có sự cố với một phiên bản, họ có thể gặp sự cố nếu bạn không cập nhật

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
0 của mình để cho phép họ đưa vào phiên bản mới hơn của phần phụ thuộc phụ

Tại sao không cập nhật

Tuy nhiên, cũng có những lý do không cập nhật thư viện. Vấn đề lớn nhất là bất kỳ thay đổi nào cũng có nguy cơ gây ra sự cố. Mặc dù bạn có thể nhận được bản sửa lỗi cho một lỗi mà bạn thậm chí không biết, nhưng cũng có thể thư viện được cập nhật đưa ra một lỗi mới hoặc hồi quy về hiệu suất

Một trường phái cho rằng bạn chỉ nên cập nhật các phụ thuộc khi bạn có lý do cụ thể thay vì cập nhật chỉ vì mục đích cập nhật. Có một bộ kiểm thử tốt giúp giảm thiểu rủi ro, nhưng rủi ro vẫn là rủi ro

Việc cập nhật các phần phụ thuộc cũng làm mất thời gian xây dựng các tính năng mới hoặc khắc phục các sự cố đã biết. Đó là một việc vặt có thể mất nhiều thời gian bất ngờ khi thư viện thay đổi đáng kể

Bất kể bạn quyết định cập nhật thư viện thường xuyên như thế nào, hãy xem xét các cơ chế thực tế để làm như vậy

Cập nhật phụ thuộc

Hãy ghi nhớ ý tưởng về phiên bản ngữ nghĩa (semver). Đây là cách thực hành lập phiên bản cho các chương trình một cách CHỦ YẾU. NGƯỜI VỊ THÀNH NIÊN. cách VÁ. Phiên bản chính mới biểu thị các thay đổi đột phá, phiên bản phụ mới biểu thị chức năng mới tương thích ngược và phiên bản bản vá mới biểu thị các bản sửa lỗi tương thích ngược

Các thư viện JS có xu hướng tuân theo phiên bản ngữ nghĩa, nhưng số phiên bản chỉ phản ánh ý định và sự hiểu biết của tác giả. Họ có thể vô tình xuất bản một phiên bản phụ mới thực sự có thay đổi đột ngột hoặc có thể bạn đang sử dụng thư viện theo cách không mong muốn gây ra sự cố với phiên bản cập nhật

Theo mặc định, npm và Yarn yêu cầu các thư viện tuân theo phiên bản ngữ nghĩa. Khi bạn thêm một thư viện với một trong hai, mục nhập trong

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
0 sẽ có dấu mũ (
Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
2) ở phía trước phiên bản

{
  "dependencies": {
    "lodash": "^3.1.0"
  }
}

Điều này có nghĩa là bạn sẽ chấp nhận các bản cập nhật phiên bản nhỏ và vá lỗi, nhưng không chấp nhận các bản cập nhật phiên bản lớn


Các bài viết hay khác từ LogRocket

  • Đừng bỏ lỡ một khoảnh khắc nào với The Replay, một bản tin được tuyển chọn từ LogRocket
  • Tìm hiểu cách Galileo của LogRocket loại bỏ tiếng ồn để chủ động giải quyết các vấn đề trong ứng dụng của bạn
  • Sử dụng useEffect của React để tối ưu hóa hiệu suất ứng dụng của bạn
  • Chuyển đổi giữa nhiều phiên bản của Node
  • Khám phá cách tạo hoạt ảnh cho ứng dụng React của bạn với AnimXYZ
  • Khám phá Tauri, một khuôn khổ mới để xây dựng các tệp nhị phân
  • So sánh NestJS với. Thể hiện. js

Để kiểm tra xem các phụ thuộc của bạn đã hết hạn chưa, bạn có thể chạy ____________3

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test

Khi bạn đang cập nhật, điều quan trọng nhất cần làm là đọc nhật ký thay đổi của thư viện. Đây thường là cách hiệu quả nhất để tìm ra những thay đổi bạn đang thực hiện, với những thay đổi quan trọng nhất là những thay đổi đột phá

Nếu bạn gặp phải tình huống không may khi cập nhật một thư viện không có nhật ký thay đổi nhưng là mã nguồn mở, bạn có thể phải xem lại lịch sử cam kết để tìm ra điều gì đã thay đổi. Các dự án lớn hơn cũng có xu hướng có các blog cung cấp thêm chi tiết cho các phiên bản mới

Phương pháp cập nhật gói tiêu chuẩn là sử dụng

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
4, cập nhật tất cả các gói lên phiên bản mới nhất, theo học kỳ thì OK. Trong trường hợp này, bạn sẽ cập nhật Lodash lên phiên bản 3. 10. 1

Mặc dù phiên bản 4. 17. 15 khả dụng, theo mặc định, bạn sẽ không được cập nhật lên phiên bản này vì dấu mũ giới hạn bạn ở các bản cập nhật nhỏ và bản vá. Bạn cũng có thể chuyển các gói cụ thể vào lệnh nếu bạn không muốn cập nhật tất cả các gói cùng một lúc

Trong nhiều trường hợp, bạn sẽ muốn cập nhật lên phiên bản mới nhất hiện có, bất kể học kỳ được chỉ định là gì. Thật không may, npm update không có cách nào để làm điều này, vì vậy bạn sẽ cần sử dụng

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
6

Để làm cho quy trình này hiệu quả hơn, đặc biệt là khi bạn có nhiều phụ thuộc, hãy cân nhắc sử dụng

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
7 hoặc
Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
8. Các công cụ CLI này cho phép bạn cập nhật theo cách tương tác và cung cấp thông tin hữu ích như liên kết đến trang web của dự án để bạn có thể dễ dàng kiểm tra các thay đổi

$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/

Sợi thậm chí còn có tính năng này được tích hợp sẵn. Chỉ cần chạy

Package  Current  Wanted   Latest  Location
lodash     3.1.0  3.10.1  4.17.15  npm-test
9

$ yarn upgrade-interactive
 Press / to select packages.         Press  to install.
 Press / to select versions.      Press  to abort.

? Pick the packages you want to upgrade.       Current      Range/Latest

 > lodash                                      ◯  3.1.0    ◯  3.10.1   ◉  4.17.15

Yarn không có lệnh

$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
0, vì vậy, về cơ bản,
$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
1 kết hợp
$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
0 và
$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
3 của npm thành một, mặc dù bạn cũng có thể sử dụng
$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
4

Lưu ý rằng có một số khác biệt nếu bạn vẫn đang sử dụng Yarn v1. Lệnh nâng cấp là

$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
5 thay vì yarn up. Sợi v1 cũng có lệnh
$ npm-check

lodash   😎  MAJOR UP  Major update available. https://lodash.com/
                      npm install --save [email protected] to go from 3.1.0 to 4.17.15

Use npm-check -u for interactive update.

$ npm-check -u
? Choose which packages to update.

 Major Update Potentially breaking API changes. Use caution.
❯◯ lodash  3.1.0  ❯  4.17.15  https://lodash.com/
7

Tự động cập nhật

Cũng đã có một nỗ lực để hợp lý hóa quy trình cập nhật với các dịch vụ bên ngoài. Một số công cụ cho mục đích này bao gồm Gemnasium, Greenkeeper và Dependabot, mặc dù chúng đã được GitLab, Snyk và GitHub mua lại hoặc gộp lại tương ứng

Ý tưởng chung là có một dịch vụ giám sát các phụ thuộc của dự án của bạn và thậm chí mở các yêu cầu kéo để cập nhật chúng. Họ cũng có thể cảnh báo bạn khi tìm thấy lỗ hổng bảo mật trong cây phụ thuộc của bạn. Đây là ảnh chụp màn hình PR Dependabot được tạo bởi các bản cập nhật bảo mật của GitHub

Cập nhật javascript có quan trọng không?
Cập nhật javascript có quan trọng không?

Các dịch vụ như thế này có thể giúp việc cập nhật thư viện của bạn trở nên dễ dàng hơn nhiều vì bạn không cần phải tự mình nhớ làm như vậy

Phần kết luận

Việc cập nhật các thư viện nhìn bề ngoài có vẻ đơn giản, nhưng bạn nên suy nghĩ kỹ về chiến lược cập nhật của mình trên cơ sở từng dự án. Một dự án có thể không bao giờ cần cập nhật lại, trong khi một dự án khác có thể yêu cầu sử dụng Dependabot, Snyk hoặc một dịch vụ khác để luôn cập nhật tích cực. Hoặc có thể bạn hài lòng với cách tiếp cận đúng lúc, nơi bạn cập nhật các phụ thuộc khi phát hiện ra sự cố. Trong mọi trường hợp, hãy đưa ra quyết định của bạn một cách rõ ràng

Đăng NhậpTên Lửa. Gỡ lỗi JavaScript dễ dàng hơn bằng cách hiểu ngữ cảnh

Gỡ lỗi mã luôn là một công việc tẻ nhạt. Nhưng bạn càng hiểu lỗi của mình thì càng dễ sửa chúng

LogRocket cho phép bạn hiểu những lỗi này theo những cách mới và độc đáo. Giải pháp giám sát giao diện người dùng của chúng tôi theo dõi mức độ tương tác của người dùng với giao diện người dùng JavaScript của bạn để cung cấp cho bạn khả năng tìm ra chính xác những gì người dùng đã làm dẫn đến lỗi

Cập nhật javascript có quan trọng không?
Cập nhật javascript có quan trọng không?

LogRocket ghi nhật ký bảng điều khiển, thời gian tải trang, dấu vết ngăn xếp, yêu cầu/phản hồi mạng chậm với tiêu đề + nội dung, siêu dữ liệu trình duyệt và nhật ký tùy chỉnh. Hiểu tác động của mã JavaScript của bạn sẽ không bao giờ dễ dàng hơn thế

Kích hoạt JavaScript có tốt không?

Mặc dù mục đích của JavaScript là cải thiện trải nghiệm người dùng trên các trang web nhưng nó cũng có một số nhược điểm . Chủ sở hữu trang web sử dụng JavaScript để hiển thị quảng cáo và bật tính năng theo dõi quảng cáo. Bằng cách tắt JavaScript, bạn có thể tránh được những phiền toái này trong khi vẫn duy trì một số quyền riêng tư của mình.

Mục đích của JavaScript là gì?

JavaScript là ngôn ngữ kịch bản cho phép bạn tạo nội dung cập nhật động, kiểm soát đa phương tiện, tạo ảnh động và gần như mọi thứ khác .

Phiên bản mới nhất của JavaScript là gì?

ECMAScript là một tiêu chuẩn JavaScript được phát triển bởi Ecma International. Kể từ năm 2015, các phiên bản chính đã được xuất bản vào tháng 6 hàng năm. ECMAScript 2022 , phiên bản thứ 13 và hiện tại, được phát hành vào tháng 6 năm 2022.

Điều gì xảy ra nếu bạn bật JavaScript?

Tính năng này làm cho các trang web hoạt động cho các mục đích cụ thể và nếu bị tắt vì lý do nào đó, nội dung hoặc chức năng của trang web có thể bị hạn chế hoặc không khả dụng.