TypeError fs.existsSync不是函数

时间:2019-11-06 17:07:58

标签: javascript node.js webpack ecmascript-6

我想从节点导入“ fs”模块,但是遇到了麻烦。

如果我使用require,我会得到fs.existsSync不是函数错误。

如果我使用ES6导入,则会得到TypeError:Object(...)不是一个函数,因为Webpack显然将其编译为对象,例如:Object(fs__WEBPACK_IMPORTED_MODULE_4__["existsSync"])

我正在使用React。

我的代码使用CommonJS导入:

const csv = require("csvtojson");
const path = require("path");
const fs = require("fs");
const R = require("ramda");

const csvPath = path.join(__dirname, `../../../public/languages/${process.env.REACT_APP_VENDOR}`);
const jsonPath = path.join(__dirname, `../../../public/locales/`);

console.log(`csvPath:  ${csvPath}`);
console.log(`jsonPath: ${jsonPath}`);

if (!fs.existsSync(jsonPath)) {
  fs.mkdirSync(jsonPath);
}
...

我的代码使用ES6导入:

import csv from "csvtojson";
import { join } from "path";
import { existsSync, mkdirSync, readdir, writeFile } from "fs";
import { compose, pathOr, split, last, map } from "ramda";

const csvPath = join(__dirname, `../../../public/languages/${process.env.REACT_APP_VENDOR}`);
const jsonPath = join(__dirname, `../../../public/locales/`);

console.log(`csvPath:  ${csvPath}`);
console.log(`jsonPath: ${jsonPath}`);

if (!existsSync(jsonPath)) {
  mkdirSync(jsonPath);
}
...

如何导入该模块以使用它? 我正在使用节点版本10.16.3

0 个答案:

没有答案