Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法导入react js组件_Javascript_Reactjs_Babeljs - Fatal编程技术网

Javascript 无法导入react js组件

Javascript 无法导入react js组件,javascript,reactjs,babeljs,Javascript,Reactjs,Babeljs,我试图将react组件导入jsx文件,但它引发以下异常: 这是我的主要代码: import React, { Component } from "react"; import Sidebar from "./Sidebar"; class App extends Component{ render(){ return ( <Sidebar/> ); } } ReactDOM.render( <

我试图将react组件导入jsx文件,但它引发以下异常:

这是我的主要代码:

import React, { Component } from "react";
import Sidebar from "./Sidebar";

class App extends Component{
    render(){
        return (
            <Sidebar/>
        );
    }
}

ReactDOM.render(
    <App />, 
    document.getElementById("root")
);
import React,{Component}来自“React”;
从“/Sidebar”导入侧栏;
类应用程序扩展组件{
render(){
返回(
);
}
}
ReactDOM.render(

我发布了一个简单的版本,据我所知,它确实有效:

/index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import Application from './components/Application'

ReactDOM.render(<Application />, document.getElementById('root'));

我发布了一个简单的版本,我知道它可以工作:

/index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import Application from './components/Application'

ReactDOM.render(<Application />, document.getElementById('root'));

看起来您没有在webpack.config.js中添加.jsx文件的规则

由于您同时拥有.js和.jsx文件,您需要告诉webpack加载扩展名为.js和.jsx的文件。请在规则部分的webpack.config.js中添加以下配置

    {
        //tell webpack to use jsx-loader for all *.jsx files
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        loader: "babel-loader"
    }
并添加扩展,如

   resolve: {
    modules: [
        path.resolve("./src"),
        path.resolve("./node_modules")
    ],
    extensions: [".js", ".jsx"]
  }
下面是供您参考的工作webpack.config.js文件

module.exports = {
    target: "web",
    entry: [
        "whatwg-fetch",
        'webpack-dev-server/client',
        'webpack/hot/only-dev-server',
        'babel-polyfill',
        "./src/index.js"
        ],
    output: {
        path: __dirname + 'build',
        publicPath: '/',
        filename: "bundle.js"
    },
    plugins: [new HtmlWebpackPlugin({
        template: "index.html"
    }),
    new CompressionPlugin({
        asset: "[path].gz[query]",
        algorithm: "gzip",
        test: /\.js$|\.jsx$|\.css$|\.html$/,
        threshold: 10240,
        minRatio: 0.8
    }),
    new webpack.HotModuleReplacementPlugin(),
    // enable HMR globally

    new webpack.NoEmitOnErrorsPlugin()
    ],
    module: {
        rules: [
            {
                //tell webpack to use jsx-loader for all *.jsx files
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                loader: "babel-loader"
            },
            {
                test: /\.css$/,
                loader: "style-loader!css-loader"
            },
            {
                test: /\.(png|jpg|jpeg|gif|svg|woff|woff2)$/,
                use: [
                  {
                    loader: 'file-loader',
                    options: {}
                  }
                ]
            },
            {
                test: /\.(eot|ttf)$/,
                loader: "file-loader",
            },
            {
                test: /\.scss$/,
                loaders: ["style-loader", "css-loader", "sass-loader"]
            }
        ]
    },
    resolve: {
        modules: [
            path.resolve("./src"),
            path.resolve("./node_modules")
        ],
        extensions: [".js", ".jsx"]
    },
    devServer: {
        watchOptions: {
        // Needed for Windows Subsystem for Linux dev environment:
            poll: true
        },
        contentBase: './build'
    },
    devtool: "cheap-module-eval-source-map",
    node: {
        child_process : "empty",
        fs: "empty"
    }
};

看起来您没有在webpack.config.js中添加.jsx文件的规则

由于您同时拥有.js和.jsx文件,您需要告诉webpack加载扩展名为.js和.jsx的文件。请在规则部分的webpack.config.js中添加以下配置

    {
        //tell webpack to use jsx-loader for all *.jsx files
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        loader: "babel-loader"
    }
并添加扩展,如

   resolve: {
    modules: [
        path.resolve("./src"),
        path.resolve("./node_modules")
    ],
    extensions: [".js", ".jsx"]
  }
下面是供您参考的工作webpack.config.js文件

module.exports = {
    target: "web",
    entry: [
        "whatwg-fetch",
        'webpack-dev-server/client',
        'webpack/hot/only-dev-server',
        'babel-polyfill',
        "./src/index.js"
        ],
    output: {
        path: __dirname + 'build',
        publicPath: '/',
        filename: "bundle.js"
    },
    plugins: [new HtmlWebpackPlugin({
        template: "index.html"
    }),
    new CompressionPlugin({
        asset: "[path].gz[query]",
        algorithm: "gzip",
        test: /\.js$|\.jsx$|\.css$|\.html$/,
        threshold: 10240,
        minRatio: 0.8
    }),
    new webpack.HotModuleReplacementPlugin(),
    // enable HMR globally

    new webpack.NoEmitOnErrorsPlugin()
    ],
    module: {
        rules: [
            {
                //tell webpack to use jsx-loader for all *.jsx files
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                loader: "babel-loader"
            },
            {
                test: /\.css$/,
                loader: "style-loader!css-loader"
            },
            {
                test: /\.(png|jpg|jpeg|gif|svg|woff|woff2)$/,
                use: [
                  {
                    loader: 'file-loader',
                    options: {}
                  }
                ]
            },
            {
                test: /\.(eot|ttf)$/,
                loader: "file-loader",
            },
            {
                test: /\.scss$/,
                loaders: ["style-loader", "css-loader", "sass-loader"]
            }
        ]
    },
    resolve: {
        modules: [
            path.resolve("./src"),
            path.resolve("./node_modules")
        ],
        extensions: [".js", ".jsx"]
    },
    devServer: {
        watchOptions: {
        // Needed for Windows Subsystem for Linux dev environment:
            poll: true
        },
        contentBase: './build'
    },
    devtool: "cheap-module-eval-source-map",
    node: {
        child_process : "empty",
        fs: "empty"
    }
};

请共享文件夹结构请检查侧栏组件的路径此处可能存在路径问题。SideBar.js和App.js必须是同一个目录可能
从“/SideBar.jsx”导入侧栏;
将解决您的问题。您可能没有在Webpack中配置要解决的扩展请共享文件夹结构请检查侧栏组件的路径此处可能存在路径问题。SideBar.js和App.js必须是同一个目录可能
从“/SideBar.jsx”导入侧栏;
将解决您的问题。您可能没有在网页中配置要解决的扩展。我尝试了,但它引发了我以前的异常。模块未找到我尝试了,但它引发了我以前的异常。模块未找到