npm package.json scripts 传递参数
概述
直接加参数运行(如:npm run view test
),实际上是拼接字符串到末尾,不够灵活。
使用npm_config
环境变量传递参数,支持多个参数、多条命令顺序执行。
scripts
方法一 使用npm_config环境变量(推荐)
"scripts": {
"view": "echo %npm_config_host% & echo %npm_config_port%",
}
执行npm run view --host=localhost --port=2333
即可
跨平台环境变量
如果脚本需要跨平台运行,可使用cross-env
获取环境变量(就不需要区分%npm_config%
和$npm_config
了)
安装:npm install cross-env --save-dev
使用:
"scripts": {
"view": "cross-env-shell echo %npm_config_host% & echo $npm_config_port",
}
方法二 调整命令格式
仅适用于变量少、并且可以调整命令格式的情况。
原理:将参数调整至末尾
例如想要执行frida -U appname -l _agent.js
,其中appname
是可变的,则调整命令格式为:
"scripts": {
"attach": "frida -l _agent.js -U"
}
此时执行npm run attach appname
即可
js或ts
"scripts": {
"test": "node test.js"
}
执行npm run test appname
,直接从process.argv
获取即可:
const args = process.argv.slice(2);
console.log('process.argv:\n', process.argv)
console.log('参数:\n', args)
参考
转载自:https://juejin.cn/post/7032919800662016031