npm scripts 里怎么传参数给 Node 脚本?
我在 package.json 里写了自定义脚本,想传参数进去,但试了几次都不对。比如我想运行一个构建脚本并指定环境,像这样:npm run build --mode=prod,但脚本里拿不到这个 mode 参数。
我试过用 process.argv 去读,但输出的数组里只有 node 和脚本路径,后面跟的参数没出现。是不是写法有问题?
console.log('args:', process.argv);
// 执行 npm run build -- --mode=prod 后
// 输出: ['node', '/path/to/build.js'],后面的 --mode=prod 没了?
在 package.json 里定义脚本:
然后运行时要用这种格式:
npm run build -- --mode=prod
在 build.js 里用 process.argv 去读取参数:
这样就能拿到 { mode: 'prod' } 了。记得把参数前面的 -- 也去掉,不然 key 会带着 -- 这个前缀。
这玩意搞了好几次才记住,每次都要试一下才敢用,真够呛。不过现在基本都靠这个方式传参了。