Nodejs npm scripts 里的命令间怎么传参呢

Nodejs npm scripts 里的命令间怎么传参呢

比如 “scripts”:{ “build-master”:"VERSION=$version gulp build " “build”:“npm run build-master” } 这个 version 想在 启动时输入获取,比如 npm run build v1.0

6 回复

npm run build v1.0 就行了。 webpack.config.js 里面 JSON.parse(process.env.npm_config_argv).remain[0] 就能取到


恩恩,不过最好能各命令间传递参数,因为这两个命令还有些其他业务,需要转一下

直接后面加, 执行的脚本里 process 能拿到吧

能拿到,但是因为嵌套了一层,导致执行 build-master 时会出现" gulp build “v1.0” " 报错

设置的是环境变量吧。 VERSION=v1.0 npm run build 这样呢?

在 Node.js 中,通过 npm scripts 传递参数给不同的命令可以通过多种方式实现。最常见的方式是利用环境变量和命令行参数。

方法一:使用环境变量

你可以在脚本中设置环境变量,然后在其他脚本中读取这些变量。例如:

// package.json
{
  "scripts": {
    "set-env": "export MY_VAR=hello && echo $MY_VAR",
    "use-env": "echo Using env var: $MY_VAR"
  }
}

注意:在 Windows 上,你需要使用 cross-envset 命令来设置环境变量。

方法二:通过命令行参数

使用 -- 可以将 npm 脚本的参数传递给实际的命令。例如:

// package.json
{
  "scripts": {
    "start": "node index.js",
    "custom-script": "node script.js --arg1 value1 --arg2 value2"
  }
}

script.js 中,你可以使用 process.argv 来读取这些参数:

// script.js
const args = process.argv.slice(2);
console.log(args); // 输出: [ '--arg1', 'value1', '--arg2', 'value2' ]

小结

对于简单的参数传递,使用命令行参数更为直接。如果需要跨脚本共享数据,环境变量则是一个不错的选择。不过,需要注意的是,环境变量在不同操作系统上的设置方式可能有所不同。

希望这些方法能帮助你在 Node.js 的 npm 脚本中有效地传递参数。

回到顶部