在React组件中导入Json文件
我正在尝试在React组件中加载language.json文件。当我想导入json文件时,第一步出现以下错误。这是错误:
ERROR in ./app/languages.jsonModule parse failed: /.../languages.json Unexpected token (1:12)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (1:12)
at Parser.pp.raise (........)
我正在使用webpack,这是配置文件:
var path = require('path'); var webpack = require('webpack');
module.exports = {
entry: ['./app/main.jsx'],
devtool: 'cheap-module-eval-source-map',
output: { path: __dirname+"/app", filename: 'bundle.js' },
module: {
loaders: [
{ test: /\.jsx?$/,
loader: 'babel-loader',
query: { presets: ['es2015', 'react'] },
include: path.join(__dirname, 'src')
}
]
}
};
并且我已经安装了以下软件包:
"babel-core": "^6.2.1","babel-loader": "^6.2.0",
"babel-preset-es2015": "^6.1.18",
"babel-preset-react": "^6.1.18"
这就是我尝试导入文件(ES6格式)的方式:
import lang_code from '../../app/languages.json';
另外,我检查了json文件格式并进行了验证!那么,您认为问题出在哪里?
回答:
azium是正确的,需要加载程序,但这是很好的配置:
> npm install json-loader --save-dev
module.exports = { ....
resolve: {
extensions: ['', '.js', '.jsx', '.json']
},
...
module: {
...
{
test: /\.json$/,
loader: 'json'
}
...
}
}
通过将json
扩展名添加到resolve
,您无需在import
语句中指定扩展名。
以上是 在React组件中导入Json文件 的全部内容, 来源链接: utcz.com/qa/429381.html