我最近在使用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条答案
按热度按时间s1ag04yj1#
该错误是由于不受支持的Node版本12.x不支持此require语句...
但这个管用
这可以通过将节点更新到最新版本来解决。
8wtpewkr2#
我最喜欢的解决方案:
db2dz4w83#
在node v12.18.1中对我有效的是:
我可以在nestJS/express上下文中使用这两种方法。
uqzxnwby4#
根据文档,在Node.js的使用版本中,还没有专用的模块
fs/promises
。但是,应该可以将Node.js升级到最新的12.x,以便模块可以访问。p8ekf7hl5#
要导入特定方法,您可以使用-例如:copyFile,rename: