我最近正在使用 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 更新到最新来解决这个问题。
一只甜甜圈
TA贡献1836条经验 获得超5个赞
我最喜欢的解决方案:
import { promises as fs } from 'fs';
async function main() {
await fs.writeFile('test.txt', 'hello');
}
catspeake
TA贡献1111条经验 获得超0个赞
在 Node v12.18.1 中对我有用的是:
import { promises } from "fs";
const { readFile, writeFile } = promises;
我可以在 NestJS/express 上下文中使用这两种方法。
慕容3067478
TA贡献1773条经验 获得超3个赞
fs/promises
根据文档,在 Node.js 的使用版本中,还没有专用模块。但是,应该可以将 Node.js 升级到最新的 12.x,以便可以访问该模块。
隔江千里
TA贡献1906条经验 获得超10个赞
要导入特定方法,您可以使用 - 例如: copyFile、rename:
import { copyFile, rename } from 'node:fs/promises';
添加回答
举报
0/150
提交
取消