我有一个metadata.json 文件,其中包含一些值:
{"build":{"major":0,"minor":88}}
在我的 create-react-app 项目中,我需要运行脚本来上传哨兵地图文件:
"sentry" : "sentry-cli releases files 0.88 upload-sourcemaps --validate ./build"
应从metadata.json 文件中提取0.88。然后我可以运行它:
npm run sentry
如何使用构建主要/次要从metadata.json文件中提取值0.88并将其插入哨兵命令中?
我不确定是否有解决方案可以通过
package.json
来做到这一点。
以下是我为解决此问题而采取的步骤:
js
文件。假设名字是run-command.js
。node ./run-command.js
中的 script
对象下添加一行 package.json
。metadata.json
文件并提取必要的数据示例:
package.json
scripts: {
"sentry": "node ./run-command.js"
}
运行命令.js
const metadata = require('./metadata.json');
const { exec } = require('child_process');
exec(`echo ${metadata.build.major}`, (err, stdout, stderr) => {
if (err) {
// node couldn't execute the command
return;
}
// the *entire* stdout and stderr (buffered)
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
将 echo 替换为您的命令。它看起来像
./node_modules/.bin/sentry ...
如果您熟悉 shell 脚本,则可以使用 bash 脚本,例如
./sentry.sh
。