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
本身是否有解决方案。
这就是我解决这个问题的方法:
- 创建一个新的
js
文件。假设名称是 run-command.js
.
- 在
package.json
中的 script
对象内添加一行 node ./run-command.js
。
- 在这个新创建的文件中导入
metadata.json
文件并提取必要的数据
- 执行你的命令
示例:
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
。
我有一个 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
本身是否有解决方案。
这就是我解决这个问题的方法:
- 创建一个新的
js
文件。假设名称是run-command.js
. - 在
package.json
中的script
对象内添加一行node ./run-command.js
。 - 在这个新创建的文件中导入
metadata.json
文件并提取必要的数据 - 执行你的命令
示例:
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
。