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);
// ...