gpt4 book ai didi

javascript - 指挥官不使用默认值

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:01 25 4
gpt4 key购买 nike

我使用 defaultArgs 设置指挥官,如下所示:

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

当我尝试从程序访问选项时,我没有得到任何值。

我使用以下方式调用我的应用程序而不使用任何参数:

babel-node src/index.js

更新:

我现在可以使用 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)

堆栈跟踪中的行号已关闭,因为我使用 webpack 来捆绑它。

最佳答案

我很好奇为什么你要使用 webpack 来捆绑 Node cli。传统上,像 webpack 或 browserify 这样的 bundler 用于为客户端项目复制 Node 模块系统,而不是服务器端项目。 (今天我了解到这是 JSPM/babel-node 的替代方案。)

Commander 抛出异常,因为您的默认名称为 outputDir 而不是 path,但您在 Commander 定义中传递 path.resolve(defaults.path))

关于javascript - 指挥官不使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38991975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com