有人能解释一下为什么我在检索选项'-x'时遇到困难(见下文)?
我必须逃避一些角色吗?
除此之外:
节点b.js解析url1 url2 url3-x
npm运行babel节点a.js解析url1 url2 url3-x
这是我的package.json档案
{
"name": "commander_test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"babel-node": "babel-node --presets=env",
"a": "npm run babel-node a.js parse url1 url2 url3 -x",
"b": "node b.js parse url1 url2 url3 -x ",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"commander": "^2.18.0"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1"
}
}
npm运行a的结果:
> commander_test@1.0.0 a D:\repositories\node\commander
> npm run babel-node a.js parse url1 url2 url3 -x
> commander_test@1.0.0 babel-node D:\repositories\node\commander
> babel-node --presets=env "a.js" "parse" "url1" "url2" "url3"
[ 'node',
'D:\\repositories\\node\\commander\\a.js',
'parse',
'url1',
'url2',
'url3' ]
parse : url1 => undefined
parse : url2 => undefined
parse : url3 => undefined
npm运行b的结果
> commander_test@1.0.0 b D:\repositories\node\commander
> node b.js parse url1 url2 url3 -x
[ 'C:\\Program Files\\nodejs\\node.exe',
'D:\\repositories\\node\\commander\\b.js',
'parse',
'url1',
'url2',
'url3',
'-x' ]
parse : url1 => true
parse : url2 => true
parse : url3 => true
这2个文件a.js和b.js是一样的。只是a.js使用es6模块和b.js通用模块
import program from "commander" // a.js
let program = require("commander") // b.js
//from here it's the exact same code
console.log(process.argv)
program
.version('0.0.1')
.command('parse <urls...> ')
.option('-x, --opt', 'opt')
.action( function (urls, cmd) {
urls.forEach(url => {
console.log(`parse : ${url} => ${cmd.opt}`)
});
})
program.parse(process.argv)
我看到了安瑟[https://github.com/babel/babel/issues/1730#issuecomment-111247861]
多亏了Gajus,这里有了解决方案:他写道:
为了避免将来偶然发现这个线程的人感到困惑,这里有一个如何使用-的例子:
Babel节点--a--./foo--b在本例中:
--是传递给节点的选项(例如--debug或--throw deprecation)--b是传递给脚本的选项,即在process.argv下可用。
根据此解决方案,我将脚本更改为:
"scripts": {
"a": "babel-node -- a.js parse url1 url2 url3 -x",
"b": "node b.js parse url1 url2 url3 -x ",
"test": "echo \"Error: no test specified\" && exit 1"
}
成功了!!
谢谢
问题内容: 是否可以通过命令行将参数传递给MySQL脚本? 在此示例中,类似于@start_date的内容: 问题答案: 发现在网络上的答案在这里。 基本上,假设我们要运行以下查询: 我们可以这样传递“ start_date”和“ end_date”:
问题内容: 我有一个PHP文件,需要从命令行运行(通过crontab)。我需要传递给文件,但我不知道如何。我试过了: 但是返回了此错误: 无法打开输入文件:myfile.php?type = daily 我能做什么? 问题答案: 该参数(在结束了阵列)仅适用于网络访问的页面。 您需要像调用它一样,并从数组中检索该参数(为,因为为)。 如果该页面也用作网页,则可以考虑两个选项。使用shell脚本和w
问题内容: 我有一个名为的python文件,该python文件需要两个命令行参数:,Dockerfile如下所示: 如何通过这两个命令行参数,并以?我试过了但是没用。 问题答案: 您不能按预期使用和,因为它们是的选项。 启动一个终端。 将Docker容器作为守护程序启动。 要在Dockerfile中设置环境变量,请使用命令。 请参阅Dockerfile参考。 另一种选择是通过以下方式传递环境变量:
问题内容: 我在通过SSH将响应传递到远程服务器上的bash脚本时遇到问题。 我正在用Python 3.6.5编写程序,该程序将SSH到远程Linux服务器。在此远程Linux服务器上,有一个正在运行的bash脚本,需要用户输入才能填充。无论出于何种原因,我都无法通过SSH从原始python程序传递用户输入,而无法填写bash脚本用户输入的问题。 main.py SSH.py 类中的最后一个是启动
我想自动化它抛出脚本,这样每当它要求用户名时,我的脚本都会传递它 注意:即使是git推送命令也是通过脚本自动的 下面是我如何使用脚本自动执行git推送 它不止于此,但在代码命中git推送命令后,它会要求我输入密码和用户名。 那么,有没有办法让这个脚本传递它需要的所有信息,因为每次它都要求相同的用户名并传递
问题内容: 我是Python和Eclipse的新手,在理解如何将命令行参数传递给在Eclipse(Pydev)中运行的脚本时遇到一些困难。 以下链接说明了如何将命令行参数传递给python脚本。 要将命令行参数传递给模块(来自上面链接的代码), 我需要输入python控制台 要么 如何在Eclipse(Pydev)中将相同的参数传递给Python脚本? 谢谢 ! 问题答案: 如果您希望程序以交互方