Javascript 最小值列表中只允许一个字符串?

Javascript 最小值列表中只允许一个字符串?,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,下面是我从下面的代码中得到的信息 问题 input和i都是正确的,正如预期的那样,但是为什么project和p不正确呢 它们的定义方式与input和i完全相同 $ bin/test --input -p { _: [], update: false, u: false, input: true, i: true, p: '', project: '' } 代码是 'use strict' var minimist = require('minimi

下面是我从下面的代码中得到的信息

问题

input
i
都是正确的,正如预期的那样,但是为什么
project
p
不正确呢

它们的定义方式与
input
i
完全相同

$ bin/test --input -p           
{ _: [],
  update: false,
  u: false,
  input: true,
  i: true,
  p: '',
  project: '' }
代码是

'use strict'
var minimist = require('minimist')

module.exports = () => {
var argv = minimist(process.argv.slice(2), {
  string: 'input',
  string: 'project',
  boolean: ['help'],
  boolean: ['update'],
  alias: { i: 'input', h: 'help', p: 'project', u: 'update' },
  unknown: function () { console.log('Unkown argument') }
})

  if (argv.input || argv.i) {
    console.log(argv)
  }

  if (argv.project || argv.p) {
    console.log(argv)
    console.log('p')
  }

对象中不能有重复的属性名(遗憾的是,不再引发异常)

您当前的代码相当于

var argv = minimist(process.argv.slice(2), {
  string: 'project',
  boolean: ['update'],
  alias: { i: 'input', h: 'help', p: 'project', u: 'update' },
  unknown: function () { console.log('Unkown argument') }
})
其中,
input
未定义为字符串参数,而
project
为字符串参数

你想写的是

var argv = minimist(process.argv.slice(2), {
  string: ['input', 'project'],
  boolean: ['help', 'update'],
  alias: { i: 'input', h: 'help', p: 'project', u: 'update' },
  unknown: function () { console.log('Unkown argument') }
})

对象不能有两个
.string
属性和两个
.boolean
属性。你的衣帽匠应该对此抱怨的。