如何使用pnpm传递任意参数?附npm实现方式参考
pnpm 传递自定义参数的实现方法
可以用pnpm实现类似的参数传递,但方式和npm有区别:
- 正确的参数传递命令
pnpm会把未加--前缀的自定义flag当成自身命令的参数解析,因此需要用--分隔pnpm命令和要传递给脚本的参数:
# 完整写法 pnpm run build -- --foo="bar" # 简写(pnpm支持省略run直接执行脚本) pnpm build -- --foo="bar"
- 参数获取方式
pnpm不会将这类自定义参数注入到process.env.npm_config_*环境变量中,需要通过process.argv在脚本里解析:
// 在Node.js脚本中解析参数 const args = process.argv.slice(2); const fooParam = args.find(item => item.startsWith('--foo=')); const fooValue = fooParam ? fooParam.split('=')[1] : null; console.log(fooValue); // 输出 "bar"
如果你的build脚本是基于webpack、vite等支持命令行参数的工具,直接传递的参数会被工具自动解析,无需手动处理。
内容的提问来源于stack exchange,提问作者Dmitry
相关产品推荐
相关产品推荐

