在NodeJS中,我有:
const fs = require('fs');
if (!fs.existsSync("some_path")) {
...
}
但是我得到了错误:
TypeError:fs.existsSync不是函数
进行一些搜索后,我读到Webpack
带来了自己的require
,它掩盖了node.js
'require
,所以当您需要一个node.js
核心模块时它会抛出webpack
无法解析为您的文件或依赖项之一的情况。
(我的堆栈跟踪包括__webpack_require__
)
但是我该如何解决?
答案 0 :(得分:4)
我遇到了与您相同的错误。您的vscode可能已在js文件中添加了一个新模块。删除该模块,您的应用应该可以正常工作。
答案 1 :(得分:3)
我遇到了与 TypeError类似的错误:fs.existsSync不是函数
因此,我发现在导入过程中会自动添加一条额外的行来创建此问题。
从导入中删除此行后
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"