Câu trả lời:
Bạn có thể sử dụng --prefix
tùy chọn:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Các gói sau đó sẽ được cài đặt ./install/here/node_modules
. Điều mkdir
này là cần thiết vì npm có thể chọn một thư mục đã tồn tại node_modules
cao hơn trong hệ thống phân cấp. (Xem tài liệu npm trên các thư mục .)
npm install
(không có tên gói) không? Tôi đã thuê cái này trực tiếp, nhưng sau đó npm tìm kiếm package.json
trong {prefix}
. Điều tôi cũng nhắm đến là có thể cho phép packages.json
root trong dự án và đồng thời cài đặt tất cả các gói trong {project root}/{project webroot}
.
npm install
, nhưng --prefix
có vẻ như là một giải pháp tốt hơn, nếu nó không gây ra sự đệ quy.
Trong tài liệu có ghi: Sử dụng tùy chọn tiền tố cùng với tùy chọn toàn cầu :
Các tiền tố cấu hình mặc định đến vị trí nút được cài đặt. Trên hầu hết các hệ thống, đây là / usr / local . Trên các cửa sổ, đây là vị trí chính xác của nhị phân node.exe. Trên các hệ thống Unix, nó tăng một cấp, vì nút thường được cài đặt tại {tiền tố} / bin / nút thay vì {tiền tố} /node.exe .
Khi cờ toàn cầu được đặt, npm sẽ cài đặt mọi thứ vào tiền tố này. Khi nó không được đặt, nó sử dụng thư mục gốc của gói hiện tại hoặc thư mục làm việc hiện tại nếu chưa có trong gói.
(Nhấn mạnh bởi họ)
Vì vậy, trong thư mục gốc của bạn, bạn có thể cài đặt với
npm install --prefix <path/to/prefix_folder> -g
và nó sẽ cài đặt node_modules
thư mục vào thư mục
<path/to/prefix_folder>/lib/node_modules
require
cài đặt các gói trên toàn cầu, bạn có thể?
Kể từ phiên bản npm 3.8.6, bạn có thể sử dụng
npm install --prefix ./install/here <package>
để cài đặt trong thư mục được chỉ định. NPM tự động tạo node_modules
thư mục ngay cả khi thư mục node_modules
đã tồn tại trong cấu trúc phân cấp cao hơn. Bạn cũng có thể có một package.json
trong thư mục hiện tại và sau đó cài đặt nó trong thư mục được chỉ định bằng cách sử dụng --prefix
tùy chọn:
npm install --prefix ./install/here
Kể từ npm 6.0.0, bạn có thể sử dụng
npm install --prefix ./install/here ./
để cài đặt gói.json trong thư mục hiện tại vào thư mục "./install/here". Có một điều mà tôi đã nhận thấy trên Mac là nó tạo ra một liên kết tượng trưng đến thư mục mẹ bên trong thư mục node_modules. Nhưng, nó vẫn hoạt động.
LƯU Ý: NPM tôn vinh đường dẫn mà bạn đã chỉ định thông qua --prefix
tùy chọn. Nó giải quyết theo tài liệu npm trên các thư mục , chỉ khi npm install
được sử dụng mà không có --prefix
tùy chọn.
Can't install <current directory>: Missing package name
package.json
tệp trong./install/here