Javascript 尝试使用babel/register模块读取json文件时出错

Javascript 尝试使用babel/register模块读取json文件时出错,javascript,json,node.js,babeljs,nconf,Javascript,Json,Node.js,Babeljs,Nconf,这是我的配置文件: import nconf from "nconf"; import path from "path"; nconf.argv() .env() .file({ file: path.join( __dirname, `manifest.${process.env['NODE_ENV'] || 'development'}.json` ) });

这是我的配置文件:

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

我认为问题在于:

"relativeTo": __dirname,
nconf假设您的配置文件是JSON,但这不是有效的JSON

如果您的配置文件中需要JavaScript,一个选项是
需要
(或
导入
)它,然后使用
。默认值
而不是
。文件
(您可能需要将文件名从
.json
更改为
.js
,以明确它是JavaScript,而不是json):


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

\uu dirname
不是有效的JSON。将其包装成字符串,然后在JS中对其求值可能会起作用,或者只需放置所需的路径。
import nconf from "nconf";
import path from "path";
import config from `./manifest.${process.env['NODE_ENV'] || 'development'}`;

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

// ...