在React组件中导入Json文件

我正在尝试在React组件中加载language.json文件。当我想导入json文件时,第一步出现以下错误。这是错误:

ERROR in ./app/languages.json

Module 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

回到顶部