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) 复制代码
参考
npm script之传参
npm scripts 使用指南
作者:XhyEax
链接:https://juejin.cn/post/7032919800662016031