دیروز رفتم سراغ package.json یکی از پروژه ها تا یک نگاهی به داخلش بندازم و ورژن یک پکیجی رو چک کنم. متوجه شدم پکیج jest رو داخل پکیج های محصول (dependencies) نصب کردم، در حالیکه معمولا داخل پکیج های توسعه (devDependencies) نصب میشه. جالب بود که تا حالا به مشکل انتقال پکیج از حالت dev به production و برعکس نخورده بودم.
طبیعتا یک راهش این بود که پکیج رو uninstall کنم و دوباره داخل پکیج های dev نصبش کنم. ولی یه کم صبر کردم و یه گشتی زدم ببینم خود npm راهی براش در نظر گرفته یا نه.
انتظار داشتم با یک دستوری یا پارامتر خاصی برخورد کنم ولی همچین دستور یا پارامتر خاصی وجود نداره. فقط یک موضوع رو متوجه شدم: برای انتقال پکیج از dependencies به devDependencies و برعکس نیازی به uninstall پکیج نیست.
فقط کافیه دوباره پکیج رو در حالت مورد نظرمون نصب کنیم. یعنی اگر پکیج در لیست dependencies هست و میخوایم وارد منتقلش کنیم به لیست devDependencies فقط کافیه به صورت dev dependency دوباره نصبش کنیم:
و اگر پکیج در لیست devDependencies قرار داره و میخوایم به لیست dependencies اضافه بشه، اون رو به صورت dependency دوباره نصبش کنیم:
به هر حال بعضی موقع ها هم اینطوری میشه!
:)