0

这是我的配置文件:

import nconf from "nconf";
import path from "path";

nconf.argv()
    .env()
    .file({
        file: path.join(
                __dirname,
                `manifest.${process.env['NODE_ENV'] || 'development'}.json`
            )
    });

var manifest = {
    server: nconf.get('server'),
    connections: nconf.get('connections'),
    plugins: nconf.get('plugins')
};

export default manifest;

这是配置文件

{
    "server": {},
    "connections": [
        {
            "port": 3000,
            "labels": ["api"]
        }
    ],
    "plugins": [
        {
            "vision": {},
            "visionary": {
                "engines": {
                    "jsx": "hapi-react-views"
                },
                "relativeTo": __dirname,
                "path": ""
            }
        }
    ]
}

不幸的是,我收到以下错误:

throw new Error("Error parsing your configuration file: [" + self.file +
            ^
Error: Error parsing your configuration file: [/Users/mazzy/vagrant-devbox/hapi-react-es6/server/config/manifest.development.json]: Unexpected token _
    at [object Object].File.loadSync (/Users/mazzy/vagrant-devbox/hapi-react-es6/node_modules/nconf/lib/nconf/stores/file.js:14
4

1 回答 1

0

我相信问题出在这里:

"relativeTo": __dirname,

nconf 假设您的配置文件是 JSON,但这不是有效的 JSON。

如果您的配置文件中需要 JavaScript,一种选择是require(或import)它,然后使用.defaults而不是.file(您可能希望将文件名从.jsonto更改为.js明确它是 JavaScript,而不是 JSON):

import nconf from "nconf";
import path from "path";
import config from `./manifest.${process.env['NODE_ENV'] || 'development'}`;

nconf.argv()
    .env()
    .defaults(config);

// ...

我没有对此进行测试,但希望它有所帮助。

于 2015-09-05T18:46:52.023 回答