Webpack Build SyntaxError: Unexpected token )

问题描述

注意:我通读了其他类似的问题(here 和其他),但它们都是关于早期版本的 webpack 和 babel,并没有解决以下问题。

这很好,但是当我运行 npm run build 时,我收到以下错误。我该如何解决这个问题? (我怎样才能得到比这更好的错误?,日志也一样糟糕)。

> react_01@1.0.0 build /Users/monkeydo/Documents/code/__tests/react_01
> webpack --mode production

/Users/monkeydo/Documents/code/__tests/react_01/node_modules/webpack-cli/bin/cli.js:41
                )} manually.`,^

SyntaxError: Unexpected token )
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at runcli (/Users/monkeydo/Documents/code/__tests/react_01/node_modules/webpack/bin/webpack.js:69:2)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react_01@1.0.0 build: `webpack --mode production`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the react_01@1.0.0 build script.

我的 webpack 文件如下所示:

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

module.exports = {
  //entry: ['@babel/polyfill','./src/index.js'],entry: './src/index.js',// Where files should be sent once they are bundled
 output: {
   path: path.join(__dirname,'/dist'),filename: 'index.bundle.js'
 },// webpack 5 comes with devServer which loads in development mode
 devServer: {
   port: 3000,watchContentBase: true
 },// Rules of how webpack will take our files,complie & bundle them for the browser
 module: {
   rules: [
     {
       test: /\.(js|jsx)$/,// test: /\.jsx?/,exclude: /nodeModules/,use: {
         loader: 'babel-loader',query:
           {
             presets:['react','preset-env']
           }
       }
     },{
       test: /\.css$/,use: [MiniCssExtractPlugin.loader,'css-loader']
     }
   ]
 },plugins: [new HtmlWebpackPlugin({ template: './src/index.html' }),new MiniCssExtractPlugin()]
}

我的包 json 如下所示:

{
  "name": "react_01","version": "1.0.0","description": "","main": "index.jsx","scripts": {
    "serve": "webpack serve --mode development","build": "webpack --mode production"
  },"author": "","license": "ISC","devDependencies": {
    "@babel/core": "^7.14.6","@babel/preset-env": "^7.14.7","@babel/preset-react": "^7.14.5","babel-loader": "^8.2.2","css-loader": "^6.0.0","file-loader": "^6.2.0","html-webpack-plugin": "^5.3.2","mini-css-extract-plugin": "^2.1.0","style-loader": "^3.1.0","webpack": "^5.45.1","webpack-cli": "^4.7.2","webpack-dev-server": "^3.11.2"
  },"dependencies": {
    "react": "^17.0.2","react-dom": "^17.0.2"
  }

我的 babelrc 文件如下所示:

{
  "presets": [
      "@babel/preset-env","@babel/preset-react"
  ]
}

我的 index.js 文件如下所示:

import React from "react"
import ReactDom from "react-dom"
import App from "./components/app"
import "./style.css"

ReactDom.render(<App />,document.getElementById('app'))

我的 app.js 文件如下所示:

import React from "react"

function App() {
    return (<div>
        <h2>Welcome to My new React App</h2>
        <h3>Date : {new Date().toDateString()}</h3>
    </div>)
}

export default App

*** 编辑:不知道我在想什么...我完全忘了在 :o 之前添加 webpack 代码!我想那是一个阅读障碍的高级时刻。现已添加

解决方法

只需删除样式导入

导入“./style.css”

Webpack 使用 JavaScript,而不是 css,如果你想让它学习它,你需要创建一个 webpack 配置文件并使用适当的加载器来处理 css