【问题标题】:package.json reference value from external json来自外部 json 的 package.json 参考值
【发布时间】:2018-04-02 11:41:25
【问题描述】:

我有一个 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 并将其插入到 sentry 命令中?

【问题讨论】:

    标签: reactjs npm create-react-app sentry


    【解决方案1】:

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

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

    1. 创建一个新的js 文件。假设名称是run-command.js
    2. package.jsonscript 对象内添加一行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 脚本感到满意,您可以使用像 ./sentry.sh 这样的 bash 脚本。

    【讨论】:

      猜你喜欢
      • 2015-10-08
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 2013-01-04
      • 2013-04-22
      • 2016-08-29
      相关资源
      最近更新 更多