Перемістіть модуль від devDependitions до залежностей у npm package.json


154

Чи є якась коротка команда для переміщення модуля devDependenciesдо dependenciesв пакет.json?

Я вважаю, що завжди роблю це:

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

Чи існує коротший підхід до цього?

Відповіді:



182

Якщо ви хочете зробити навпаки (тобто перемістити модуль з dependenciesдо devDependencies), просто зробіть:

npm install <module_name> --save-dev

або скорочення:

npm i <module_name> -D

стенограма для переходу devDependenciesдо dependencies(prod):

npm i <module_name> -P

5
Працює для мене, v5.6
Легенди

1
стенограми npm i module-example -Dтакож працюватимуть, щоб перейти від продукту до розробника, а також npm i module-example -Pперейти від dev до залежності від prod
Андрій

@Andriy спасибі, не думав про це. Буде оновлено відповідь!
Sid

Якщо ви замість цього використовуєте пряжу, її потрібно спочатку видалити із залежностей, yarn remove <module_name>а потім повторно додати її до devDependitions зyarn add <module_name> --dev
Євгеніо

16

У пряжі:

Перемістити модуль з devDependenciesдо dependencies:

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

Перемістити модуль з dependenciesдо devDependencies:

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

Як сказано в коментарях, команда фактично видаляє модуль і знову встановлює його на новому місці.


1
Це справді правильно? Чи немає спосіб пряжі , щоб перемістити речі з dependenciesдо devDependenciesбез видалення та повторного додавання?
LondonRob

@LondonRob - це єдиний спосіб, який я знайшов
йохаїз

21
Це не рухається. Це просто видалення пакета та встановлення його знову
Thanveer Shah

@seeker_of_bacon Тут нічого не працює у фоновому режимі. Ви можете збивати &&з пантелику &.
rudolfbyker

3

Якщо у вашому проекті ще немає файлу блокування або файла скорочення, ви можете просто перемістити відповідний рядок у вашому package.json.

(Я не рекомендую використовувати файли блокування)


3

Проблема з використанням npmабо yarnкомандами полягає в тому, що існує ймовірність, що версія, яка повторно додається, є іншою версією, ніж версія, яка використовується в даний час. Якщо це те, що ви хочете - і переміщення, і оновлення - тоді вперед і використовуйте прийняту відповідь.

Якщо ні, просто відредагуйте вручну,package.json щоб перемістити рядок від devDependenciesоб'єкта до dependenciesоб’єкта (створивши його, якщо це необхідно). Ви також можете піти в іншому напрямку.

Файл блокування не містить жодної інформації про те, чи є речі залежні від продукту чи розробки, тому його не потрібно оновлювати. Ви можете зробити npm/ yarn installпісля, щоб виправити будь-які прапори у файлах блокування.


Хоча в ньому є лише один dependenciesрозділ верхнього рівня package-lock.json, кожен запис може мати devпрапор, який вказує, чи це залежність від розробника, або перехідна залежність. Дивіться docs.npmjs.com/files/package-lock.json#dev "Якщо [dev вірно], то ця залежність є або залежністю від розвитку ТІЛЬКИ модуля верхнього рівня, або перехідною залежністю. Це неправда для залежностей, які є як залежністю від вищого рівня розвитку, так і перехідною залежністю вищого рівня нерозвитку ".
rob3c

0

Проблема використання npm install полягає в тому, що ви закінчуєте оновлені версії. Що для мене працювало:

  1. Переміщення їх до призначеної частини (dev або prod)
  2. Видалення їх із папки node_modules
  3. Виконати npm install

Це зберегло всі версії недоторканими.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.