`npm build`, package.json içinde“ build ”adlı komut dosyasını çalıştırmaz


138

Yeni bir modül için npm buildgulp / Grunt / diğer özel yapım araçları olmadan kullanmaya çalışıyorum .

"scripts": {
  "build": "node build.js"
},

Build.js basitçe

console.log('Hello')

Ancak,

npm build

0 durumu ile hiçbir şey yazdırmadan çıkar.

Koşu:

npm install

Ayrıca tüm normal şeyleri yapar, ancak build.js'yi de çalıştırmaz.

Npm'nin derleme betiğimi çalıştırmasını nasıl sağlayabilirim?

Düzenleme: Basit bash komutları bile çalışmıyor gibi görünüyor, ör.

"scripts": {
    "build": "touch TESTFILE"
},

Bu adda bir dosya oluşturmaz.


Çözüm: installbunun yerine kullanın.
Zaz

Bu temelde NPM'nin büyük ve sezgisel olmayan bir sıkıntısıdır ve İpliği kullanmaya devam etmemin nedenlerinden biridir. İplik ile, herhangi bir özel komut dosyasını bir parametre gibi çalıştırabilirim, yani iplik hikaye kitabı hikaye kitabı komut dosyasını çalıştıracaktır. NPM'de npm run hikaye kitabı yapmalıyım ve bunun üzerine, eğer npm aracılığıyla herhangi bir parametre iletmek istiyorsam, gerektirir - bundan önce, bu yüzden iplik hikaye kitabını karşılaştırırken --ci - npm run storybook - --ci, bu benim için bir beyinsiz.
Emobe

Yanıtlar:


243

Maalesef npm build, dokümanlarda açıklandığı gibi zaten dahili bir komut :

Bu, npm bağlantısı ve npm kurulumu tarafından çağrılan sıhhi tesisat komutudur. Genellikle doğrudan çağrılmamalıdır.

Bu komut zaten var olduğundan, her zaman gölgelendirir "build": "node build.js".

Kendi komut dosyanızı çalıştırmanın tam yolu, run-scriptya da diğer adıdırrun :

$ npm run build

npm startve diğerleri kısa el yoludur, ancak yalnızca varolan bir npm komutu onu gölgelemediğinde olduğu gibi bir seçenektir npm build.


Posterity için (diğerlerinin de belirttiği gibi) npm buildnpm tarafından düğüm- gyp kullanarak yerel C / C ++ Düğüm eklentileri oluşturmak için kullanılır . İyi belgelenmez, çünkü genellikle otomatik olarak gerçekleşir, ancak ilgileniyorsanız kaynak kodu buradadır .


15
Peki ne yapar npm build ? Görebildiğim kadarıyla tüm dosyaları tamamen değişmeden bırakır ...
qntm

2
Bazı paketler oluşturma işlemi gerektirir. Çalıştırdığınız zaman npm installve npm genellikle STH ihtiyaçları düğüm-gyp sonra çalışmaya başlaması olduğunu C / C ++ bağları vardır ya bir paket bulur npm build. Bu paketleri npm buildtek başınıza çalışarak yeniden oluşturabilirsiniz .
Jakub Miziołek

4
İç komut olarak değiştirildi gerektiğini _buildve npm buildbir kısayol gibi shuould npm startvenpm test
Pawel

1
Bunun npm buildkomut dosyamı çağırmayacağını ve bir paketin derlenmiş bileşenlerini oluşturmak için kullanıldığını anlıyorum. Hala bunu nasıl yapacağından emin değilim: hangi dosyaları arar, vb?
aaaidan

1
Eğer kendim bir paket yazacak olsaydım, npm buildanlamını doldurmak için ne yapılacağını bilmek güzel olurdu ...
Frank Nocke

20

"Build" olarak adlandırılan komut dosyası package.jsonhiçbir şekilde özel değildir. Çalıştırmanın tek yolu:

npm run-script build

Npm tarafından otomatik olarak adlandırılan bazı adlar vardır , ancak "derleme" bunlardan biri değildir. Tam liste:

  • prepublish, publish,postpublish
  • preinstall, install,postinstall
  • preuninstall, uninstall,postuninstall
  • preversion, version,postversion
  • pretest, test,posttest
  • prestop, stop,poststop
  • prestart, start,poststart
  • prerestart, restart,postrestart
  • preCUSTOMve postCUSTOMözel komut dosyası adları için.

4

Tamam, bir yapıyı kendi başına çalıştırmak için şunu kullanın:

npm run-script build

3

Hiçbir npm run buildşey yazdırmama sorunu yaşadım . npm run build --verboseihtiyacım çıktı almak için kullanarak sona erdi .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.