npm: Tại sao phiên bản “0.1” không hợp lệ?


90

Tôi đã phải thay đổi phiên bản ứng dụng npm của mình từ 0,1 thành 0,0.1 để npm không làm điều này.

$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: invalid version: 0.1
npm ERR!     at validVersion (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modul
es/read-package-json/read-json.js:571:40)
npm ERR!     at final (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read
-package-json/read-json.js:323:23)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:139:33
npm ERR!     at cb (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/slide/l
ib/async-map.js:48:11)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:301:48
npm ERR!     at fs.js:207:20
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.3.0
npm ERR! command "/usr/local/Cellar/node/0.10.5/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/lust/Documents/ply/dev-server
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/lust/Documents/ply/dev-server/npm-debug.log
npm ERR! not ok code 0

Để hoàn thiện đây là json đang hoạt động

$ cat package.json
{
    "name": "ply",
    "description": "ply server for local dev testing deployments",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "express": "3.x"
    }
} 

phiên bản đã từng là "0,1" khi nó mắc lỗi.

Đây có phải là một loại khái niệm lập phiên bản tương thích API / ABI yêu cầu 3 bộ số phiên bản không? Tại sao thông báo lỗi không thân thiện hơn wrt này?


1
hãy xem npm versionlệnh. Nó cho phép bạn tăng phiên bản ngữ nghĩa dựa trên các cấp độ chính, phụ hoặc bản vá. Ví dụ: npm version major, npm version minor,npm version patch
Noah

Câu trả lời:


107

Có, điều này là bắt buộc đối với việc lập phiên bản ngữ nghĩa , đây là cách sử dụng gói npm của lược đồ lập phiên bản. Đây là đoạn trích từnpm help json :

Phiên bản phải được phân tích cú pháp bởi node-semver , được đóng gói với npm như một phụ thuộc. ( npm install semverđể tự sử dụng.)

Đây là cách triển khai semver của npm khác với những gì trên semver.org:

  • Các phiên bản có thể bắt đầu bằng "v"
  • Một mục số được phân tách với phiên bản ba số chính bằng dấu gạch ngang sẽ được hiểu là số "bản dựng" và sẽ tăng phiên bản. Tuy nhiên, nếu thẻ không phải là một số được phân tách bằng dấu gạch ngang thì nó được coi là thẻ phát hành trước và nhỏ hơn phiên bản không có thẻ. Vì thế,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

37
mát mẻ. Lỗi chỉ nên nói điều gì đó với hiệu ứng của "npm yêu cầu lập phiên bản ngữ nghĩa".
Steven Lu

++ cho lưu ý xử lý ưa thích của tagged-phát hành
Benxamin

@StevenLu Tôi nghĩ điều này cũng nên đề cập đến phiên bản của semver sử dụng, hiện tại là 2.0.0.
Deoxyseia

10

Câu trả lời đơn giản - sử dụng 0.1.0

0.1 sẽ không làm việc

Chúc bạn viết mã vui vẻ!


4

Vì vậy, câu trả lời ngắn gọn là "Bạn cần sử dụng phiên bản ngữ nghĩa"

Nhưng lý do đằng sau đó là cung cấp một phiên bản gói thống nhất, hợp lý cho tất cả người dùng npm. Khi nhận được số phiên bản của một gói, bạn có một số mức độ tin cậy rằng tác giả hiểu semver và đang sử dụng nó đúng cách.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.