2016-11-08 25 views
11

Khi Sợi được sử dụng để cài đặt các phụ thuộc, nó đặt chúng trong thư mục node-modules theo mặc định.Làm thế nào để thay đổi thư mục gói mặc định của sợi?

Tôi làm cách nào để thay đổi điều này thành thư mục Laravel resources?
Giống như .bowerrc được sử dụng cho Chòi chơi cho thiết "directory": "resources/assets"

+0

Xem liên kết này để tham khảo - https://yarnpkg.com/en/docs/package-json#toc-directories –

+2

với tôi câu hỏi này chưa được trả lời. Có các gói mà bạn cần cài đặt cho phía máy chủ (ví dụ: 'express') các gói khác mà bạn cần từ phía trình duyệt, ví dụ: 'jquery',' bootstrap', 'font-awesome'. Tôi đã sử dụng NPM cho máy chủ và bower cho jquery, bootstrap vv ... bây giờ với ** Yarn ** một mình tôi vẫn không biết làm thế nào để thay đổi đích cho một thư viện cụ thể mà tôi muốn trong thư mục 'asset/vendor' thay vào đó hoặc 'node_modules' – zabumba

Trả lời

10
yarn install --modules-folder ./resources 

UPDATE: Theo dõi GitHub Issue vì tính năng này không ổn định.

UPDATE 2: Từ Damien's câu trả lời dưới đây, bạn có thể thêm --install.modules-folder "./resources" đến một .yarnrc file để bạn không cần phải liên tục vượt qua đối số dòng lệnh in cho mỗi lời gọi tiếp theo. Lưu ý rằng dấu ngoặc kép là bắt buộc; nếu không có, bạn sẽ nhận được một lỗi Invalid value type 1:25 hoặc tương tự.

Sau đó, bạn có thể cam kết .yarnrc để kiểm soát nguồn để các nhà phát triển khác trên dự án có thể sử dụng cùng một cài đặt tự động.

+2

đây là giải pháp khủng khiếp. Những thứ như thế này cần phải là các tùy chọn toàn cục, chứ không phải các công tắc dòng lệnh một lần. Tôi bối rối như thế nào rất nhiều các giải pháp node.js này dường như đã được thiết kế trong một môi trường không được nối mạng, không được nối mạng. Nhiều hệ thống nối mạng đặt thư mục người dùng trên một mạng chia sẻ. Nhưng cài đặt GLOBAL ở mức hệ thống, không phải ở cấp người dùng. Ở đó cần phải có một "sợi toàn cầu cài đặt bất cứ ứng dụng" mà không yêu cầu người dùng ghi đè lên các thư mục mô-đun trên dòng lệnh. Có vẻ như tôi sẽ gửi một yêu cầu kéo github khác đã bị từ chối. haha – Armand

+0

Có một số tiến trình trên https://github.com/yarnpkg/yarn/pull/3792 –

+3

Đối với bản ghi: Bạn có thể sử dụng tệp '.yarnrc' để đặt tùy chọn này bằng cách sử dụng' --install.modules-folder resources' ([documentation] (https://yarnpkg.com/en/docs/yarnrc)) – Damien

-2

Theo Yarn Docs, bạn có thể chỉ định thư mục trong package.json tập tin

{ 
    "directories": { 
    "lib": "path/to/lib/", 
    "bin": "path/to/bin/", 
    "man": "path/to/man/", 
    "doc": "path/to/doc/", 
    "example": "path/to/example/" 
    } 
} 

Khi cài đặt gói, bạn có thể xác định vị trí chính xác để đưa tập tin nhị phân, các trang man , tài liệu, ví dụ vv

+1

chỉ cần thử, nhưng tất cả các phụ thuộc vẫn được cài đặt trong node_modules. công việc này là dành cho bạn? Đây có thể là bên trong gói để sắp xếp các tập tin nếu gói đang hỗ trợ nó –

+0

nó không hoạt động. https://stackoverflow.com/questions/48300008/how-to-change-dependency-installation-directory-at-yarn – neoerol

3

Bạn có thể tạo một tập tin .yarnrc với nội dung sau:

--modules-folder resources 

Bằng cách này mỗi yarn lệnh sẽ có thông số thiết lập này.

+2

Chỉ muốn thêm rằng mặc dù điều này đã downvoted, nó đã được ** chính xác **. Hơn nữa, bạn có thể thêm phạm vi: '--install.module-folder' sẽ đặt giá trị này chỉ cho lệnh' install', trong khi '- *. Modules-folder' sẽ áp dụng cho mọi lệnh (do đó _should_ hành xử cùng một hành vi như lệnh đầu tiên) –

Các vấn đề liên quan