从 NPM Script 获取标准输出到一个变量
Get stdout from NPM Script into a variable
我有这个节点脚本解析 .YAML 并输出一个名为 version
的字段
node node/getAssetsVersion.js
=> "2.1.2"
我正在尝试将 stdout 变成一个变量并在 NPM 脚本中使用它
这就是我在 package.json:
中尝试做的事情
"scripts": {
"build": "cross-env VERSION=\"$(node node/getAssetsVersion.js)\" \"node-sass --include-path scss src/main.scss dist/$VERSION/main.css\""
}
谢谢!
而不是这个:
VERSION=\"$(node node/getAssetsVersion.js)\"
您可能需要使用:
VERSION=\"$(node node/getAssetsVersion.js | cut -d'\"' -f2)\"
如果你的程序的输出是你在问题中写的:
=> "2.1.2"
如果只是这样:
"2.1.2"
那么上面的方法仍然有效,但你可以使用更简单的命令:
VERSION=$(node node/getAssetsVersion.js)
没有引号。
但在后面的部分中,$VERSION
可能不会像您预期的那样被替换。
既然你用 bash
标记了你的问题,我建议你写一个 Bash 脚本:
#!/bin/bash
VERSION=$(node node/getAssetsVersion.js | cut -d'\"' -f2)
node-sass --include-path scss src/main.scss dist/$VERSION/main.css
或:
#!/bin/bash
VERSION=$(node node/getAssetsVersion.js)
node-sass --include-path scss src/main.scss dist/$VERSION/main.css
取决于 getAssetsVersion.js 的输出是什么并将其放入 package.json:
"scripts": {
"build": "bash your-bash-script-name"
}
我会避免任何多次转义的引号。
我有这个节点脚本解析 .YAML 并输出一个名为 version
的字段node node/getAssetsVersion.js
=> "2.1.2"
我正在尝试将 stdout 变成一个变量并在 NPM 脚本中使用它
这就是我在 package.json:
中尝试做的事情"scripts": {
"build": "cross-env VERSION=\"$(node node/getAssetsVersion.js)\" \"node-sass --include-path scss src/main.scss dist/$VERSION/main.css\""
}
谢谢!
而不是这个:
VERSION=\"$(node node/getAssetsVersion.js)\"
您可能需要使用:
VERSION=\"$(node node/getAssetsVersion.js | cut -d'\"' -f2)\"
如果你的程序的输出是你在问题中写的:
=> "2.1.2"
如果只是这样:
"2.1.2"
那么上面的方法仍然有效,但你可以使用更简单的命令:
VERSION=$(node node/getAssetsVersion.js)
没有引号。
但在后面的部分中,$VERSION
可能不会像您预期的那样被替换。
既然你用 bash
标记了你的问题,我建议你写一个 Bash 脚本:
#!/bin/bash
VERSION=$(node node/getAssetsVersion.js | cut -d'\"' -f2)
node-sass --include-path scss src/main.scss dist/$VERSION/main.css
或:
#!/bin/bash
VERSION=$(node node/getAssetsVersion.js)
node-sass --include-path scss src/main.scss dist/$VERSION/main.css
取决于 getAssetsVersion.js 的输出是什么并将其放入 package.json:
"scripts": {
"build": "bash your-bash-script-name"
}
我会避免任何多次转义的引号。