Di chuyển một mô-đun từ devDependencies sang phụ thuộc trong npm pack.json


154

Có lệnh ngắn nào để di chuyển một mô-đun từ devDependenciessang dependenciestrong.j.j không?

Tôi thấy mình luôn làm điều này:

npm uninstall <module_name> --save-dev 
npm install <module_name> --save

Có một cách tiếp cận ngắn hơn cho điều này?

Câu trả lời:


191

Đúng! để di chuyển một mô-đun từ devDependenciesđến dependencies:

npm install <module_name> --save-prod


181

Nếu bạn muốn làm ngược lại (tức là di chuyển một mô-đun từ dependenciessang devDependencies) chỉ cần làm:

npm install <module_name> --save-dev

hoặc tốc ký:

npm i <module_name> -D

viết tắt để di chuyển từ devDependenciesđến dependencies(prod):

npm i <module_name> -P

5
Hoạt động với tôi, v5.6
Huyền thoại

1
tốc ký npm i module-example -Dcũng sẽ hoạt động để chuyển từ prod sang dev, cũng như npm i module-example -Pchuyển từ dev sang prod prod
Andriy

@Andriy cảm ơn, đã không nghĩ về nó. Sẽ cập nhật câu trả lời!
Sid

Nếu bạn đang sử dụng sợi thay thế, trước tiên bạn cần loại bỏ nó khỏi các phụ thuộc yarn remove <module_name>và sau đó thêm lại vào devDependencies vớiyarn add <module_name> --dev
Eugenio

16

Trong sợi:

Di chuyển một mô-đun từ devDependenciesđến dependencies:

yarn remove <module_name> --dev && yarn add <module_name> 

Di chuyển một mô-đun từ dependenciesđến devDependencies:

yarn remove <module_name> && yarn add <module_name> --dev

Như đã nói trong các bình luận, lệnh thực sự xóa mô-đun và cài đặt lại nó ở vị trí mới.


1
Điều này thực sự đúng? Là không có cách nào trong sợi để di chuyển mọi thứ từ dependenciesđể devDependenciesmà không cần loại bỏ và tái bổ sung?
LondonRob

@LondonRob đó là cách duy nhất tôi đã tìm thấy
yohaiz

21
Điều này không di chuyển, Điều này chỉ đơn giản là xóa gói và cài đặt lại
Thanveer Shah

@seeker_of_bacon Không có gì đang chạy trong nền ở đây. Bạn có thể nhầm lẫn &&với &.
rudolfbyker

3

Nếu dự án của bạn chưa có tệp lockfile hoặc tệp thu nhỏ, bạn có thể chỉ cần di chuyển dòng tương ứng trong package.json.

(Tôi không khuyên bạn không nên sử dụng lockfiles)


3

Vấn đề với việc sử dụng npmhoặc yarncác lệnh là có khả năng phiên bản được thêm lại là một phiên bản khác với phiên bản hiện đang được sử dụng. Nếu đây là những gì bạn muốn - cả di chuyển và nâng cấp - thì hãy tiếp tục và sử dụng câu trả lời được chấp nhận.

Nếu không, chỉ cần chỉnh sửa thủ côngpackage.json để di chuyển dòng từ devDependenciesđối tượng sang dependenciesđối tượng (tạo nó nếu cần thiết). Bạn có thể đi theo hướng khác quá.

Tệp khóa không chứa bất kỳ thông tin nào về việc mọi thứ là phụ thuộc prod hay dev, do đó không cần phải cập nhật. Bạn có thể thực hiện a npm/ yarn installsau đó để sửa bất kỳ cờ nào trong các tệp khóa.


Mặc dù chỉ có một dependenciesphần cấp cao nhất trong package-lock.jsonmỗi mục, mỗi mục có khả năng có một devcờ để cho biết đó là phần phụ thuộc dev hay phần phụ thuộc bắc cầu của một mục. Xem docs.npmjs.com/files/package-lock.json#dev "Nếu [dev là] đúng thì sự phụ thuộc này là CHỈ phụ thuộc phát triển của mô-đun cấp cao nhất hoặc phụ thuộc bắc cầu của một. vừa là phụ thuộc phát triển của cấp cao nhất vừa là phụ thuộc quá độ của phụ thuộc không phát triển của cấp cao nhất. "
rob3c

0

Vấn đề của việc sử dụng cài đặt npm là bạn kết thúc với các phiên bản cập nhật. Những gì làm việc cho tôi là:

  1. Di chuyển chúng đến phần dự định (dev hoặc prod)
  2. Loại bỏ chúng khỏi node_modules thư mục
  3. Hành hình npm install

Điều đó giữ cho tất cả các phiên bản nguyên vẹn.

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.