Apa perbedaan antara npm install
dan npm run build
?
Saya telah memperhatikan dalam proyek saya bahwa kadang-kadang npm mulai gagal ketika npm install
dilakukan, tetapi, saat berjalan npm run build
, itu berfungsi dengan baik.
Bagaimana cara kerja kedua target ini install
dan run build
berbeda?
node.js
npm
npm-install
BalajiK
sumber
sumber
Jawaban:
npm install
menginstal dependensi ke dalamnode_modules/
direktori, untuk proyek node yang sedang Anda kerjakan. Anda dapat memanggilinstall
proyek node.js (modul) lain, untuk menginstalnya sebagai dependensi untuk proyek Anda.npm run build
adalah alias untuknpm build
, dan tidak melakukan apa-apa kecuali Anda menentukan apa yang "build" lakukan di file package.json Anda. Ini memungkinkan Anda melakukan tugas pembangunan / persiapan yang diperlukan untuk proyek Anda, sebelum digunakan di proyek lain.build
dipanggil olehlink
daninstall
perintah, menurut dokumentasi untuk build :sumber
npm run build
dannpm build
yang tidak sama. Saya akan memberi suara positif lagi jika Anda dapat membuktikan bahwa mereka memang sama atau mengoreksi jawaban Anda.npm build
dannpm run build
tidak sama. IMHO, Mungkin jawaban @churro di atas perlu diperbaiki. Tolong koreksi saya jika saya salah. stackoverflow.com/questions/29939697/…NPM pada 2019
npm build
tidak ada lagi. Anda harus meneleponnpm run build
sekarang. Info selengkapnya di bawah.TLDR;
npm install
: menginstal dependensi, lalu memanggilinstall
daripackage.json
scripts
lapangan.npm run build
: menjalankan bidang pembuatan daripackage.json
scripts
lapangan.Bidang Skrip NPM
https://docs.npmjs.com/misc/scripts
Ada banyak hal yang dapat Anda masukkan ke dalam
package.json
bidang skrip npm . Lihat tautan dokumentasi di atas lebih lanjut di atas siklus hidup skrip - sebagian besar memiliki kait pra dan posting yang dapat Anda jalankan skrip sebelum / setelah menginstal, menerbitkan, mencopot, menguji, memulai, menghentikan, menyusut, versi.Untuk Hal-Hal Rumit
npm install
tidak sama dengannpm run install
npm install
menginstalpackage.json
dependensi, lalu menjalankanpackage.json
scripts.install
npm run install
setelah dependensi diinstal.npm run install
hanya menjalankanpackage.json
scripts.install
, itu tidak akan menginstal dependensi .npm build
digunakan untuk menjadi perintah yang valid (dulu sama dengannpm run build
) tetapi sekarang tidak lagi; sekarang menjadi perintah internal. Jika Anda menjalankannya, Anda akan mendapatkan:npm WARN build npm build called with no arguments. Did you mean to npm run-script build?
Anda dapat membaca lebih lanjut di dokumentasi: https://docs.npmjs.com/cli/buildsumber
npm build
tidak ada lagi. Ini masih keluar dalam arti dikenal / khusus untuk npm, karena bereaksi dengan peringatan yang Anda sebutkan di bagian bawah. Pada dasarnya itu tidak melakukan apa-apa sekarang. Jawaban ini ke pertanyaan lain memberikan ringkasan singkat tentangnpm build
vsnpm run build
.Ponit yang perlu diperhatikan ::
1) Satu hal lagi,
npm build
dannpm run build
dua hal berbedanpm build
akan dilakukan seperti yang ditulis oleh Churro, tetapinpm run build
akan melakukan pekerjaan kustom yang tertulis di dalamnyapackage.json
2) Dan
npm build
dannpm run build
tidak sama. Yang saya maksud adalah, Anda tidak dapat menentukan beberapa hal di dalamnpm run build
skrip custom build ( ) dan berharapnpm build
untuk melakukan hal yang sama. Coba hal berikut untuk memverifikasi di Andapackage.json
:dan lari
npm run build
dannpm build
satu per satu dan Anda akan melihat perbedaannya. Untuk informasi lebih lanjut tentang perintah, silakan ikuti dokumentasi npm .Bersulang!!
sumber
npm run build
dannpm build
. Oke jadi mereka tidak sama, dalam hal apa? Jadi jawaban @ Churro salah?npm build
masih menjadi misteri. Senang mengetahui hal itu. Sejauh yang saya tahu, "npm build
akan melakukan apa yang ditulis oleh Churro" tidak benar. Churro mengatakan itu akan melakukan apa yang ditentukanpackage.json
untukbuild
perintah (seperti yang didefinisikan discripts
bagian saya kira). Tapi itulah yangnpm run build
dilakukan, dannpm build
tidak menjalankan perintah build yang ditentukan dipackage.json
scripts
bagian. Kecuali ada cara lain untuk mendefinisikan apa yangnpm build
harus dilakukan dipackage.json
, yang tidak dijelaskan di sini, atau oleh Churro (atau dalam dokumen NPM, saya pikir, sayangnya).npm build
berkata npm WARN buildnpm build
dipanggil tanpa argumen. Apakah Anda bermaksudnpm run-script build
? . Saya pikir itu tidak melakukan apa-apa. Setelah menghabiskan waktu untuk membaca semua jawaban di sini dan mencoba sendiri, saya masih tidak tahu apa tujuan darinpm build
:(.npm install
menginstal dependensi di konfigurasi package.json Anda.npm run build
menjalankan skrip "build" dan membuat skrip yang menjalankan aplikasi Anda - katakanlah server.jsnpm start
menjalankan skrip "start" yang kemudian akan menjadi "node server.js"Sulit untuk mengatakan dengan tepat apa masalahnya, tetapi pada dasarnya jika Anda melihat konfigurasi skrip Anda, saya kira "build" menggunakan beberapa jenis alat build untuk membuat aplikasi Anda sementara "mulai" menganggap build telah selesai tetapi kemudian gagal jika file tersebut tidak ada.
Anda mungkin menggunakan bower atau grunt - Saya sepertinya ingat bahwa aplikasi grunt yang khas akan mendefinisikan skrip tersebut serta skrip "bersih" untuk menghapus versi terakhir.
Alat build cenderung membuat file dalam folder bin /, dist /, atau build / yang kemudian dipanggil oleh skrip awal - misalnya "node build / server.js". Ketika Anda
npm start
gagal, itu mungkin karena Anda meneleponnpm clean
atau serupa untuk menghapus versi terbaru sehingga file aplikasi Anda tidak ada yang menyebabkan npm mulai gagal.Kode sumber npm build - untuk menyinggung diskusi dalam pertanyaan ini - ada di github untuk Anda lihat jika Anda mau. Jika Anda menjalankan
npm build
secara langsung dan memiliki skrip "build" yang ditentukan, skrip tersebut akan keluar dengan pesan kesalahan yang meminta Anda untuk memanggil skrip buildnpm run-script build
sehingga tidak sama dengannpm run script
.Saya tidak begitu yakin apa yang
npm build
dilakukannya, tetapi tampaknya ini terkait dengan skrip pasca-instalasi dan pengemasan dalam dependensi. Saya berasumsi bahwa ini mungkin memastikan bahwa setiap skrip build CLI atau pustaka asli yang diperlukan oleh dependensi dibuat untuk lingkungan tertentu setelah mengunduh paket. Ini akan menjadi alasan mengapa tautan dan instal memanggil skrip ini.sumber