我正在使用需要JSON配置文件的第三方库,我需要将一些env变量作为键值传递。如果我像往常一样包括它们,例如:
"s3": {
"key": process.env.AWS_ACCESS_KEY_ID,
"secret": process.env.AWS_SECRET_ACCESS_KEY,
"bucket": process.env.S3_MLL_BUCKET_NAME,
"destination": "/backups/database",
"encrypt": false,
"region": process.env.AWS_REGION
}
...我收到错误:
SyntaxError: config/s3_backup.config.json: Unexpected token p
答案 0 :(得分:14)
JSON没有环境变量的概念。您可以做的是将配置文件声明为node.js
模块,然后您将能够使用您的环境变量,如下所示:
module.exports = {
s3: {
key: process.env.AWS_ACCESS_KEY_ID,
secret: process.env.AWS_SECRET_ACCESS_KEY,
bucket: process.env.S3_MLL_BUCKET_NAME,
destination: "/backups/database",
encrypt: false,
region: process.env.AWS_REGION
}
};
答案 1 :(得分:2)
我遇到了同样的问题,对我有用的是使用js文件并导出对象module.exports = {config: {"exampleAPIKey":"ruier4343"}}
...然后“字符串化”对象,然后将其解析回json
const config = require("./jsConfigs.js").config;
const jsonConfig = JSON.parse(JSON.stringify(config))
我尝试了很多不同的方法,但这是唯一有效的方法。