Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 网页包不';无法识别jsx语法_Javascript_Reactjs_Webpack - Fatal编程技术网

Javascript 网页包不';无法识别jsx语法

Javascript 网页包不';无法识别jsx语法,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我有以下网页包配置: ... module: { rules: [ { test: /.js$/, loader: 'babel-loader', include: path.resolve(__dirname, 'src'), exclude: /node_modules/, options: { presets: [

我有以下网页包配置:

... 
module: {
    rules: [
        {
            test: /.js$/,
            loader: 'babel-loader',
            include: path.resolve(__dirname, 'src'),
            exclude: /node_modules/,
            options: {
                presets: [['@babel/preset-env', { modules: false }], '@babel/preset-react'],
                plugins: [
                    ['@babel/plugin-proposal-object-rest-spread', { useBuiltIns: true }],
                    '@babel/plugin-proposal-class-properties'
                ]
            }
        },
        {
            test: /\.scss$/,
            loader: 'ignore-loader'
        },
        {
            test: /\.css$/,
            loader: 'ignore-loader'
        },
        {
            test: /\.(jpg|png|svg|gif|pdf)$/,
            loader: 'file-loader',
            options: {
                name: '[path][name].[ext]'
            }
        }
    ]
}
但我得到了以下错误:

        <StaticRouter location={path} context={context}>
        ^

SyntaxError: Unexpected token <
以下是我的开发依赖项(package.json):

@babel/preset不应该反应过来吗

事实上,仅在配置文件上执行webpack不会引发任何错误。
我试图做的是执行热重新加载和SSR,为此我使用package.json中提到的包

我在启动应用程序并使用以下中间件时出错:

const app = express();

if (process.env.NODE_ENV !== 'production') {
    const webpack = require('webpack');
    const webpackDevMiddleware = require('webpack-dev-middleware');
    const webpackHotMiddleware = require('webpack-hot-middleware');
    const webpackHotServerMiddleware = require('webpack-hot-server-middleware');
    const config = require('../../webpack.development.config'); //Contains both client and server webpack config

    // Webpack dev hot reload middleware
    const compiler = webpack(config);
    app.use(webpackDevMiddleware(compiler, {
        serverSideRender: true,
        stats: {colors: true}
    }));

    app.use(webpackHotMiddleware(compiler.compilers.find(compiler => compiler.name === 'client')));
    app.use(webpackHotServerMiddleware(compiler));

}
注:
实际上,我得到这个错误的原因是因为我应该首先用Webpack传输代码。导入不起作用,因为显然NodeJS无法理解JSX语法。
但这并不能真正解决我的问题。我正在使用的npm包在导入后的运行时执行webpack。
所以要么你能想出一个解决这个问题的方法,要么我猜我不能使用jsx语法

你就像在这里一样:

include: path.resolve(__dirname, 'src'),
exclude: /node_modules/,
排除将覆盖包含。要同时拥有“两者”,您需要这样写:

exclude: /node_modules\/(?!react)/
您还需要为
src/index.js
指定您的
条目
参数,就像您在这里所做的那样:

include: path.resolve(__dirname, 'src'),
exclude: /node_modules/,
排除将覆盖包含。要同时拥有“两者”,您需要这样写:

exclude: /node_modules\/(?!react)/

您还需要为您的
src/index.js

指定
条目
参数,因为它可能不是网页包,您是否可以复制您正在使用的
component@ramirozap刚刚添加了:)IIRC,React必须在范围内才能触发jsx transpiler。是否在引发错误的文件中导入react?可能尝试test://\(js | jsx)$/而不是test://.js$/,@ramirozap I将其导入为:
const ReactDOM=require(“react-dom/server”)并且应该可以工作。它似乎在jsx语法方面有问题。我在伤脑筋想知道为什么…可能不是网页包,你能复制一下你正在使用的文件吗component@ramirozap刚刚添加了:)IIRC,React必须在范围内才能触发jsx transpiler。是否在引发错误的文件中导入react?可能尝试test://\(js | jsx)$/而不是test://.js$/,@ramirozap I将其导入为:
const ReactDOM=require(“react-dom/server”)并且应该可以工作。它似乎在jsx语法方面有问题。我伤了脑筋想弄明白为什么…谢谢,我试过了,但由于我在文章最后一部分提到的原因,它没有真正起作用。关于网页配置,我定义了条目,但没有共享Entree网页配置。但是关于你关于不能一起使用th规则的评论,这对我来说没有意义。我想传输includes and leave out node_模块中的内容。谢谢,我尝试了此操作,但由于我在OP的最后一部分中提到的原因,它实际上不起作用。关于webpack配置,我定义了条目,但没有共享Entree webpack配置。但是关于你关于不能一起使用th规则的评论,这对我来说没有意义。我想传输包含和删除节点_模块中的内容。
exclude: /node_modules\/(?!react)/