Разрешить только одну строку в минимисте? - PullRequest
0 голосов
/ 27 апреля 2020

Ниже приведен вывод, полученный из кода, который также приведен ниже.

Вопрос

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')
  }

1 Ответ

1 голос
/ 27 апреля 2020

Вы не можете иметь повторяющиеся имена свойств в объекте (к сожалению они разрешены , больше не выбрасывают исключения).

Ваш текущий код эквивалентен

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') }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...