2016-04-15 35 views
2

我使用npm包gulp-nodemon來啓動我的網絡服務器。通過gulp-nodemon傳遞CLI參數

我遇到的問題是我無法將CLI參數傳遞給我的服務器腳本。

我想編寫這樣的事:

gulp --argument1 value1

然後是nodemon應該調用coffee server.coffee --argument1 value1

我目前nodemon任務:

# nodemon development server 
gulp.task 'nodemonServer', () -> 
    nodemon({ 
    script: 'server.coffee' 
    ext: 'coffee' 
    watch: ['server/', 'server.coffee'] 
    env: { 'NODE_ENV': 'development' } 
    }) 
    .on 'crash',() -> 
    notifyServerError() 

我試着寫script: 'server.coffee --argument1 value1' 但我收到一個奇怪的錯誤: File not found: C:\Users\user\projectRoot\"server.coffee

是的,用「在文件路徑中。這裏是日誌:

[13:13:10] [nodemon] starting `coffee.cmd "server.coffee --argument1 value1"` 
File not found: C:\Users\user\projectRoot\"server.coffee 

謝謝。

+0

是參數固定或將你提供不同的(或沒有)參數以及? –

+0

@RahatMahbub我想將給出的參數傳遞給服務器腳本,'gulp --argument1 value1'導致'coffee server.coffee --argument1 value1' –

+0

如果參數的數量有限,'' yargs'可以用來獲取arg和值,並有條件地將nodemon傳遞爲nodeArgs。 –

回答

2

使用args傳遞任何論據coffee命令。這是在腳本文件名後傳遞的延長。

使用exec可以通過任何咖啡選項以及coffee可執行文件。這些通過BEFORE腳本文件名。

var gulp = require('gulp'); 
var nodemon = require('gulp-nodemon'); 
gulp.task('nodemonServer', function() { 
    nodemon({ 
    script: 'server.coffee', 
    exec: 'coffee -p', 
    args: ['--argument','value1'], 
    ext: 'coffee' 
    , env: { 'NODE_ENV': 'development' } 
    }) 
}) 

要查看nodemon實際使用的命令,使用DEBUG=nodemon

DEBUG=nodemon gulp nodemonServer

它記錄:

nodemon bus new listener: reset (0) +0ms 
    nodemon bus new listener: reset (0) +6ms 
    ... 
[13:47:20] [nodemon] starting `coffee -p server.coffee --arguments value1` 
    nodemon spawning +0ms coffee -p server.coffee --arguments value1 
+0

非常感謝,它的工作原理是:D –

0

根據在gulp-nodemon庫一些樣品,你可以使用:

nodeArgs: ['--some-arg']

例如:

# nodemon development server 
gulp.task 'nodemonServer', () -> 

    nodemon({ 
    script: 'server.coffee' 
    ext: 'coffee' 
    watch: ['server/', 'server.coffee'] 
    env: { 'NODE_ENV': 'development' } 
    nodeArgs: ['--argument1', 'value1'] 
    }) 

    .on 'crash',() -> 
    notifyServerError() 

來源:Example gulpfile from gulp-nodemon

+1

這可悲只適用於傳遞給節點可執行文件的參數,而不是服務器腳本本身。 –