I was recently working with typescript and fs/promises API and got this error when the typescript code was compiled and run, I got this error saying
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 file元进口货

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 版本12.18.0

Is there someone facing the same problem or am I doing something wrong?
please help
Thanks...

推荐答案

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

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

但这是有效的

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

这可以通过将 node 更新为最新版本来解决.

Typescript相关问答推荐

如果存在一处房产,请确保存在其他房产

使用FormArray在Angular中添加排序

带有微前端的动态React路由问题

我应该使用什么类型的React表单onsubmit事件?

接口的额外属性作为同一接口的方法的参数类型'

如何使用Zod使一个基于其他字段值的字段为必填字段?

通配符路径与每条路径一起显示

如何使所有可选字段在打印脚本中都是必填字段,但不能多或少?

如何创建一家Reduxstore ?

如何以Angular 导入其他组件S配置文件

保护函数调用,以便深度嵌套的对象具有必须与同级属性函数cargument的类型匹配的键

如何从输入中删除值0

如何在脚本中输入具有不同数量的泛型类型变量的函数?

如何将类似数组的对象(字符串::匹配结果)转换为类型脚本中的数组?

接受字符串或数字的排序函数

是否可以在类型脚本中定义条件返回类型,而不在函数体中使用类型转换?

Cypress-验证别名的存在或将别名中的文本与';if';语句中的字符串进行比较

编剧- Select 下拉框

将带有额外id属性的Rust struct 展平回TypeScript单个对象,以返回wasm-bindgen函数

具有枚举泛型类型的 Typescript 对象数组