当前位置: 首页 > 面试题库 >

在React组件中导入Json文件

桓高澹
2023-03-14
问题内容

我正在尝试在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命令

> npm install json-loader --save-dev

webpack.config.js

 module.exports = {
    ....
    resolve: {
        extensions: ['', '.js', '.jsx', '.json']
    },
    ...
   module: {
       ...
            {
                test: /\.json$/,
                loader: 'json'
            }
       ...
   }
}

通过将json扩展名添加到resolve,您无需在import语句中指定扩展名。



 类似资料:
  • 问题内容: 我是React的新手,正在尝试从外部文件导入JSON 变量。我收到以下错误: 找不到模块“ ./customData.json” 有人可以帮我吗?如果我的变量位于外部JSON文件中,但没有该变量,则它可以工作。 index.js hobbies.js profile.js customData.json 问题答案: 一种不错的方法(不添加伪造的.js扩展名,用于代码而不用于数据和配置)

  • 问题内容: 我想将CSS文件导入React组件。 我已经尝试过,但是下面出现错误; 找不到模块:错误:无法解析c:\ Users \ User \ User \ Documents \ pizza-app \ client \ src \ components @中的“文件”或“目录” ../../../public/styles/disabledLink。 /client/src/compone

  • 问题内容: 我有一个带有ES6编写的组件的React应用程序-通过Babel和Webpack进行了编译。 在某些地方,我想包含特定CSS文件和特定组件,如react webpack手册中 所建议 但是,如果在任何组件文件中,我都需要静态CSS资产,例如: 然后编译失败并显示错误: 看来,如果我尝试在Component文件中要求CSS文件,那么Babel加载程序会将其解释为另一个来源,并尝试将CS​

  • 我试图在vue组件中导入一个json文件,但它给出了以下错误 ./~/buble-loader中出错?{“objectassign”:“object.assign”}!./~/vue-loader/lib/selector.js?type=script&index=0!找不到./resources/assets/src/app.vue模块:错误:无法解析“/var/www/html/mac/res

  • 问题内容: 我有一个如下文件: 我正在尝试将其导入文件。为此,我将其添加到类型定义中: 我正在这样导入。 在文件中,我将颜色用作。但是我得到一个错误: 属性’primaryMain’在类型’typeof“ * .json”上不存在 问题答案: 导入表单和模块声明需要就模块的形状,导出的内容达成一致。 编写时(自TypeScript 2.9导入JSON时,针对兼容模块格式的一种次佳实践, 请参见no

  • 问题内容: 与 哪个更好,为什么? 还是除了以后编写更少的代码外没有其他区别? 写作是否意味着只导入Component对象? 问题答案: 让您代替。它减少了React名称空间的键入和重复,这通常是一种理想的现代编码约定。 此外,Webpack 2和Rollup之类的工具会“摇晃”,这意味着任何未使用的导出都不会捆绑到您的最终代码中。使用/,您可以保证所有React的源代码都将被捆绑。使用,某些工具