我正在使用 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

谢谢。

最佳答案

使用 argscoffee 命令传递任何参数。这是在脚本文件名之后传递的参数。

使用 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=nodemonDEBUG=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

关于node.js - 通过 gulp-nodemon 传递 CLI 参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36645258/

10-13 00:33