使用 webpack 时 Node 找不到模块“fs”

Posted

技术标签:

【中文标题】使用 webpack 时 Node 找不到模块“fs”【英文标题】:Node cannot find module “fs” when using webpack 【发布时间】:2017-04-15 08:02:31 【问题描述】:

我正在使用 node.js(最后一个版本)和 webpack 来创建一个包。根据我的阅读,node.js 应该包含用于管理文件的 fs 模块。但是,当我调用 require("fs") 时,我得到一个找不到模块“fs”错误。添加“目标:'节点'”后,我在控制台中坚持使用“未定义要求”。任何帮助都会很有用,谢谢。

var webpack = require('webpack');

module.exports = 
    entry: "./client/main.js",
    output: 
        path: __dirname + '/public/build/',
        publicPath: "build/",
        filename: "bundle.js"
    ,

    node: fs: "empty",

    module: 
        loaders: [
            
                test: /\.js$/,
                loader: "babel",
                exclude: [/node_modules/, /public/]
            ,
            
                test: /\.css$/,
                loader: "style-loader!css-loader!autoprefixer-loader",
                exclude: [/node_modules/, /public/]
            ,
            
                test: /\.less$/,
                loader: "style-loader!css-loader!autoprefixer-loader!less",
                exclude: [/node_modules/, /public/]
            ,
            
                test: /\.gif$/,
                loader: "url-loader?limit=10000&mimetype=image/gif"
            ,
            
                test: /\.jpg$/,
                loader: "url-loader?limit=10000&mimetype=image/jpg"
            ,
            
                test: /\.png$/,
                loader: "url-loader?limit=10000&mimetype=image/png"
            ,
            
                test: /\.svg/,
                loader: "url-loader?limit=26000&mimetype=image/svg+xml"
            ,
            
                test: /\.jsx$/,
                loader: "react-hot!babel",
                exclude: [/node_modules/, /public/]
            ,
            
                test: /\.json$/,
                loader: "json-loader"
            
        ]
    ,
    target: 'node',

【问题讨论】:

***.com/questions/39249237/… 这篇文章的所有步骤都已经完成( 【参考方案1】:

不要将“fs”标记为空,而是尝试像这样装饰它:

externals:
    "fs": "commonjs fs"

这应该告诉 webpack 将其作为模块加载,而不是将其视为环境对象/变量。

参考: Node cannot find module "fs" when using webpack

【讨论】:

【参考方案2】:

通过设置node: fs: "empty",,你告诉webpack在导入fs时应该返回一个空对象。删除它,它应该可以正常工作。 https://webpack.js.org/configuration/node/#node

【讨论】:

以上是关于使用 webpack 时 Node 找不到模块“fs”的主要内容,如果未能解决你的问题,请参考以下文章

使用 webpack 时节点找不到模块“fs”

使用 webpack 时找不到 vertx 模块

更新到 nextjs@10.4 后找不到模块'webpack/lib/node/NodeTemplatePlugin'

Vue + Typescript + Webpack:模块构建失败 - 找不到 vue.esm.js

找不到模块:错误:无法解析 webpack 中的“util”

使用--config标志时,Webpack找不到node_modules