节点要求和导入

Node Require and Import

import path from 'path';
import fs from 'fs';

fs.mkdirSync(path.join(__dirname, 'folderName'));

我想在节点中创建目录,当我需要模块 (commonjs) 时,一切正常,但是当我将 package.json 中的类型更改为 module 并使用导入时,文件夹不起作用得到创建,我做错了什么?

ESM 模块中没有 __dirname。如果这是你需要的东西,你可以用这个来制造它:

import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

但是,fs 模块中的许多功能可以更直接地使用 import.meta.url。有关详细信息,请参阅

我认为 __dirname 在 es6 模块上不可用,所以我将其替换为 './'。如果你正在寻找优雅,你可以使用 npm 包。