Saya baru menggunakan npm dan bower, membangun aplikasi pertama saya di emberjs :).
Saya memang memiliki sedikit pengalaman dengan rails, jadi saya terbiasa dengan ide file untuk daftar dependensi (seperti bundler Gemfile)
Pertanyaan: ketika saya ingin menambahkan paket (dan memeriksa dependensi ke git), di mana tempatnya - ke dalam package.json
atau ke dalam bower.json
?
Dari apa yang saya kumpulkan,
menjalankan bower install
akan mengambil paket dan meletakkannya di /vendor
direktori,
menjalankannya npm install
akan mengambilnya dan memasukkannya ke /node_modules
direktori.
Jawaban SO ini mengatakan bower adalah untuk front-end dan npm adalah untuk hal-hal backend.
Ember-app-kit tampaknya mematuhi perbedaan ini dari pandangan pertama ... Tapi instruksi dalam gruntfile untuk mengaktifkan beberapa fungsionalitas memberikan dua perintah eksplisit, jadi saya benar-benar bingung di sini.
Secara intuitif saya akan menebaknya
npm install --save-dev nama-paket akan sama dengan menambahkan nama paket ke package.json saya
bower install --save nama paket mungkin sama dengan menambahkan paket ke bower.json saya dan menjalankan install bower ?
Jika itu masalahnya, kapan saya harus menginstal paket secara eksplisit seperti itu tanpa menambahkannya ke file yang mengelola dependensi (selain menginstal alat baris perintah secara global)?
sumber
Jawaban:
Pembaruan untuk pertengahan 2016 :
Semuanya berubah begitu cepat sehingga jika sudah terlambat 2017 jawaban ini mungkin tidak up to date lagi!
Pemula dapat dengan cepat tersesat dalam pilihan alat bangun dan alur kerja, tetapi yang paling mutakhir di 2016 adalah tidak menggunakan Bower, Grunt atau Gulp sama sekali! Dengan bantuan Webpack Anda dapat melakukan semuanya secara langsung di NPM!
Hasil Google "npm as build tool": https://medium.com/@dabit3/introduction-to-using-npm-as-a-build-tool-b41076f488b0#.c33e74tsa
Webpack: https://webpack.github.io/docs/installation.html
Jangan salah paham orang menggunakan alur kerja lain dan saya masih menggunakan GULP dalam proyek lawas saya (tapi perlahan-lahan keluar dari itu), tetapi ini adalah bagaimana hal itu dilakukan di perusahaan dan pengembang terbaik yang bekerja dalam alur kerja ini menghasilkan banyak uang!
Lihatlah template ini, ini merupakan pengaturan yang sangat terbaru yang terdiri dari campuran teknologi terbaik dan terbaru: https://github.com/coryhouse/react-slingshot
Pertanyaan Anda:
Semuanya termasuk dalam package.json sekarang
Dependensi yang diperlukan untuk build ada di "devDependencies" yaitu
npm install require-dir --save-dev
(--save-dev memperbarui package.json Anda dengan menambahkan entri ke devDependencies)npm install lodash --save
(--simpan pembaruan package.json Anda dengan menambahkan entri ke dependensi)Selalu . Hanya karena kenyamanan. Ketika Anda menambahkan flag (
--save-dev
atau--save
) file yang mengelola deps (package.json) akan diperbarui secara otomatis. Jangan buang waktu dengan mengedit dependensi di dalamnya secara manual. Shortcut untuknpm install --save-dev package-name
isnpm i -D package-name
dan shortcut untuknpm install --save package-name
isnpm i -S package-name
sumber
With help of Webpack you can do everything directly in NPM!
Itu tidak benar, orang bahkan tidak perlu paket web dalam alurNpm dan Bower keduanya alat manajemen ketergantungan. Tetapi perbedaan utama antara keduanya adalah npm digunakan untuk menginstal modul Node js tetapi bower js digunakan untuk mengelola komponen front end seperti html, css, js dll .
Fakta yang membuat ini lebih membingungkan adalah bahwa npm menyediakan beberapa paket yang dapat digunakan dalam pengembangan front-end juga, seperti
grunt
danjshint
.Garis-garis ini menambah makna
Sunting : Grunt sangat berbeda dari Npm dan Bower. Grunt adalah alat pelari tugas javascript. Anda dapat melakukan banyak hal menggunakan gerutuan yang harus Anda lakukan secara manual sebaliknya. Menyoroti beberapa penggunaan Grunt:
Ada plugin kasar untuk kompilasi sass, uglifying javascript Anda, salin file / folder, minifying javascript dll.
Harap dicatat bahwa plugin kasar juga merupakan paket npm.
Pertanyaan 1
Itu sangat tergantung di mana paket ini milik. Jika itu adalah modul simpul (seperti grunt, request) maka ia akan masuk ke package.json sebaliknya ke bower json.
Pertanyaan-2
Tidak masalah apakah Anda menginstal paket secara eksplisit atau menyebutkan ketergantungan pada file .json. Misalkan Anda sedang mengerjakan proyek simpul dan Anda membutuhkan proyek lain, katakanlah
request
, maka Anda memiliki dua opsi:ATAU
npm install --save request
--save
opsi menambahkan ketergantungan pada file package.json juga. Jika Anda tidak menentukan--save
opsi, itu hanya akan mengunduh paket tetapi file json tidak akan terpengaruh.Anda dapat melakukannya dengan cara ini, tidak akan ada perbedaan yang berarti.
sumber
npm
hanya menggunakan , berbeda dengan tutorial v1 yang menggunakan npm dan bower. Saya sangat, sangat menyukai fakta bahwa (a)package.json
adalah satu-satunya hal yang harus dipertahankan, (b) yang menghitung dependensi secara berulang dalam satu linernpm install
, dan (c) ketika ada masalah Anda hanya perlu menghapusnode_modules
folder dan menjalankan npm install lagi.