为了账号安全,请及时绑定邮箱和手机立即绑定

TypeScript 中的 fs/promises API 在 JavaScript 中无法正确编译

TypeScript 中的 fs/promises API 在 JavaScript 中无法正确编译

泛舟湖上清波郎朗 2023-07-14 09:46:12
我最近正在使用 TypeScript 和 fs/promises API,并在编译和运行 TypeScript 代码时收到此错误。我收到这个错误说:internal/modules/cjs/loader.js:968  throw err;  ^Error: Cannot find module 'fs/promises'当我查看编译的代码时,这就是我发现的......var promises_1 = require("fs/promises");通过将其更改为开始工作var promises_1 = require("fs").promises;这是我的TypeScript 文件导入:import { readFile, writeFile, appendFile } from "fs/promises";我的package.json文件: "devDependencies": {    "@types/cheerio": "^0.22.22",    "@types/got": "^9.6.11",    "@types/node": "^14.14.6"  },  "dependencies": {    "cheerio": "^1.0.0-rc.3",    "got": "^11.8.0"  }我的tsconfig.json文件:{  "compilerOptions": {    "target": "es5",    "module": "commonjs",    "strict": true,    "outDir": "dist",    "sourceMap": true  },  "include": ["src/**/*"],  "exclude": ["node_modules", "**/*.spec.ts"]}Node.js 版本:12.18.0我怎样才能解决这个问题?
查看完整描述

5 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

该错误是由于不受支持的 Node 版本 12.x 造成的,该版本不支持此 require 语句...

var promises_1 = require("fs/promises");

但这有效

var promises_1 = require("fs").promises;

可以通过将 Node 更新到最新来解决这个问题。


查看完整回答
反对 回复 2023-07-14
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我最喜欢的解决方案:


import { promises as fs } from 'fs';


async function main() {

  await fs.writeFile('test.txt', 'hello');

}


查看完整回答
反对 回复 2023-07-14
?
catspeake

TA贡献1111条经验 获得超0个赞

在 Node v12.18.1 中对我有用的是:


import { promises } from "fs";

const { readFile, writeFile } = promises;

我可以在 NestJS/express 上下文中使用这两种方法。


查看完整回答
反对 回复 2023-07-14
?
慕容3067478

TA贡献1773条经验 获得超3个赞

fs/promises根据文档,在 Node.js 的使用版本中,还没有专用模块。但是,应该可以将 Node.js 升级到最新的 12.x,以便可以访问该模块。



查看完整回答
反对 回复 2023-07-14
?
隔江千里

TA贡献1906条经验 获得超10个赞

要导入特定方法,您可以使用 - 例如: copyFile、rename

import { copyFile, rename } from 'node:fs/promises';


查看完整回答
反对 回复 2023-07-14
  • 5 回答
  • 0 关注
  • 231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信