泛舟湖上清波郎朗
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 更新到最新來解決這個問題。

一只甜甜圈
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
提交
取消