简体   繁体   English

在Webpack项目中获取“未捕获的TypeError:path.parse不是函数”

[英]Getting “Uncaught TypeError: path.parse is not a function” in Webpack project

I am trying to setup a React project using Webpack. 我正在尝试使用Webpack设置一个React项目。 It's a simple app that loads an mdx file and parses it. 这是一个简单的应用程序,可加载mdx文件并进行解析。 When I try to run the app it returns 'Uncaught TypeError: path.parse is not a function' 当我尝试运行应用程序时,它返回“未捕获的TypeError:path.parse不是函数”

I have tried importing parse from 'path' and importing parse from 'path-browserify' but it's still not working 我尝试从“路径”导入解析,并从“ path-browserify”导入解析,但仍无法正常工作

index.js: index.js:

import React, { lazy, Component, Suspense } from "react";
import { importMDX } from "mdx.macro";
import ReactDOM from "react-dom";
// import path from "path";
// import { parse } from "path";
import path from "path-browserify";
// import { parse } from "path-browserify";

const Content = lazy(() => importMDX("./index.mdx"));

class App extends Component {
    render() {
        return (
            <div>
                <Suspense fallback={<div>Loading...</div>}>
                    <Content />
                </Suspense>
            </div>
        );
    }
}

ReactDOM.render(<App />, document.getElementById("root"));

webpack.config.js: webpack.config.js:

const HtmlWebPackPlugin = require("html-webpack-plugin");
const path = require("path");
module.exports = {
    entry: "./index.js",
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader"
                }
            },
            {
                test: /\.mdx?$/,
                use: ["babel-loader", "@mdx-js/loader"]
            },
            {
                test: /\.html$/,
                use: [
                    {
                        loader: "html-loader"
                    }
                ]
            }
        ]
    },
    plugins: [
        new HtmlWebPackPlugin({
            template: "./index.html",
            filename: "./index.html"
        })
    ],
    node: {
        fs: "empty",
        module: "empty"
    }
};

package.json: package.json:

{
    "name": "doc",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "start": "webpack-dev-server --open --mode development",
        "build": "webpack --mode production"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "@babel/core": "^7.5.5",
        "@babel/preset-env": "^7.5.5",
        "@babel/preset-react": "^7.0.0",
        "@mdx-js/loader": "^1.4.0",
        "babel-loader": "^8.0.6",
        "fs": "0.0.1-security",
        "html-loader": "^0.5.5",
        "html-webpack-plugin": "^3.2.0",
        "path": "^0.12.7",
        "path-browserify": "^1.0.0",
        "webpack": "^4.39.2",
        "webpack-cli": "^3.3.7",
        "webpack-dev-server": "^3.8.0"
    },
    "dependencies": {
        "@mdx-js/react": "^1.4.0",
        "mdx.macro": "^0.2.8",
        "react": "^16.9.0",
        "react-dom": "^16.9.0"
    }
}

Error: 错误:

Uncaught TypeError: path.parse is not a function
    at Function.module.exports.sync (index.js:28)
    at Function.module.exports.sync (index.js:8)
    at module.exports (index.js:17)
    at eval (mdx.macro.js:11)
    at Object../node_modules/mdx.macro/mdx.macro.js (main.js:11066)
    at __webpack_require__ (main.js:20)
    at eval (index.js:4)
    at Module../index.js (main.js:97)
    at __webpack_require__ (main.js:20)
    at eval (webpack:///multi_(:8080/webpack)-dev-server/client?:2:18)

You don't need to include extra dependency for path . 您无需为path包含额外的依赖项。 path is global dependency of node js. path是节点js的全局依赖项。

npm remove path or yarn remove path npm remove pathyarn remove path

and

npm remove path-browserify or yarn remove path-browserify npm remove path-browserifyyarn remove path-browserify

and clear node cache 并清除节点缓存

npm clear cache

can you try this? 你可以试试这个吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 webpack 获取“未捕获的类型错误:$(...).tablesorter is not a function” - Getting 'Uncaught TypeError: $(...).tablesorter is not a function' using webpack Uncaught TypeError: Object(...) is not a function 当与 WebPack 4 捆绑时 - Uncaught TypeError: Object(...) is not a function when bundling with WebPack 4 未捕获的类型错误:__webpack_require__.r 不是函数 - Uncaught TypeError: __webpack_require__.r is not a function 未捕获的类型错误:__webpack_require__.e 不是 function - Uncaught TypeError: __webpack_require__.e is not a function 未捕获的类型错误:__webpack_require__(...).context 不是 function - Uncaught TypeError: __webpack_require__(...).context is not a function (Webpack) Uncaught TypeError: Swal.mixin is not a function - (Webpack) Uncaught TypeError: Swal.mixin is not a function 获取“未捕获的TypeError:$(...)。timeago不是函数” - Getting 'Uncaught TypeError: $(…).timeago is not a function' 获取“未捕获的TypeError:$(...)。dialog不是函数” - Getting “Uncaught TypeError: $(…).dialog is not a function” 未捕获的类型错误:path.split 不是反应中的 function - Uncaught TypeError: path.split is not a function in react 使用 Webpack 编译 js 文件时出现“未捕获的类型错误” - Getting “Uncaught TypeError” when compiling js files with Webpack
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM