I командир установки с defaultArgs так:Commander не использует значения по умолчанию
import * as validations from './validation'
import program from 'commander'
import path from 'path'
export default function initializeCommander (defaults) {
program
.version('0.0.1')
.usage('redbubble-demo')
.option('-u', '--url [url]', validations.isValidUrl, defaults.url)
.option('-o', '--output-dir [path]', validations.hasValidParentDirectory, path.resolve(defaults.path))
.option('-s', '--size [size]', validations.isValidSize, defaults.size)
.parse(process.argv)
return program
}
У меня есть значения по умолчанию, заданные здесь, и передать их функции, как это:
const defaultValues = {
url: 'someuRL',
size: 'medium',
outputDir: './www'
}
const program = initializeCommander(defaultValues)
console.log(program) //no value in console
Когда я пытаюсь и получить доступ к параметрам от program
, я не получаю никаких значений.
Я называю мое приложение без каких-либо аргументов, используя:
babel-node src/index.js
UPDATE:
Я могу запустить приложение в качестве бинарной теперь используют npm link
, но я получаю эту ошибку:
TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.resolve (path.js:1146:7)
at initializeCommander (/home/vamsi/Do/redbubble-demo/build/index.js:9889:222)
at Object.<anonymous> (/home/vamsi/Do/redbubble-demo/build/index.js:87:34)
at __webpack_require__ (/home/vamsi/Do/redbubble-demo/build/index.js:22:30)
at /home/vamsi/Do/redbubble-demo/build/index.js:42:18
at Object.<anonymous> (/home/vamsi/Do/redbubble-demo/build/index.js:45:10)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
Номера строк в stack trace
отключены, потому что я использую webpack
, чтобы связать его.
Я использую webpack, потому что у меня есть операторы 'import' по всему моему коду. Кроме того, я читал http://jlongster.com/Backend-Apps-with-Webpack--Part-I. Он не обрабатывает длинные аргументы, такие как '--output-dir', но корректно работает с' -o'. Как я могу обработать длинные аргументы? – vamsiampolu