通过gulp-nodemon传递CLI参数

时间:2016-04-15 10:54:46

标签: node.js coffeescript gulp command-line-interface

我正在使用npm包gulp-nodemon来启动我的网络服务器。

我遇到的问题是我无法将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

感谢。

2 个答案:

答案 0 :(得分:4)

使用args传递coffee命令的任何参数。这是脚本文件名后传递的agruments。

使用exec传递任何咖啡选项以及coffee可执行文件。这些是在脚本文件名之前传递的。

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

答案 1 :(得分: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