Webpack nodejs fs.readFile не является функцией

У меня есть конфигурация webpack, например:

var path = require('path')

module.exports = {
    entry: "./index.js",
    output: {
        path: path.join(__dirname, 'static'),
        filename:'bundle.js'
    },
    module: {
        loaders: [
            { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"},
            { test: /\.json$/, loader: 'json-loader' },
        ]
    },
    node: {
      fs: "empty"
    }
};

И я хочу прочитать файл, используя fs

Я делаю что-то вроде:

var fs = require('fs')
console.log(fs)

fs.readFile('input.txt', function (err, buffer) {
        console.log("buffer")
        console.log(buffer)


    })

Я просто хочу прочитать файл здесь, но когда я это делаю, он дает мне ошибку:

fs.readFile не является функцией

Я установил fs, используя npm install --save fs

Также, когда я печатаю fs, он дает мне пустой объект. Выше я сделал console.log(fs), он дает мне пустой объект

Что здесь не так?

Ответ 1

Ваш код выглядит хорошо! Так что с кодом все в порядке. Для перекрестной проверки попробуйте выполнить тот же код здесь https://www.tutorialspoint.com/execute_nodejs_online.php, и вы увидите, что console.log(fs); не будет пустым.

Таким образом, причина того, что ваш код показывает ошибку, заключается в том, что вы установили модуль узла с именем 'fs' с помощью команды npm install --save fs, чего не следует делать! Узел поставляется с этим модулем по умолчанию. Все, что вам нужно сделать, это просто потребовать использовать const fs = require('fs'); (используя var, или let также найти, но я рекомендую const здесь).

Так что просто удалите локальную папку node_modules, а затем снова запустите этот код, установив другие модули, которые вы хотите, и он будет работать нормально!

Надеюсь это поможет :)