npm scripts 添加参数的这些操作你学会了吗?

851 阅读1分钟

前言

npm run *** 是前端小伙伴经常用到的指令,但是如何给这些指令传递参数呢?

方法一:通过 process.argv 获取

假设我们的指令未 npm run test

传递参数:npm run test arg1 arg2

获取:process.argv[process.argv.length - 1] / process.argv[process.argv.length - 2] 可分别得到 ’arg2' 和 'agr1'

感兴趣的小伙伴可以打印 process.argv 看看里面有什么

方法二:通过 process.env.npm_config_* 获取

通过 process.argv 的方式获取参数的方式存在很大的弊端

弊端一:只能接收字符串,如果需要一个布尔值时需要匹配转换

弊端二:会跟其他脚本冲突

来看看 npm_config_ 吧

传参方式: npm run test --testArg

获取: const getArg = process.env.npm_config_testArg

取得的值为 true

其他参数1

npm run test --testArg=我是参数

则 process.env.npm_config_testArg 的值为 '我是参数'

其他参数2

npm run test --testArg1='我是参数1' --testArg2=false --testArg3='我是参数3'

则有:

  1. process.env.npm_config_testArg1 === '我是参数1'
  2. process.env.npm_config_testArg2 === ''
  3. process.env.npm_config_testArg3 === '我是参数3'