2015-11-02 11 views
7

Vorpal uygulaması oluşturduğunuzda, en azından dokümanlarda gördüğüm kadarıyla, kendi kabuğu oluşturur. Önce, o kabuğu girin ve sonra komutları yürütmeye başlarsınız. Şunun gibi: Yukarıdaki örnekteKomutun çıkışı, kendi kabuğunun yerine doğrudan terminale giden bir Vorpal uygulaması oluşturmak mümkün mü?

[email protected]: quotr 
quotr$ 
quotr$ snapshot 
You triggered `snapshot`. 
quotr$ 

, snapshot komut Vorpal kabuk "içinde" yürütülmektedir. Bu çıkış doğrudan terminale gitmiyor.

[email protected]: quotr snapshot 
You triggered `snapshot`. 
[email protected]: 

nasıl Vorpal ile elde edebilirsiniz

:

aradığım Ne böyle bir şeydir?

cevap

11

Evet, bunu Vorpal'a aktarılan bağımsız değişkenleri ayrıştıracak ve yürütecek olan vorpal.parse yöntemiyle yapabilirsiniz.

var vorpal = require('vorpal')(); 

vorpal 
    .command('snapshot') 
    .action(function (args, cb) { 
    this.log('You triggered `snapshot`.'); 
    cb(); 
    }); 

vorpal.parse(process.argv); 

Sen vorpal.show() atlanması ile basit komutu tamamladıktan sonra uygulama çıkış olabilir. Sorulmadığı için Node, yapacak hiçbir şeyin kalmadığını fark eder ve süreç doğal olarak çıkacaktır.

+0

Yayınladığınız kod çalışır, ancak sizin söylediğiniz gibi değil, çünkü(). Bu, eylemin sonunda geri aranmayı çağıramadığınız için işe yarıyor. Eylemde 'cb()' eklerseniz, vorpal içinde kalacaksınız. Gönderdiğiniz kodla bile, komut satırında verilen argüman 'snapshot' dışında bir şey ise, vorpal içinde kalır. – Josh

+0

Sadece eklemek istiyorum - bunu bir çözüm olarak kullanmak için, her bir komutta 'process.argv' seçeneğini işaretlemeniz gerekir. Bunu yapmanın daha iyi bir yolu olmalı. – Josh

+0

Bu sadece bir yazım hatasıydı - bu çıkmalı. Kontrol edecek. – dthree

İlgili konular