2014-10-22 17 views
10

से रनरवर को कमांड कैसे लिखें, कुछ परियोजनाओं के लिए ग्रंट का उपयोग करने के बाद मैंने गुलप को एक कोशिश देने का फैसला किया।गुलप - गल्पफाइल

परियोजनाओं पर हमें काम के अधिकांश पायथन आधारित हैं, और जिस तरह से हम आम तौर पर उन्हें कमांड लाइन से चलाया जाता है: 'अजगर manage.py runserver'

ग्रंट के साथ

, मैं घुरघुराना-bg-खोल पाया प्लगइन है, और इस तरह मेरे आदेश चला पा रहा था:

// see: https://npmjs.org/package/grunt-bg-shell 
bgShell: { 
    _defaults: { 
    bg: true 
    }, 
    runDjango: { 
    cmd: 'python <%= paths.manageScript %> runserver 0.0.0.0:<%= port %>' 
    //cmd: 'python <%= paths.manageScript %> runserver' 
    } 
} 
grunt.registerTask('serve', [ 
'bgShell:runDjango', 
'watch' 
]); 

दुर्भाग्य से, अब तक मैं Gulp के लिए एक समान प्लगइन खोजने में असमर्थ किया गया है। मैंने गल्प-शैल, गल्प-रन, गल्प-एक्ट, सभी का कोई फायदा नहीं हुआ है। अधिकांश मैं कंसोल पर अपनी स्ट्रिंग मुद्रित करने में सक्षम हूं, लेकिन मैं वास्तविक कमांड चलाने में सक्षम हूं।

कोई विचार?

उत्तर

8

मैं फ्लास्क सर्वर चलाने के लिए gulp-shell का उपयोग कर रहा हूं। मेरा मानना ​​है कि इसे Django के साथ उसी तरह काम करना चाहिए:

var shell = require('gulp-shell'); 
gulp.task('flask', shell.task(['. env/bin/activate && python my_script.py'])); 

क्या आपने एक और वाक्यविन्यास का उपयोग किया था ...?

7

आप ऐसा कर सकते हैं:

var process  = require('child_process'); 

gulp.task('flask', function(){ 
    var spawn = process.spawn; 
    console.info('Starting flask server'); 
    var PIPE = {stdio: 'inherit'}; 
    spawn('python', ['manage.py','runserver'], PIPE); 
}); 

यह एक नया बच्चा प्रक्रिया 'अजगर manage.py runserver' चल spawns और आउटपुट धारा घूंट कुप्पी के उत्पादन में गुजरता है।

1

यह एक पुराना सवाल है, लेकिन एक अच्छा विकल्प django-gulp (https://pypi.python.org/pypi/django-gulp/2.0.0) है। जब आप runerve कमांड चलाते हैं तो यह आपके gulp डिफ़ॉल्ट कार्य को चलाएगा (gulpfile को manage.py की एक ही निर्देशिका में होना चाहिए)।

संबंधित मुद्दे