2017-05-10 23 views
9

yarn install -h cho thấy rằng tùy chọn -g (toàn cầu) là DEPRECATED. Làm thế nào tôi phải chỉ ra rằng tôi muốn một bó gói (từ package.json/yarn.lock tệp) sẽ được cài đặt trên toàn cầu?Cách cài đặt các gói toàn cầu bằng sợi

Tùy chọn tôi thấy:

  • yarn global [command] có những thứ như lsadd nhưng không install. add chỉ hoạt động với tên gói cụ thể, nếu tôi hiểu chính xác. Tôi đã có sẵn tệp yarn.lock của mình, tôi không muốn lặp lại bản thân mình trên dòng lệnh.
  • yarn global add từng gói một. Bây giờ danh sách các gói của tôi sẽ là bắt buộc thay vì khai báo.

Đặc biệt, tôi muốn sử dụng một tệp thực thi từ một trong các gói đó.

Trả lời

9

Làm cách nào để cho biết rằng tôi muốn một loạt gói (từ tệp package.json/yarn.lock) được cài đặt trên toàn cầu?

Bạn không. Cài đặt trên toàn cầu không được khuyến khích và có rất ít trường hợp cần thiết hoặc thậm chí hữu ích.

Như đã nêu trong the documentation:

Đối với đại đa số các gói nó được coi là một thực tế xấu có phụ thuộc toàn cầu, vì họ là ngầm. Nó là tốt hơn để thêm tất cả các phụ thuộc của bạn tại địa phương để họ là rõ ràng và bất cứ ai khác bằng cách sử dụng dự án của bạn được cùng một bộ phụ thuộc.

Nếu bạn đang cố gắng sử dụng công cụ CLI có thùng, bạn có thể truy cập chúng trong thư mục ./node_modules/.bin của bạn.

Nếu có những tình huống mà bạn làm muốn cài đặt nó trên toàn cầu, sử dụng yarn global add, nhưng không mong đợi để dễ dàng cài đặt một danh sách rất lớn phụ thuộc toàn cầu thật khó để làm do thiết kế, bởi vì nó không phải là một ý tưởng tốt.

Thay vào đó:

  • cài đặt tất cả mọi thứ tại địa phương, vì vậy mỗi dự án được tách
  • binaries cuộc gọi từ ./node_modules/.bin nếu có thể
  • tránh toàn cầu cài đặt đỡ phải thao tác một tiện nghi, nhưng không phải là một bạn nên dựa vào .
+0

Cảm ơn phản hồi của bạn! Chắc chắn, nó có ý nghĩa với tôi rằng sợi thông qua một số loại đầu tiên của địa phương suy nghĩ bởi vì cuối cùng, đó là cách mỗi nhà phát triển trưởng thành cần phải sử dụng phụ thuộc của họ. Trường hợp sử dụng của tôi — xây dựng trên nó — là tôi đang tạo một hình ảnh docker được sử dụng để lấp một dự án như là một phần của bước CI (GitLab). Vì vậy, tôi không thực sự cần cô lập vì mục đích duy nhất của hình ảnh này là sử dụng tệp thực thi 'eslint.js'. – jleeothon

2

Đối với những người quan tâm, đây là cách để cài đặt và quản lý các ứng dụng toàn cầu được cài đặt qua sợi.

Đầu tiên tạo một thư mục trong đó sẽ chứa các ứng dụng, ví dụ ~/.yarn-global:

mkdir ~/.yarn-global 
cd ~/.yarn-global 

Sau đó, cài đặt ứng dụng của bạn từ đây:

yarn add yourapp 

Cuối cùng mở tập tin cá nhân của bạn, tức là .bashrc hoặc .bash_profile và thêm đường dẫn vào thư mục bin:

export PATH="$HOME/.yarn-global/node_modules/.bin:$PATH" 

Từ giờ trở đi, bất kỳ ứng dụng nào bạn cài đặt trong thư mục này sẽ có sẵn ở bất cứ đâu trong trình bao của bạn.

Khi việc này hoàn tất, thậm chí bạn có thể tạo tập lệnh tiện ích yarn-global sẽ chỉ hoạt động trong thư mục toàn cầu .yarn này. Ví dụ:

sudo vim /usr/bin/yarn-global 
sudo chmod 755 /usr/bin/yarn-global 

Và nội dung kịch bản sẽ là:

#!/bin/bash 
cd "$HOME/.yarn-global" 
yarn $1 "$2" 

Không bạn có thể làm yarn-global add someapp, yarn-global upgrade someapp vv

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