项目里require了fs模块,用的webpack,但是一直报错?

前端项目里require了fs模块,但是一直报错?

fs.readFileSync is not a function

引入代码

var fs = require('fs');
fs.readFileSync('index.html','utf8');

这是webpack配置文件

const path = require('path') // 引入‘path’,为了在这里使用绝对路径,避免相对路径在不同系统时出现不必要的问题
const HTMLPlugin = require('html-webpack-plugin')
const webpack = require('webpack');

const config = {
    // 应用入口
    entry: {
        app: path.join(__dirname, '../src/app.js')  // app.js作为打包的入口
    },
    // 输出目录
    output: {
        filename: '[name].[hash].js',  //name代表entry对应的名字; hash代表 整个app打包完成后根据内容加上hash。一旦整个文件内容变更,hash就会变化
        path: path.join(__dirname, '../dist'), // 打包好之后的输出路径
        publicPath: '' // 静态资源文件引用时的路径(加在引用静态资源前面的)
    },
    // 配置loader
    module: {
        rules: [
            {
                test: /.jsx$/, //使用loader的目标文件。这里是.jsx
                loader: 'babel-loader'
            },
            {
                test: /.(js)$/, //使用loader的目标文件。这里是.js
                loader: 'babel-loader',
                exclude: [
                    path.join(__dirname, '../node_modules')  // 由于node_modules都是编译过的文件,这里我们不让babel去处理其下面的js文件
                ]
            }
        ]
    },
    node: {
      fs: 'empty'
    },
    plugins: [
        new HTMLPlugin({
            template: path.join(__dirname, '../src/template.html') // 以template.html作为模板文件生成html
        }),
        new webpack.HotModuleReplacementPlugin()
    ]
}

const isDev = process.env.NODE_ENV === 'development'

if (isDev) {
    config.devServer = {
        host: '0.0.0.0',  // 我们可以允许我们用任意方式进行访问(127.0.0.1,localhost, 本机ip)
        port: '8888',
        contentBase: path.join(__dirname, '../dist'),
        hot: true,  //启动热加载
        overlay: {  // 错误提醒弹窗小遮层
            errors: true //只显示error
        },
        // 和output配置对应起来
        publicPath: '',  // 访问所有静态路径都要前面加/public才能访问生成的静态文件
        historyApiFallback: {
            index: '/index.html' // 所有404的请求全部访问该配置下的url
        }
    }
}

module.exports = config
阅读 7.4k
2 个回答

看你有个anguler的标签,如果你的fs的逻辑是写在业务代码(跑在纯浏览器)里的那就用不了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题