Việc sử dụng npm của tôi là để tạo css / js rút gọn / xấu xí và tạo javascript cần thiết trong các trang được cung cấp bởi một ứng dụng django. Trong các ứng dụng của tôi, Javascript chạy trên trang để tạo hình động, đôi khi thực hiện các cuộc gọi ajax, hoạt động trong khung VUE và / hoặc làm việc với css. Nếu gói-lock.json có một số quyền kiểm soát ghi đè đối với gói trong.j.j, thì có thể cần có một phiên bản của tệp này. Theo kinh nghiệm của tôi, nó không ảnh hưởng đến những gì được cài đặt bởi cài đặt npm, hoặc nếu có, nó chưa ảnh hưởng xấu đến các ứng dụng tôi triển khai theo hiểu biết của mình. Tôi không sử dụng mongodb hoặc các ứng dụng như vậy thường là máy khách mỏng.
Tôi xóa gói-lock.json khỏi repo vì cài đặt npm tạo tệp này và cài đặt npm là một phần của quy trình triển khai trên mỗi máy chủ chạy ứng dụng. Kiểm soát phiên bản của nút và npm được thực hiện thủ công trên mỗi máy chủ, nhưng tôi cẩn thận rằng chúng giống nhau.
Khi npm install
được chạy trên máy chủ, nó sẽ thay đổi gói-lock.json và nếu có thay đổi đối với tệp được ghi lại bởi máy chủ trên máy chủ, lần triển khai tiếp theo sẽ KHÔNG cho phép bạn lấy các thay đổi mới từ nguồn gốc. Đó là bạn không thể triển khai vì kéo sẽ ghi đè lên các thay đổi đã được thực hiện đối với gói-lock.json.
Bạn thậm chí không thể ghi đè lên gói-lock.json được tạo cục bộ với nội dung trên repo (đặt lại bản gốc gốc cứng), vì npm sẽ phàn nàn khi bạn phát lệnh nếu gói-lock.json không phản ánh nội dung trong đó node_modules do cài đặt npm, do đó phá vỡ triển khai. Bây giờ nếu điều này chỉ ra rằng các phiên bản hơi khác nhau đã được cài đặt trong node_modules, một lần nữa điều đó chưa bao giờ gây ra sự cố cho tôi.
Nếu node_modules không có trong repo của bạn (và nó không nên), thì nên bỏ qua gói-lock.json.
Nếu tôi thiếu một cái gì đó, xin vui lòng sửa cho tôi trong các ý kiến, nhưng điểm mà phiên bản được lấy từ tệp này không có ý nghĩa. Tệp pack.json có số phiên bản trong đó và tôi giả sử tệp này là tệp được sử dụng để xây dựng các gói khi cài đặt npm xảy ra, vì khi tôi gỡ bỏ nó, cài đặt npm phàn nàn như sau:
jason@localhost:introcart_wagtail$ rm package.json
jason@localhost:introcart_wagtail$ npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/jason/webapps/introcart_devtools/introcart_wagtail/package.json'
và quá trình xây dựng không thành công, tuy nhiên khi cài đặt node_modules hoặc áp dụng npm để xây dựng js / css, sẽ không có khiếu nại nào nếu tôi xóa gói-lock.json
jason@localhost:introcart_wagtail$ rm package-lock.json
jason@localhost:introcart_wagtail$ npm run dev
> introcart@1.0.0 dev /home/jason/webapps/introcart_devtools/introcart_wagtail
> NODE_ENV=development webpack --progress --colors --watch --mode=development
10% building 0/1 modules 1 active ...
git log
dễ đối phó hơn.