【问题标题】:Webpack - You may need an appropriate loaderWebpack - 你可能需要一个合适的加载器
【发布时间】:2021-02-05 04:31:55
【问题描述】:

每次我重新开始使用 JavaScript 时,我都会为 webpack 和转译器而苦恼。我在这里需要帮助,我被困住了。即使指定了 Webpack 也没有找到合适的加载器。

webpack.config.js

const path = require( "path" );

module.exports = {
    entry: "./app.js",
    output: {
        filename: "starmap.js",
        path: path.resolve(__dirname,  "../asset/js/" )
    },
    mode : "development",
    module : {
        rules : [
            {
                test: /\\.js$/,
                exclude: /node_modules/,
                loader: "babel-loader",
                options: {
                    presets: [ "@babel/preset-env", "@babel/preset-react" ]
                }
            }
        ]
    }
}

package.json

{
  "name": "editor",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^17.0.0",
    "react-dom": "^17.0.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.12.1",
    "@babel/core": "^7.12.3",
    "@babel/preset-env": "^7.12.1",
    "@babel/preset-react": "^7.12.1",
    "@webpack-cli/init": "^1.0.2",
    "babel-loader": "^8.1.0",
    "babel-plugin-syntax-dynamic-import": "^6.18.0",
    "css-loader": "^5.0.0",
    "style-loader": "^2.0.0",
    "terser-webpack-plugin": "^5.0.0",
    "webpack": "^5.1.3",
    "webpack-cli": "^4.1.0"
  }
}

app.js

import React from "react"
import { render } from "react-dom"

class Starmap extends React.Component {
    constructor() {
        super()
        this.state = []
    }

    render() {
        return "Hello world"
    }
}

render( <Starmap />, document.getElementById("customizer"))

.babelrc

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

当我运行 webpack 时,我收到此错误:

ERROR in ./app.js 15:8
Module parse failed: Unexpected token (15:8)
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
| }
| 
> render( <Starmap />, document.getElementById("_customizer"))

但是运行 npx babel app.js 可以成功转换。是不是我的 webpack 配置有问题,我仔细看了下,一切正常。

【问题讨论】:

    标签: javascript reactjs webpack babel-loader


    【解决方案1】:

    看来你的 js 没有被 babel-loader 处理。我相信问题出在您的测试正则表达式中

    改变

    test: /\\.js$/,
    

    test: /\.js$/,
    

    【讨论】:

    • 就是这样!该死,我一直在看这个。谢谢!
    • @JamesJohn 如果这回答了您的问题,请将其标记为答案,以便其他人更容易找到正确答案。
    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 2018-05-03
    • 2016-09-28
    • 2016-07-13
    • 2020-01-27
    • 2017-06-20
    • 2018-11-22
    • 2017-12-15
    相关资源
    最近更新 更多