未捕获的 TypeError:无法读取 ./node_modules/fs-extra/lib/fs/index 处的 undefined 属性(读取“native”.js

Uncaught TypeError: Cannot read properties of undefined (reading 'native') at ./node_modules/fs-extra/lib/fs/index.js

提问人:jumeca 提问时间:11/7/2023 更新时间:11/7/2023 访问量:13

问:

我正在使用 webpack 构建一个 Web 应用程序。我正在尝试读取一个 json 文件,为此我想使用 fs-extra 模块。但是,我无法设法让它工作,因为当我尝试初始化应用程序时出现此错误:

未捕获的 TypeError:无法读取 ./node_modules/fs-extra/lib/fs/index 处的 undefined 属性(读取“native”.js

这是我的webpack配置:

const path = require("path");
const outputDir = "./dist";

// to load html
const HtmlWebpackPlugin = require('html-webpack-plugin');
// modules that shouldn't be bundled
const webpack = require('webpack');

module.exports = {
    entry: ['babel-polyfill',path.resolve(__dirname, "index.js")], //
    output: {
        path: path.join(__dirname, outputDir),
        filename: "main.js",
        publicPath: "/dist/"
    },
    module: {
        rules: [{
            test: /\.js$/, // if we were using React.js, we would use \.jsx?$/
            use: {
                loader: "babel-loader",
                options: {
                    presets: ["@babel/preset-env"],
                    exclude: /node_modules/
                } // if we were using React.js, we would include "react"
            }
        },
        {
          test: /\.css$/,
          use: ['style-loader', 'css-loader']
        },
        {
            test: /\.(png|svg|jpg|jpeg|gif|ogg|mp3|wav)$/i,
            type: 'asset/resource',
        },
        {
            test: /\.json$/,
            loader: 'json-loader',
            type: 'asset/resource',
            // type: 'javascript/auto', // Ensure that JSON files are treated as modules
        }
        ]
    },
    resolve: {
        modules: [
            path.resolve('./node_modules'), path.resolve('./src')
        ],
        fallback: {
            path: require.resolve('path-browserify'),
            buffer: require.resolve('buffer/'),
            fs: false
        },
        extensions: ['.json', '.js']
    },
    plugins: [
        new HtmlWebpackPlugin({template: "./index.html", inject: false, hash: true}),
        new webpack.ProvidePlugin({process: 'process/browser', Buffer: ['buffer', 'Buffer']})
    ]
};

导入 fs-extra

const fs = require('fs-extra');

任何帮助将不胜感激!

节点.js webpack 节点.js-fs

评论


答: 暂无答案