Apa arti -save-dev dalam npm install grunt --save-dev

277

Saya baru saja mulai menggunakan Grunt.js . Cukup sulit untuk mengatur dan saya pada titik membuat package.jsonfile.

Setelah tutorial ini , dikatakan ada 3 cara untuk membuat package.jsonfile.

Yang pertama harus dilakukan npm install grunt --save-dev

Tetapi apa --save-devartinya? Saya mencoba mencari tetapi berakhir dengan sia-sia.

Vennsoh
sumber
Saya pikir saya berhasil menemukan beberapa jawaban. gruntjs.com/getting-started - npmjs.org/doc/json.html#devDependencies
Vennsoh
Tautan tutorial rusak
SteveC

Jawaban:

317

--save-dev: Paket akan muncul di devDependencies Anda.

Menurut npm instal dokumen .

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.

Dengan kata lain, ketika Anda menjalankan npm install, devDependencies proyek Anda akan diinstal, tetapi devDependencies untuk setiap paket yang bergantung pada aplikasi Anda tidak akan diinstal; lebih lanjut, aplikasi lain yang memiliki aplikasi Anda sebagai dependensi tidak perlu menginstal devDependencies Anda. Modul semacam itu hanya diperlukan ketika mengembangkan aplikasi (mis. Mendengus, mocha dll).

Menurut dokumentasi package.json

Sunting: Berusaha memvisualisasikan apa yang npm installdilakukan:

  • proyek Anda
    • ketergantungan diinstal
      • ketergantungan diinstal
        • ketergantungan diinstal
        • devDependency TIDAK diinstal
      • devDependency TIDAK diinstal
    • devDependency diinstal
      • ketergantungan diinstal
      • devDependency TIDAK diinstal
Andreas Hultgren
sumber
2
secara default tidak akan menginstal dengan dependensi dev tetapi bagaimana saya menginstal dengan itu? npm install --devbendera?
StanleyZheng
4
@stanzheng Saya tidak yakin apa yang perlu Anda ketahui. Jika Anda berada dalam proyek dan menjalankan npm install, dependensi proyek juga akan diinstal. Anda tidak ingin dependensi devDependensi diinstal. Jika Anda ingin mengembangkan paket npm, pilih git clone xxxproyek itu, dan jalankan npm installdi dalamnya.
Andreas Hultgren
3
"devDependencies untuk dependensi aplikasi Anda tidak akan diinstal ketika Anda menjalankan npm install" salah. Jika saya memiliki package.json dan hanya berisi "devDependencies" dengan paket npm saya, dan saya kemudian ketik "npm install," itu "devDependecies" diinstal.
inti
6
Saya mencoba untuk mengerti dan saya tidak. Kemudian saya mencoba memahami visualisasi dan saya tidak. Apa yang dimaksud dengan setiap item poin-peluru? Folder? Apa arti barang yang dicoret itu? Direktori yang tidak ada? Jika itu benar, bagaimana Anda bisa mendaftar hal - hal yang tidak ada secara mendalam ?
Rafael Eyng
8
Untuk memperjelas, jika npm installdijalankan di proyek Anda, semua devDependencies di package.json akan diinstal, tetapi jika Anda mengemas proyek Anda sebagai paket npm baru dan mempublikasikannya, ketika orang lain menginstal paket Anda dengan npm install, devDependencies tidak akan diinstal pada sistem mereka. Apakah itu benar? @stanzheng atau Anda dapat menjalankan npm install --produksi untuk menginstal segala sesuatu di package.json kecuali dependensi dev
rwilson04
99

Ada (setidaknya) dua jenis dependensi paket yang dapat Anda indikasikan di file package.json Anda:

  1. Paket-paket yang diperlukan untuk menggunakan modul Anda terdaftar di bawah properti "dependensi". Dengan menggunakan npm, Anda dapat menambahkan dependensi tersebut ke file package.json Anda dengan cara ini:

    npm install --save packageName
  2. Paket-paket yang diperlukan untuk membantu mengembangkan modul Anda terdaftar di bawah properti "devDependencies". Paket-paket ini tidak perlu bagi orang lain untuk menggunakan modul, tetapi jika mereka ingin membantu mengembangkan modul, paket-paket ini akan diperlukan. Dengan menggunakan npm, Anda dapat menambahkan devDependencies tersebut ke file package.json Anda dengan cara ini:

    npm install --save-dev packageName
Lonnie Best
sumber
35

Untuk menambahkan jawaban Andreas, Anda hanya dapat menginstal dependensi dengan menggunakan:

npm install --production
kepala mesin115
sumber
7

Dokumentasi dari npm untuk npm install <package-name> --save dan npm install <package-name> --save-devdapat ditemukan di sini:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

Sebuah package.jsonfile yang menyatakan metadata tentang modul Anda berkembang. Kedua perintah tersebut memodifikasi package.jsonfile ini . --saveakan mendeklarasikan paket yang diinstal (dalam hal ini,grunt ) sebagai dependensi untuk modul Anda;--save-devakan mendeklarasikannya sebagai dependensi untuk pengembangan modul Anda.

Tanyakan pada diri Anda: apakah paket yang diinstal diperlukan untuk menggunakan modul saya, atau hanya diperlukan untuk mengembangkannya?

Niko Kovacevic
sumber
6

Ketika Anda menggunakan parameter "--save" ketergantungan Anda akan masuk ke dalam # 1 di bawah ini di package.json. Ketika Anda menggunakan parameter "--save-dev" ketergantungan Anda akan masuk ke dalam # 2 di bawah ini di package.json.

# 1. "dependensi": paket-paket ini diperlukan oleh aplikasi Anda dalam produksi.

# 2. "devDependencies": paket ini hanya diperlukan untuk pengembangan dan pengujian

Sathesh
sumber
5

Bagi saya jawaban pertama tampak agak membingungkan, jadi singkatkan dan bersihkan:

npm install <package_name>menyimpan paket tertentu ke dalam dependensi secara default . Selain itu, Anda dapat mengontrol di mana dan bagaimana mereka disimpan dengan beberapa flag tambahan:

npm install <package_name> --no-save Mencegah menabung ke dependensi.

npm install <package_name> ---save-devmemperbarui devDependenciespaket Anda. Ini hanya digunakan untuk pengujian dan pengembangan lokal.

Anda dapat membaca lebih lanjut di dalam DCU

AnnaKlein
sumber