likes
comments
collection
share

npm package.json scripts 传递参数

作者站长头像
站长
· 阅读数 36

概述

直接加参数运行(如: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 使用指南

转载自:https://juejin.cn/post/7032919800662016031
评论
请登录