Nếu package update bạn phải biết vì sao nó update, nó update có ảnh hướng đến ứng dụng hay không thì bạn mới thực hiện việc update đó. Làm sao bạn biết package đó update để vá lỗi bảo mật nghiêm trọng ? Nếu update tạo ra lô hổng bảo mật nghiệm trọng như các ví dụ này thì sao.->
-> https://github.com/veged/coa/issues/99
-> https://github.com/dominictarr/rc/issues/131
Lệnh npm i mặc định -> Không có nghĩa là đủ tốt. Lệnh npm i có 3 cái không tối ưu
-> thêm tất cả package và nhóm dependency, trong khi có thể thêm vào devDependence nếu có config,
-> Thêm tự động thêm tiền tế ^ tự động update pakage.
-> chậm hơn so với npm ci
. Npm để mặc định như vậy để đảm bao đơn giản -> dể dùng -> phù hợp với trình độ mới học và fressher, chạy môi trường dev. Giống như docker vậy, default install latest version của image khi run vậy.
Về tài liệu thì bạn có thể xem ở nodebestpractices https://github.com/goldbergyoni/nodebestpractices. Repo với 75k sao trên gihub. Đảm bao uy tín nhé.
Về yarn thì mình đã nói rồi yarn tốt và nhanh. Mình cũng không phản đối ai dùng yarn hết. Nhưng usercase của mình đang làm việc là yarn không phù hợp. Vì yarn không thay thế được 100% cho npm, việc mình làm hằng ngày như làm việc với package trên npm như public, unpublic... yarn hỗ trợ kém. Ví dụ như không có command unpublish.
Bỏ ^ trong package.json. Điều này nghe có vẻ đúng vì cố định phiên bản package là điều cần thiết để source code chạy mà ko gặp vấn đề về tương thích do package thay đổi phiên bản.
Tuy nhiên nó lại ko tốt trong trường hợp package cần được cập nhật bản vá, ví dụ 1.2.0 cần được cập nhật lên 1.2.2 để fix 1 lỗi bảo mật nghiêm trọng chẳng hạn.
Tôi chưa tìm thấy tài liệu nào chính thống khuyến khích bỏ ^ hay thêm ^, ~,... nhưng khi install 1 package kể cả bằng yarn hay npm nó đều mặc định sử dụng ^, cho thấy yarn/npm cho rằng behavior này là phù hợp nhất.
Vậy cố định phiên bản package như thế nào? Đó là package-lock.json hoặc yarn.lock. Trong docs của npmjs khuyến khích commit kèm lock files.
Sử dụng npm thay vì yarn. Tác giả có thể dùng npm thay vì yarn tùy sở thích, tuy nhiên mọi người nên nhớ yarn sinh ra để cải thiện tốc độ của npm.
Từ node 16.10 trở đi, yarn được tích hợp sẵn trong Corepack, chả cần phải cài yarn riêng từ npm nữa.
Mà kể có phải tốn thêm 1 vài phút để cài yarn để tiết kiệm được nhiều phút cho nhiều project khác cũng vẫn đáng. Cũng giống như dùng IE để tải chrome về, tác giả thích dùng IE thì cứ tự nhiên, chả có vấn đề gì mà mọi người phải dùng IE thay vì chrome cả.
@koyoy phần này bạn cần check log xem có vấn đề gì không, nhưng nếu bạn dùng heroku thì mình khuyên bạn nên upload ảnh lên 1 dịch vụ bên t3 khác vì nếu mình nhớ không nhầm thì mỗi lần bạn deploy lại thì sẽ bị mất hết ảnh vì bản deploy mới sẽ đè lên các folder bản cũ thì phải
@hoangviet mình không hiểu sao heroku báo no module name django trong khi mình cài django bằng pip ở local đúng cách bằng miniconda 3.9.7,thấy nó có đầy đủ các thư mục
@minhtuan.nguy Mình mới chơi năm. Công nhận game vui, nhiều cái để làm, để nghịch. Kiếm thêm tiền, trang trí nhà cửa, chỉnh lại trang trại,... vô số cái.
THẢO LUẬN
Nếu package update bạn phải biết vì sao nó update, nó update có ảnh hướng đến ứng dụng hay không thì bạn mới thực hiện việc update đó. Làm sao bạn biết package đó update để vá lỗi bảo mật nghiêm trọng ? Nếu update tạo ra lô hổng bảo mật nghiệm trọng như các ví dụ này thì sao.-> -> https://github.com/veged/coa/issues/99 -> https://github.com/dominictarr/rc/issues/131 Lệnh
npm imặc định -> Không có nghĩa là đủ tốt. Lệnhnpm icó 3 cái không tối ưu -> thêm tất cả package và nhóm dependency, trong khi có thể thêm vào devDependence nếu có config, -> Thêm tự động thêm tiền tế^tự động update pakage. -> chậm hơn so vớinpm ci. Npm để mặc định như vậy để đảm bao đơn giản -> dể dùng -> phù hợp với trình độ mới học và fressher, chạy môi trường dev. Giống như docker vậy, default install latest version của image khi run vậy. Về tài liệu thì bạn có thể xem ở nodebestpractices https://github.com/goldbergyoni/nodebestpractices. Repo với 75k sao trên gihub. Đảm bao uy tín nhé.Về yarn thì mình đã nói rồi yarn tốt và nhanh. Mình cũng không phản đối ai dùng yarn hết. Nhưng usercase của mình đang làm việc là yarn không phù hợp. Vì yarn không thay thế được 100% cho npm, việc mình làm hằng ngày như làm việc với package trên npm như public, unpublic... yarn hỗ trợ kém. Ví dụ như không có command
unpublish.Cảm ơn bạn đà phản hồi/
Nhiều điểm ko đồng tình với tác giả:
Bỏ
^trong package.json. Điều này nghe có vẻ đúng vì cố định phiên bản package là điều cần thiết để source code chạy mà ko gặp vấn đề về tương thích do package thay đổi phiên bản. Tuy nhiên nó lại ko tốt trong trường hợp package cần được cập nhật bản vá, ví dụ 1.2.0 cần được cập nhật lên 1.2.2 để fix 1 lỗi bảo mật nghiêm trọng chẳng hạn. Tôi chưa tìm thấy tài liệu nào chính thống khuyến khích bỏ^hay thêm^,~,... nhưng khi install 1 package kể cả bằng yarn hay npm nó đều mặc định sử dụng^, cho thấy yarn/npm cho rằng behavior này là phù hợp nhất. Vậy cố định phiên bản package như thế nào? Đó là package-lock.json hoặc yarn.lock. Trong docs của npmjs khuyến khích commit kèm lock files.Sử dụng npm thay vì yarn. Tác giả có thể dùng npm thay vì yarn tùy sở thích, tuy nhiên mọi người nên nhớ yarn sinh ra để cải thiện tốc độ của npm. Từ node 16.10 trở đi, yarn được tích hợp sẵn trong Corepack, chả cần phải cài yarn riêng từ npm nữa. Mà kể có phải tốn thêm 1 vài phút để cài yarn để tiết kiệm được nhiều phút cho nhiều project khác cũng vẫn đáng. Cũng giống như dùng IE để tải chrome về, tác giả thích dùng IE thì cứ tự nhiên, chả có vấn đề gì mà mọi người phải dùng IE thay vì chrome cả.
bài viết quá dark bạn ạ
cái này phải cập nhật cho android 12 nữa b. trên 12 nó bắt start service ở background hơi khác một tí
@HuyDQ ,bạn có bit cài django lên heroku 0
@HuyDQ ,mình mới chỉ thử trên local thôi
@koyoy phần này bạn cần check log xem có vấn đề gì không, nhưng nếu bạn dùng heroku thì mình khuyên bạn nên upload ảnh lên 1 dịch vụ bên t3 khác vì nếu mình nhớ không nhầm thì mỗi lần bạn deploy lại thì sẽ bị mất hết ảnh vì bản deploy mới sẽ đè lên các folder bản cũ thì phải
@huukimit b ơii
@hoangviet mình không hiểu sao heroku báo no module name django trong khi mình cài django bằng pip ở local đúng cách bằng miniconda 3.9.7,thấy nó có đầy đủ các thư mục
https://www.keycloak.org/docs/latest/server_admin/index.html
kg thấy viết tiếp nữa
Ghi nguồn vào bro
@minhtuan.nguy đỉnh thật sự, indie dev - một mình cân hết game. Thấy có trailer game mới của og https://www.ign.com/articles/stardew-valley-haunted-chocolatier
@thangtd90 à thì ra cái AD < CI < CDeli < CDeploy < DevOps. 1 tấm hình như này thì dễ hiểu hơn khá nhiều. thanks bác
@trungcnn-1883 Cũng rất khâm phục ông dev game đó anh ạ, đỉnh lắm
@minhtuan.nguy Mình mới chơi năm. Công nhận game vui, nhiều cái để làm, để nghịch. Kiếm thêm tiền, trang trí nhà cửa, chỉnh lại trang trại,... vô số cái.
@trungcnn-1883 em chơi được từ 2019 rồi, thi thoảng vẫn vào giải trí, có mua cả game trên đt để chơi cho đỡ buồn =))
@minhtuan.nguy chuẩn b ạ, thế vui hơn, chuẩn game nông trại hơn ; ) Mình cũng theo nhà văn hóa.
@trungcnn-1883 đương nhiên là theo nhà văn hoá rồi ạ, cứ truyền thống thôi ạ =))
chơi đến đâu r b ?? theo nhà văn hóa hay joja : )