2015-08-07 9 views
6

Kendimi tek bir komut çalıştırdığım bir durumda buldum. Dosyayı .js node compile.jsBaşka bir komut dosyasından Çalıştır Düğüm Paketi + Bağımsız Değişkenler

Tüm bağımlılıkları yüklenen aşağıdaki

browserify -t jadeify client/app.js -o bundle.js

çalıştırmak gerekiyor ve CLI çalışıyor bu komutu çalıştırarak, sadece onu yürütmek için nasıl anlamaya ihtiyacımız var düğüm komut dosyasında.

Ayrıca exec yoluyla değil ancak ssh ile

Teşekkür

+0

ile

var browserify = require('browserify')(); var fs = require('fs'); var lang = process.argv[2]; console.log('Doing something with the lang value: ', lang); browserify.add('./client/app.js'); browserify.transform(require("jadeify")); browserify.bundle().pipe(fs.createWriteStream(__dirname + '/bundle.js')); 

Run it, ayrıca içinde [browserify API] (https://github.com/substack/node-browserify#api-example) kullanabilir senin compile.js dosyası. – hassansin

+0

Elbette, ama bu nasıl yapılacağını bilmiyorum, bu yüzden bir örnek/yapıldı - google'da herhangi bir sonuç bulamıyor – Owen

+0

[node.js kabuk komut yürütme] 'nin olası kopyası (http: // stackoverflow. com/Q/14458508/1168892)? Çözümün uygulanması, 'require' ('child_process') doğurur: spawn ('browserify', ['-t', 'jadeify', 'client/app.js', '-o', 'bundle.js]) ' –

cevap

1

process.argv aracılığıyla komut dosyası bağımsız değişkenlerine erişebilirsiniz.

Komut satırı argümanlarını içeren bir dizi. İlk öğe 'düğüm', ikinci öğe ise JavaScript dosyasının adı olacaktır. Sonraki elemanlar herhangi bir ek komut satırı argümanı olacak. İhtiyacınız olanı almak için browserify api ve birlikte jadeify ile birlikte kullanabilirsiniz.Ayrı bir işlem başlatarak dışında $ node compile.js enGB

2

Sen cd /project && npm run compile yürütmek zaman bu mükemmel çalışıyor bizim package.json iç

"script" : [ "compile": "browserify -t jadeify client/app.js -o bundle.js" ] benzer bir şey içeren aşağıdaki var api-example'u kullanabilmeli ve jadeify setup paragrafında önerilen dönüştürmeyle genişletebilmelidir.

var browserify = require('browserify'); 
var fs = require('fs'); 
var b = browserify(); 
b.add('./client/app.js'); 

// from jadeify docs 
b.transform(require("jadeify")); 

// simple demo outputs to stdout, this writes to a file just like your command line example. 
b.bundle().pipe(fs.createWriteStream(__dirname + '/bundle.js')); 
+0

Cömert girdiniz için teşekkür ederim Simon! Bu gece buna bir göz atacağım - hiçbir zaman gerçekten hiçbir düğüm yazımını yapmadım bu yüzden bu benim için% 100 yeni, bu yüzden net ve basit cevabınız çok takdir ediliyor. Ancak, bana bir değişken/dizgeyi komut dosyasına nasıl ileteceğimiz konusunda yönlendirebilir misiniz? ör. 'node compile.js --lang enGB', çok teşekkürler – Owen

+0

@owen https://www.npmjs.com/package/minimist adresine bir göz atmalısınız, http: // stackoverflow üzerindeki yanıtlarda da belirtildiği gibi. com/questions/4351521/how-to-pass-komut satırı argümanları-node-js –

+0

@OwenMelbourne işe yaradı mı? Bir ödül verdiğinizi görüyorum, fakat asıl soruda olmadığı zaman neden php exec soruyorsunuz? (Eğer düzgün çalışmıyorsa, php exec kullanarak komut satırı sürümünü çalıştırabilmelisiniz, eğer çalışmıyorsa, muhtemelen yürütülebilir dosyaya, ortam ayarına ya da izinle ilgili bir konuya ilişkin bir sorun olabilir) –

İlgili konular