Gruntjs:我可以分享" auth"不同的ftpush任务之间的部分?

时间:2014-04-03 10:48:46

标签: javascript json deployment ftp gruntjs

我的Gruntfile中有一个任务,它通过ftp将更改的文件推送到我的服务器。这些任务都使用相同的身份验证,我想删除所有重复的#34; auth"零件并定义一次。

当前工作版本(包含大量重复项)看起来像这样(为了便于阅读而缩短):

ftpush: {
  css_prod: {
    auth: {
      host: 'xxx.xx.xx.x',
      port: 21,
      authKey: 'authKey'
    },
    src: '<%= dirs.dev_css_build %>',
    dest: '<%= dirs.prod_css %>',
    simple: true,
    useList: false
  },
  css_wordpress: {
    auth: {
      host: 'xxx.xx.xx.x',
      port: 21,
      authKey: 'authKey'
    },
    src: '<%= dirs.dev_css %>/style.css',
    dest: '<%= dirs.prod_theme_current %>',
    simple: true,
    useList: false
  },
  js_standalone: {
    auth: {
      host: 'xxx.xx.xx.x',
      port: 21,
      authKey: 'authKey'
    },
    src: '<%= dirs.dev_js_standalone %>',
    dest: '<%= dirs.prod_js_standalone %>',
    simple: false,
    useList: false
  }
}

我已尝试定义&#34; auth&#34;参与&#34;选项&#34;区域,如:

ftpush: {
  options: {
    auth: {
      host: 'xxx.xx.xx.x',
      port: 21,
      authKey: 'authKey'
    }      
  },
  css_prod: {
    src: '<%= dirs.dev_css_build %>',
    dest: '<%= dirs.prod_css %>',
    simple: true,
    useList: false
  },
  css_wordpress: {
    src: '<%= dirs.dev_css %>/style.css',
    dest: '<%= dirs.prod_theme_current %>',
    simple: true,
    useList: false
  },
  js_standalone: {
    src: '<%= dirs.dev_js_standalone %>',
    dest: '<%= dirs.prod_js_standalone %>',
    simple: false,
    useList: false
  }
}

但这不起作用。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

不是一个完美的解决方案,但您可以使用grunt配置模板来引用仅在一个地方定义的实际值。

例如,您可以尝试让第二个解决方案为每个“真实”部分添加下一行:

auth: '<%= ftpush.options.auth %>'

这样,auth部分将插入所有子部分。