NodeJS(Webpack):fs.existsSync不是函数

时间:2018-12-18 21:29:30

标签: node.js webpack

在NodeJS中,我有:

const fs = require('fs');
if (!fs.existsSync("some_path")) {
...
}

但是我得到了错误:

  

TypeError:fs.​​existsSync不是函数

进行一些搜索后,我读到Webpack带来了自己的require,它掩盖了node.js'require,所以当您需要一个node.js核心模块时它会抛出webpack无法解析为您的文件或依赖项之一的情况。

(我的堆栈跟踪包括__webpack_require__

但是我该如何解决?

4 个答案:

答案 0 :(得分:4)

我遇到了与您相同的错误。您的vscode可能已在js文件中添加了一个新模块。删除该模块,您的应用应该可以正常工作。

答案 1 :(得分:3)

我遇到了与 TypeError类似的错误:fs.existsSync不是函数

enter image description here

因此,我发现在导入过程中会自动添加一条额外的行来创建此问题。

enter image description here

从导入中删除此行后

import { TRUE } from "node-sass";

问题已解决。

答案 2 :(得分:1)

通过在配置中定位节点,您可以允许webpack使用节点的require并包含fs等。

module.exports = {
  entry: './src/main.js',
  target: 'node',
  output: {
    path: path.join(__dirname, 'build'),
    filename: 'backend.js'
  }
}

如此处所述:https://webpack.js.org/concepts/targets/https://webpack.js.org/configuration/target/

答案 3 :(得分:1)

没什么可担心的,检查您的代码是否有 import { types } from "node-sass"; 之类的东西,它会在您不知情的情况下错误地自动导入。删除该行,一切都应该完美无缺。

<块引用>

即使它不是 type,它也是 node-sass 文件中来自 node_modules 的东西,并且您无法编辑该文件。 所以寻找并删除import { types } from "node-sass"