Làm thế nào để cài đặt gói với đường dẫn cục bộ của Yarn? Nó không thể tìm thấy gói


99

Trong tôi, package.jsontôi đang trỏ gói cục bộ my-custom-i18ntheo đường dẫn tương đối của nó:

package.json

"dependencies": {
 "core-js": "^2.4.1",
 "my-custom-i18n": "./../MyProject.Shared/myproject-i18n",
 "rxjs": "5.0.0-beta.12",
 ...
}

npm installcài đặt các gói một cách chính xác, nhưng yarncó vấn đề với nó và chỉ đơn giản là không thể tìm thấy gói này:

sản lượng sợi

$ yarn
yarn install v0.15.1
info No lockfile found.
[1/4] Resolving packages...
error Couldn't find package "myproject-i18n" on the "npm" registry.
info Visit http://yarnpkg.com/en/docs/cli/install for documentation about this command.

Tôi thấy rằng nó trông nó trên npmsổ đăng ký, nơi gói này không tồn tại.

Câu hỏi

Có thay đổi nào để sử dụng sợi với các gói nội địa không? Theo các gói cục bộ, ý tôi là các gói được trỏ theo đường dẫn tương đối như my-custom-i18n.

Câu trả lời:


195

Yarn yêu cầu tiền tố file:cho các gói cục bộ.

Đối với đường dẫn tương đối:

yarn add file:./../your-project

Đối với con đường tuyệt đối

yarn add file:/dev/your-project

Đối với ví dụ của bạn, phụ thuộc vào package.jsonsẽ được khai báo như sau:

 "my-custom-i18n": "file:./../MyProject.Shared/myproject-i18n",

Điều này cũng hoạt động cho cả Yarn và NPM.

Nó không tương thích với ứng dụng khách NPM, nhóm Yarn biết và tuyên bố hỗ trợ hành vi này - tham khảo về vấn đề GitHub .

Cập nhật:

Kể từ khi phát hành v0.21.0 , file:tiền tố là không cần thiết. Xem pull-request với sửa chữathay đổi .


1
cảm ơn, hoạt động như một sự quyến rũ. Nhưng nếu nó không tương thích với ứng dụng khách npm bây giờ - tôi sẽ để nguyên npmnhư vậy :) PS ý tưởng của tôi là yarnchỉ sử dụng cục bộ mà không chuyển đổi toàn bộ nhóm và dự án. Vì vậy, .. Tôi sẽ phải đợi cho đến khi hỗ trợ cho việc này :)
michalczukm

3
đảm bảo rằng bạn xóa bộ nhớ cache của mình. như sợi luôn cố gắng phiên bản được lưu đầu tiên
Bo Chen

5
+1 cho bản cập nhật! Xóa file:tiền tố đã giải quyết được vấn đề mà chúng tôi gặp phải trong đó yarn installtrên windows sẽ thêm ./tiền tố vào đường dẫn tệp tương đối, nhưng yarn installtrên macOS sẽ xóa nó.
Magne

Con đường tuyệt đối không phù hợp với tôi. Nó sẽ hoạt động cho quá trình cài đặt, nhưng sau đó quá trình chuyển đổi sẽ không thành công vì bằng cách nào đó nó đang tìm kiếm một đường dẫn tương đối nhưng sợi.lock lại có đường dẫn tuyệt đối.
pixelearth

1
Có vẻ như với sợi 1.17.3, file:tiền tố vẫn cần thiết trong trường hợp sau: Giả sử bạn có gói barcó phụ thuộc cục bộ ./dependencies/xyz. Nếu một gói khác foođang sử dụng gói bar, nó sẽ cố gắng giải quyết ./dependencies/xyzliên quan đến foothư mục thay vì liên quan đến barthư mục. Sau khi thay đổi phụ thuộc vào file:./dependencies/xyzvấn đề đã được giải quyết.
David Callanan
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.