package.json 来自外部的参考值 json

package.json reference value from external json

我有一个 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

如何使用 build major/minor 从 metadata.json 文件中提取值 0.88 并将其插入哨兵命令?

我不确定 package.json 本身是否有解决方案。

这就是我解决这个问题的方法:

  1. 创建一个新的 js 文件。假设名称是 run-command.js.
  2. package.json 中的 script 对象内添加一行 node ./run-command.js
  3. 在这个新创建的文件中导入 metadata.json 文件并提取必要的数据
  4. 执行你的命令

示例:

package.json

scripts: {
  "sentry: "node ./run-command.js"
}

run-command.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