webpack+ Babel:模块解析失败

发布于 2025-02-01 07:34:35 字数 2183 浏览 1 评论 0原文

我正在尝试让WebPack与Babel合作,并做出反应以使我的.jsx文件转移到.js以在Web浏览器中使用,但我失败了。

我的webpack.config.js:


module.exports = {
    mode: 'production',
    entry: './src/pages/',
    output: {
        path: '/pathToMyProj/__assets',
        filename: '[name].js',
        uniqueName: 'myProject'
    },
    module: {
        rules: [
            {
                test: /(\.jsx|\.js)$/,
                include: `${process.cwd()}/src/**/*.jsx`,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ["@babel/preset-react",  "@babel/preset-env"]
                    } 
                }
            }
        ]
    },
    resolve: {
        modules: ['node_modules/**/*'],
        extensions: ['.jsx', '.js'],
    },

    experiments: {
        topLevelAwait: true
    }
}

我的.babelsrc:

{  
    "presets": ["@babel/preset-env", "@babel/preset-react"],
    "plugins": [],
    "comments": false,
    "compact": true
}

我的软件包

{
  "dependencies": {
    "@babel/preset-env": "^7.18.2",
    "@babel/preset-react": "^7.17.12",
    "axios": "^0.27.2",
    "babel-loader": "^8.2.5",
    "babel-preset-es2015": "^6.24.1",
    "path": "^0.12.7",
    "react": "^18.1.0",
    "react-dom": "^18.1.0",
    "webpack": "^5.72.1"
  },
  "devDependencies": {
    "webpack-cli": "^4.9.2"
  }
}

。 email 受保护] ,以某种方式WebPack无法识别JSX语法,并且正在抛出错误:

ERROR in ./src/pages/index.jsx 21:4
Module parse failed: Unexpected token (21:4)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders

|     toRender = 
>     <p><br />Welcome<br /><a href="/manage">Test</a><br /><br />Not you? <a href="/logoff">Log off</a></p>
|     }
|   } else {

webpack 5.72.1 compiled with 1 error in 231 ms

我该如何解决?

I am trying to get webpack to work with Babel and React to get my .jsx files transpiled to .js to get used in web browser but I am failing.

My webpack.config.js:


module.exports = {
    mode: 'production',
    entry: './src/pages/',
    output: {
        path: '/pathToMyProj/__assets',
        filename: '[name].js',
        uniqueName: 'myProject'
    },
    module: {
        rules: [
            {
                test: /(\.jsx|\.js)$/,
                include: `${process.cwd()}/src/**/*.jsx`,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ["@babel/preset-react",  "@babel/preset-env"]
                    } 
                }
            }
        ]
    },
    resolve: {
        modules: ['node_modules/**/*'],
        extensions: ['.jsx', '.js'],
    },

    experiments: {
        topLevelAwait: true
    }
}

my .babelsrc:

{  
    "presets": ["@babel/preset-env", "@babel/preset-react"],
    "plugins": [],
    "comments": false,
    "compact": true
}

my package.json:

{
  "dependencies": {
    "@babel/preset-env": "^7.18.2",
    "@babel/preset-react": "^7.17.12",
    "axios": "^0.27.2",
    "babel-loader": "^8.2.5",
    "babel-preset-es2015": "^6.24.1",
    "path": "^0.12.7",
    "react": "^18.1.0",
    "react-dom": "^18.1.0",
    "webpack": "^5.72.1"
  },
  "devDependencies": {
    "webpack-cli": "^4.9.2"
  }
}

with this config ([email protected], [email protected]), but somehow webpack can't recognize jsx syntax and is throwing an error:

ERROR in ./src/pages/index.jsx 21:4
Module parse failed: Unexpected token (21:4)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders

|     toRender = 
>     <p><br />Welcome<br /><a href="/manage">Test</a><br /><br />Not you? <a href="/logoff">Log off</a></p>
|     }
|   } else {

webpack 5.72.1 compiled with 1 error in 231 ms

how can I fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文