ya saya bingung tentang ini - jika Anda menggunakan integrasi berkelanjutan seperti Jenkins, apakah Jenkins tahu untuk menggunakan modul devDependencies untuk menjalankan tes? Saya berasumsi begitu tapi itu tidak terlalu jelas.
Alexander Mills
5
mungkin mengedit pertanyaan juga untuk mengatakan, apa perbedaan fungsional antara dependensi dan dependensi dev?
Alexander Mills
5
Paket yang diinstal melalui opsi --save-dev tidak diinstal ulang saat pengguna menjalankannya npm install --production. Itulah perbedaan operasional (lihat https://docs.npmjs.com/cli/install untuk info lebih lanjut).
Andrew
7
@MuhammadUmer. Justru itulah sebabnya orang-orang bertanya di sini - untuk 'mendapatkan petunjuk'. Mungkin menambahkan jawaban nyata akan lebih produktif - ini jelas perbedaan yang menarik yang tidak saya sadari.
Simon_Weaver
3
juga jika Anda menetapkan variabel lingkungan NODE_ENVke produksi, maka hanya npm installsecara otomatis mengecualikan paket pengembangan.
Muhammad Umer
Jawaban:
591
--save-devdigunakan untuk menyimpan paket untuk tujuan pengembangan. Contoh: tes unit, minifikasi ..
--save digunakan untuk menyimpan paket yang diperlukan untuk menjalankan aplikasi.
Bagaimana mereka berbeda? Kapan saya akan menggunakan satu vs yang lain? Masih bisakah saya menggunakannya dalam paket produksi jika masih di bawah --save-dev?
Dave Voyles
14
Jawabannya dengan ringkas menjawab dua pertanyaan pertama Anda. Jawaban untuk pertanyaan terakhir, "Bisakah saya masih menggunakan paket dalam produksi jika di bawah --save-dev," adalah "tidak." Meskipun tentu mungkin untuk melakukan ini, itu tidak dimaksudkan.
Technetium
61
Versi -Dsingkat : kependekan dari --save-devdan -Smerupakan kependekan dari--save
chrisco
164
Jawaban ini jelas tidak jelas. Bahkan sebuah contoh kecil akan membantu membuat ini menjadi lebih jelas.
Choylton B. Higginbottom
33
Perhatikan bahwa pada npm versi 5.0.0, --saveopsi tidak lagi diperlukan. Jika Anda melakukannya npm install my-package, itu akan menambahkan "paket saya" sebagai dependensi dalam file package.json.
Martin Carel
644
Perbedaan antara --savedan --save-devmungkin tidak segera terlihat jika Anda telah mencoba keduanya di proyek Anda sendiri. Jadi, inilah beberapa contoh ...
Katakanlah Anda sedang membangun aplikasi yang menggunakan paket momen untuk mem-parsing dan menampilkan tanggal. Aplikasi Anda adalah penjadwal sehingga sangat membutuhkan paket ini untuk dijalankan, seperti pada: tidak dapat berjalan tanpanya . Dalam hal ini yang akan Anda gunakan
npm install moment --save
Ini akan menciptakan nilai baru di package.json Anda
"dependencies":{..."moment":"^2.17.1"}
Ketika Anda sedang berkembang, sangat membantu untuk menggunakan alat-alat seperti test suites dan mungkin memerlukan inti melati dan karma . Dalam hal ini yang akan Anda gunakan
Anda tidak perlu rangkaian uji untuk menjalankan aplikasi dalam keadaan normal, jadi ini adalah --save-devketergantungan tipe, tidak lebih. Anda dapat melihat bagaimana jika Anda tidak mengerti apa yang sebenarnya terjadi, itu agak sulit untuk dibayangkan.
Ketergantungan ditentukan dalam objek sederhana yang memetakan nama paket ke rentang versi. Rentang versi adalah string yang memiliki satu atau lebih deskriptor yang dipisahkan oleh ruang. Ketergantungan juga dapat diidentifikasi dengan tarball atau URL git.
Tolong jangan menaruh test harness atau transpiler di objek dependensi Anda. Lihat devDependencies , di bawah ini.
Bahkan dalam dokumen, ia meminta Anda untuk menggunakan --save-dev untuk modul seperti test harness.
IMO, saya pikir kata kunci 'save' adalah masalah. Mengapa mereka tidak membuat flag -dev untuk dikembangkan dan -deploy untuk ditempatkan. Masuk akal daripada kata kunci 'simpan'.
Thinh Vu
1
Mengapa paket itu tidak tahu (memutuskan) apakah itu paket rilis atau paket dev dan --simpan digunakan untuk keduanya. Tampaknya aneh untuk membuat pengguna instalasi memutuskan ini, ketika pengembang paket menciptakan niat.
CodeGrue
4
CodeGrue, jika Anda menggunakan jQuery hanya untuk menguji komponen Bereaksi itu akan masuk ke save-dev, tetapi Anda mungkin tidak benar-benar menggunakannya untuk membangun proyek utama Anda. Ya, ini mungkin. Jadi mengapa pembuat paket itu tahu apa yang Anda lakukan dengannya?
Michael Bruce
2
Jauh lebih jelas. Saya seorang pria tertanam yang mempelajari alur kerja Bootstra + Node.js untuk pertama kalinya. Tidak jelas apa perbedaannya.
Leroy105
3
@YakovL save-dev berarti paket tidak diinstal ketika orang lain menginstal paket Anda sebagai ketergantungannya. Paket-paket yang hanya digunakan untuk menjalankan skrip seperti start / build tidak diperlukan dalam kasus itu, jadi mereka dimasukkan dalam dependensi dev. Jika Anda bekerja pada aplikasi web dan bukan pada paket untuk digunakan oleh orang lain, Anda mungkin tidak perlu khawatir sama sekali.
riv
112
Secara default, NPM hanya menginstal paket di bawah node_modules. Ketika Anda mencoba menginstal dependensi untuk aplikasi / modul Anda, Anda harus menginstalnya terlebih dahulu, dan kemudian menambahkannya ke dependenciesbagian Anda package.json.
--save-devmenambahkan paket pihak ketiga ke dependensi pengembangan paket. Itu tidak akan diinstal ketika seseorang menginstal paket Anda. Ini biasanya hanya diinstal jika seseorang mengkloning repositori sumber Anda dan berjalan npm installdi dalamnya.
--savemenambahkan paket pihak ketiga ke dependensi paket. Ini akan diinstal bersama dengan paket setiap kali seseorang berjalan npm install package.
Dependensi Dev adalah dependensi yang hanya diperlukan untuk mengembangkan paket. Itu bisa termasuk pelari uji, kompiler, pembuat paket, dll. Kedua jenis dependensi disimpan dalam file paket package.json. --savemenambah dependencies, --save-devmenambahdevDependencies
Saya curiga ini ... Anda dapat menggunakan --save-dev dan --save secara bergantian jika Anda membangun aplikasi web yang tidak akan menjadi paket yaitu diunduh dari npm, jika Anda mengembangkan paket untuk berbagi dengan orang lain, itu Penting untuk memahami perbedaannya.
VFein
13
Terima kasih akhirnya seseorang yang mengatakan tujuannya ketika Anda menggunakan npm install
CapturedTree
3
--save sekarang default dengan npm install dengan rilis npm 5 pada 2017
NattyC
tunggu, mengapa kalimatnya rumit? Dalam pengembang DevDependecy dapat menginstal paket, dan itu akan diperbarui hanya devDevependency. Jadi ketika pengembang baru mengkloning basis kode proyek dan menjalankan npm install => di sini hanya dependency package name is going to install.di node_modules .. bukan paket pengembang seperti pada Dev-dependency.
Anupam Maurya
60
Contoh sempurna untuk ini adalah:
$ npm install typescript --save-dev
Dalam hal ini, Anda ingin memiliki Typecript (bahasa pengkodean javascript-parseable) yang tersedia untuk pengembangan, tetapi setelah aplikasi dikerahkan, itu tidak perlu lagi, karena semua kode telah ditranslasikan ke javascript. Dengan demikian, tidak masuk akal untuk memasukkannya ke dalam aplikasi yang diterbitkan. Memang, itu hanya akan memakan waktu dan meningkatkan waktu unduhan.
Apa yang saya anggap membingungkan adalah bagaimana ini penting? Paket yang disimpan menggunakan --savehanya disimpan di node_modulesfolder. Kode tidak termasuk dalam situs web yang digunakan.
Kokodoko
6
@Kokodoko Saat Anda menggunakan --save-devflag, paket ditambahkan ke devDependenciesobjek Anda . Jika / ketika seseorang menginstal paket Anda , semua dependenciesdiunduh tetapi devDependenciestidak, karena mereka tidak diharuskan saat runtime. Seperti jawaban yang dinyatakan, ini menghemat waktu dan ruang mereka. Pengembang yang mengerjakan file paket Anda sendiri dapat berjalan npm installdi dalam direktori paket untuk menginstalnya devDependenciesjuga.
Jasjit Singh Marwah
Jadi, jika Anda mengunduh repo dari github dan mengetik npm install, devDependenciesapakah diabaikan?
Kokodoko
41
Biarkan saya memberi Anda sebuah contoh,
Anda adalah pengembang perpustakaan npm yang sangat SERIUS . Yang menggunakan pustaka pengujian yang berbeda untuk menguji paket.
Seorang pengguna Mengunduh perpustakaan Anda dan ingin menggunakannya dalam kode mereka. Apakah mereka perlu mengunduh perpustakaan pengujian Anda juga? Mungkin Anda gunakan jestuntuk pengujian dan mereka gunakan mocha. Apakah Anda ingin mereka menginstal jestjuga? Hanya Untuk menjalankan perpustakaan Anda?
Tidak benar? Itu sebabnya mereka berada di devDependencies.
Ketika seseorang melakukannya, npm i yourPackagehanya perpustakaan yang diperlukan untuk MENJALANKAN perpustakaan Anda akan diinstal. Perpustakaan lain yang Anda gunakan untuk menggabungkan kode Anda dengan atau pengujian dan mengejek tidak akan diinstal karena Anda memasukkannya ke dalam devDependencies. Cukup rapi bukan?
Jadi, mengapa para pengembang perlu memaparkan devDependancies ?
Katakanlah paket Anda adalah paket sumber terbuka dan 100 orang mengirim permintaan tarik ke paket Anda. Lalu bagaimana mereka akan menguji paket tersebut? Mereka akan git clonerepo Anda dan ketika mereka akan melakukan npm iyang dependensi serta devDependencies .
Karena mereka tidak menggunakan paket Anda. Mereka mengembangkan paket lebih lanjut, sehingga, untuk menguji paket Anda, mereka harus lulus uji kasus yang ada dan juga menulis yang baru. Jadi, mereka perlu menggunakan devDependenciesperpustakaan Anda yang berisi semua perpustakaan pengujian / bangunan / mengejek yang ANDA gunakan.
Jauh lebih baik daripada jawaban yang diterima serta jawaban dengan suara maksimal karena jawaban ini lebih praktis. Terima kasih!
Pengecualian tanpa tertangkap
Ini harus menjadi jawaban yang dipilih. Semua jawaban lain tidak benar-benar menjelaskan MENGAPA Anda akan menggunakan satu di atas yang lain.
Rocky Kev
34
Seperti yang disarankan oleh @ andreas-hultgren dalam jawaban ini dan menurut npm docs :
Jika seseorang berencana mengunduh dan menggunakan modul Anda dalam program mereka, maka mereka mungkin tidak ingin atau perlu mengunduh dan membuat kerangka uji atau dokumentasi eksternal yang Anda gunakan.
Namun, untuk pengembangan webapp, Yeoman (alat perancah yang menginstal file paket.json yang ditinjau oleh rekan-rekan, antara lain) menempatkan semua paket di devDependency dan tidak ada dalam dependensi, sehingga tampaknya penggunaan --save-devtaruhan yang aman dalam pengembangan webapp , setidaknya.
Perhatikan bahwa saya telah mengalami masalah ketika menggunakan tegukan dan menginstal paket dengan --save-devmana paket tidak akan menginstal dependancies yang diperlukan. Menjalankan --savemenginstal dependensi yang hilang.
Nick M
18
Saya juga ingin mencatat bahwa saya sekarang menggunakan --saveuntuk semua kecuali dependensi pengujian dan dokumentasi (sesuai npm docs). Saya mulai berpikir contoh Yeoman yang saya sebutkan di atas bukan contoh yang baik dari praktik terbaik.
wayfarer_boy
Saya pikir juga begitu, mengapa Anda perlu --save-devmenjadi semakin tidak jelas dengan setiap jawaban di sini :)
Kokodoko
20
--save-devmenyimpan spec semver ke dalam array "devDependencies" dalam file deskriptor paket Anda, dan --savemenyimpannya dalam "dependensi".
jawaban ini paling masuk akal bagi saya, devDependency kemudian diperlukan untuk pengembangan tetapi bukan produksi, jadi htmllint, kompilasi sass dll dan Ketergantungan adalah untuk persyaratan produksi, seperti Diaporama yang perlu hadir untuk hal-hal yang harus dijalankan.
penggiling gorila
3
@ ahnbizcad Di sini dijawab lebih baik, tetapi perbedaan fungsional utama adalah bahwa dependensi devD tidak termasuk secara transitif.
Laju
Bukankah cara paling intuitif untuk menggambarkannya untuk seseorang yang belum tahu, ini ?: Dev --save-devmembuat paket-paket lokal untuk proyek Anda, sedangkan --savemembuatnya lokal untuk instalasi node Anda?
ahnbizcad
9
Jawaban yang jelas sudah disediakan. Tetapi perlu disebutkan bagaimana devDependenciesmemengaruhi menginstal paket:
Secara default, npm install akan menginstal semua modul yang terdaftar sebagai dependensi di package.json. Dengan flag --production (atau ketika variabel lingkungan NODE_ENV diatur ke produksi), npm tidak akan menginstal modul yang terdaftar di devDependencies.
--save-dev digunakan untuk modul yang digunakan dalam pengembangan aplikasi, tidak perlu saat menjalankannya di lingkungan produksi
--save digunakan untuk menambahkannya di package.json dan diperlukan untuk menjalankan aplikasi.
Contoh: express, body-parser, lodash, helm, mysql semua ini digunakan saat menjalankan penggunaan aplikasi - simpan untuk meletakkan dependensi sementara mocha, istanbul, chai, sonarqube-scanner semua digunakan selama pengembangan, jadi letakkan mereka di dev -dependensi.
tautan npm atau instal npm juga akan menginstal modul dev-dependency beserta modul dependensi di folder proyek Anda
Semua penjelasan di sini bagus, tetapi tidak memiliki hal yang sangat penting: Bagaimana Anda menginstal dependensi produksi saja? (tanpa ketergantungan pengembangan). Kami terpisah dependenciesdari devDependenciesdengan menggunakan --saveatau --save-dev. Untuk menginstal semua yang kami gunakan:
npm i
Untuk menginstal hanya paket produksi yang harus kita gunakan:
Orang-orang menggunakan npm pada produksi untuk melakukan hal-hal keren yang jahat, Node.js adalah contohnya, jadi Anda tidak ingin semua alat dev Anda dijalankan.
Jika Anda menggunakan gulp (atau sejenisnya) untuk membuat file membangun untuk diletakkan di server Anda maka itu tidak masalah.
npm install --production
. Itulah perbedaan operasional (lihat https://docs.npmjs.com/cli/install untuk info lebih lanjut).NODE_ENV
ke produksi, maka hanyanpm install
secara otomatis mengecualikan paket pengembangan.Jawaban:
--save-dev
digunakan untuk menyimpan paket untuk tujuan pengembangan. Contoh: tes unit, minifikasi ..--save
digunakan untuk menyimpan paket yang diperlukan untuk menjalankan aplikasi.sumber
-D
singkat : kependekan dari--save-dev
dan-S
merupakan kependekan dari--save
--save
opsi tidak lagi diperlukan. Jika Anda melakukannyanpm install my-package
, itu akan menambahkan "paket saya" sebagai dependensi dalam file package.json.Perbedaan antara
--save
dan--save-dev
mungkin tidak segera terlihat jika Anda telah mencoba keduanya di proyek Anda sendiri. Jadi, inilah beberapa contoh ...Katakanlah Anda sedang membangun aplikasi yang menggunakan paket momen untuk mem-parsing dan menampilkan tanggal. Aplikasi Anda adalah penjadwal sehingga sangat membutuhkan paket ini untuk dijalankan, seperti pada: tidak dapat berjalan tanpanya . Dalam hal ini yang akan Anda gunakan
Ini akan menciptakan nilai baru di package.json Anda
Ketika Anda sedang berkembang, sangat membantu untuk menggunakan alat-alat seperti test suites dan mungkin memerlukan inti melati dan karma . Dalam hal ini yang akan Anda gunakan
Ini juga akan menciptakan nilai baru di package.json Anda
Anda tidak perlu rangkaian uji untuk menjalankan aplikasi dalam keadaan normal, jadi ini adalah
--save-dev
ketergantungan tipe, tidak lebih. Anda dapat melihat bagaimana jika Anda tidak mengerti apa yang sebenarnya terjadi, itu agak sulit untuk dibayangkan.Diambil langsung dari NPM docs docs # dependencies
Bahkan dalam dokumen, ia meminta Anda untuk menggunakan --save-dev untuk modul seperti test harness.
Saya harap ini membantu dan jelas.
sumber
Secara default, NPM hanya menginstal paket di bawah node_modules. Ketika Anda mencoba menginstal dependensi untuk aplikasi / modul Anda, Anda harus menginstalnya terlebih dahulu, dan kemudian menambahkannya ke
dependencies
bagian Andapackage.json
.--save-dev
menambahkan paket pihak ketiga ke dependensi pengembangan paket. Itu tidak akan diinstal ketika seseorang menginstal paket Anda. Ini biasanya hanya diinstal jika seseorang mengkloning repositori sumber Anda dan berjalannpm install
di dalamnya.--save
menambahkan paket pihak ketiga ke dependensi paket. Ini akan diinstal bersama dengan paket setiap kali seseorang berjalannpm install package
.Dependensi Dev adalah dependensi yang hanya diperlukan untuk mengembangkan paket. Itu bisa termasuk pelari uji, kompiler, pembuat paket, dll. Kedua jenis dependensi disimpan dalam file paket
package.json
.--save
menambahdependencies
,--save-dev
menambahdevDependencies
dokumentasi instalasi npm dapat dirujuk di sini.
sumber
dependency package name is going to install.
di node_modules .. bukan paket pengembang seperti pada Dev-dependency.Contoh sempurna untuk ini adalah:
Dalam hal ini, Anda ingin memiliki Typecript (bahasa pengkodean javascript-parseable) yang tersedia untuk pengembangan, tetapi setelah aplikasi dikerahkan, itu tidak perlu lagi, karena semua kode telah ditranslasikan ke javascript. Dengan demikian, tidak masuk akal untuk memasukkannya ke dalam aplikasi yang diterbitkan. Memang, itu hanya akan memakan waktu dan meningkatkan waktu unduhan.
sumber
--save
hanya disimpan dinode_modules
folder. Kode tidak termasuk dalam situs web yang digunakan.--save-dev
flag, paket ditambahkan kedevDependencies
objek Anda . Jika / ketika seseorang menginstal paket Anda , semuadependencies
diunduh tetapidevDependencies
tidak, karena mereka tidak diharuskan saat runtime. Seperti jawaban yang dinyatakan, ini menghemat waktu dan ruang mereka. Pengembang yang mengerjakan file paket Anda sendiri dapat berjalannpm install
di dalam direktori paket untuk menginstalnyadevDependencies
juga.npm install
,devDependencies
apakah diabaikan?Biarkan saya memberi Anda sebuah contoh,
jest
untuk pengujian dan mereka gunakanmocha
. Apakah Anda ingin mereka menginstaljest
juga? Hanya Untuk menjalankan perpustakaan Anda?Tidak benar? Itu sebabnya mereka berada di
devDependencies
.Ketika seseorang melakukannya,
npm i yourPackage
hanya perpustakaan yang diperlukan untuk MENJALANKAN perpustakaan Anda akan diinstal. Perpustakaan lain yang Anda gunakan untuk menggabungkan kode Anda dengan atau pengujian dan mengejek tidak akan diinstal karena Anda memasukkannya ke dalamdevDependencies
. Cukup rapi bukan?Jadi, mengapa para pengembang perlu memaparkan devDependancies ?
Katakanlah paket Anda adalah paket sumber terbuka dan 100 orang mengirim permintaan tarik ke paket Anda. Lalu bagaimana mereka akan menguji paket tersebut? Mereka akan
git clone
repo Anda dan ketika mereka akan melakukannpm i
yang dependensi serta devDependencies .Karena mereka tidak menggunakan paket Anda. Mereka mengembangkan paket lebih lanjut, sehingga, untuk menguji paket Anda, mereka harus lulus uji kasus yang ada dan juga menulis yang baru. Jadi, mereka perlu menggunakan
devDependencies
perpustakaan Anda yang berisi semua perpustakaan pengujian / bangunan / mengejek yang ANDA gunakan.sumber
Seperti yang disarankan oleh @ andreas-hultgren dalam jawaban ini dan menurut npm docs :
Namun, untuk pengembangan webapp, Yeoman (alat perancah yang menginstal file paket.json yang ditinjau oleh rekan-rekan, antara lain) menempatkan semua paket di devDependency dan tidak ada dalam dependensi, sehingga tampaknya penggunaan
--save-dev
taruhan yang aman dalam pengembangan webapp , setidaknya.sumber
--save-dev
mana paket tidak akan menginstal dependancies yang diperlukan. Menjalankan--save
menginstal dependensi yang hilang.--save
untuk semua kecuali dependensi pengujian dan dokumentasi (sesuai npm docs). Saya mulai berpikir contoh Yeoman yang saya sebutkan di atas bukan contoh yang baik dari praktik terbaik.--save-dev
menjadi semakin tidak jelas dengan setiap jawaban di sini :)--save-dev
menyimpan spec semver ke dalam array "devDependencies" dalam file deskriptor paket Anda, dan--save
menyimpannya dalam "dependensi".sumber
--save-dev
membuat paket-paket lokal untuk proyek Anda, sedangkan--save
membuatnya lokal untuk instalasi node Anda?Jawaban yang jelas sudah disediakan. Tetapi perlu disebutkan bagaimana
devDependencies
memengaruhi menginstal paket:Lihat: https://docs.npmjs.com/cli/install
sumber
Anda biasanya tidak ingin mengasapi paket produksi dengan hal-hal yang hanya ingin Anda gunakan untuk tujuan Pengembangan.
Gunakan opsi
--save-dev
(atau-D
) untuk memisahkan paket-paket seperti kerangka kerja Unit Test (bercanda, melati, moka, chai, dll.)Paket lain apa pun yang dibutuhkan aplikasi Anda untuk Produksi, harus diinstal menggunakan
--save
(atau-S
).Jika Anda membuka
package.json
file maka Anda akan melihat entri ini terdaftar di bawah dua bagian berbeda:sumber
--save-dev digunakan untuk modul yang digunakan dalam pengembangan aplikasi, tidak perlu saat menjalankannya di lingkungan produksi --save digunakan untuk menambahkannya di package.json dan diperlukan untuk menjalankan aplikasi.
Contoh: express, body-parser, lodash, helm, mysql semua ini digunakan saat menjalankan penggunaan aplikasi - simpan untuk meletakkan dependensi sementara mocha, istanbul, chai, sonarqube-scanner semua digunakan selama pengembangan, jadi letakkan mereka di dev -dependensi.
tautan npm atau instal npm juga akan menginstal modul dev-dependency beserta modul dependensi di folder proyek Anda
sumber
Semua penjelasan di sini bagus, tetapi tidak memiliki hal yang sangat penting: Bagaimana Anda menginstal dependensi produksi saja? (tanpa ketergantungan pengembangan). Kami terpisah
dependencies
daridevDependencies
dengan menggunakan--save
atau--save-dev
. Untuk menginstal semua yang kami gunakan:Untuk menginstal hanya paket produksi yang harus kita gunakan:
sumber
Saya ingin menambahkan beberapa ide saya sebagai
Saya pikir semua perbedaan akan muncul ketika seseorang menggunakan kode Anda daripada menggunakan sendiri
Misalnya, Anda menulis perpustakaan HTTP yang disebut
node's request
Di perpustakaan Anda,
Anda menggunakan lodash untuk menangani string dan objek, tanpa lodash, kode Anda tidak dapat berjalan
Jika seseorang menggunakan perpustakaan HTTP Anda sebagai bagian dari kode-kodenya. Kode Anda akan dikompilasi dengan miliknya.
kode Anda perlu lodash, Jadi Anda perlu dimasukkan
dependencies
ke dalam kompilasiJika Anda menulis proyek seperti
monaco-editor
, yang merupakan editor web,Anda memiliki bundel semua kode dan paket
product env library
web Anda, saat build selesai, hanya memiliki amonaco-min.js
Jadi seseorang tidak mempermasalahkan apakah
--save
atau--save-dependencies
hanya dia yang membutuhkannyamonaco-min.js
Ringkasan:
Jika seseorang ingin mengkompilasi kode Anda (gunakan sebagai pustaka), masukkan
lodash
yang digunakan oleh kode Andadependencies
Jika seseorang ingin menambahkan lebih banyak fitur ke kode Anda, ia perlu
unit test
dancompiler
, masukkan ke dalamnyadev-dependencies
sumber
Orang-orang menggunakan npm pada produksi untuk melakukan hal-hal keren yang jahat, Node.js adalah contohnya, jadi Anda tidak ingin semua alat dev Anda dijalankan.
Jika Anda menggunakan gulp (atau sejenisnya) untuk membuat file membangun untuk diletakkan di server Anda maka itu tidak masalah.
sumber