fs/promises api 在打字稿中没有在 javascript 中正确编译
fs/promises api in typescript not compiling in javascript correctly
我最近在使用打字稿和 fs/promises API 并在编译打字稿代码和 运行 时遇到此错误,我收到此错误消息
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
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"]
}
节点版本12.18.0
有人遇到同样的问题还是我做错了什么?
请帮忙
谢谢...
根据 documentation,在 Node.js 的使用版本中,还没有专用模块 fs/promises
。但是,应该可以将 Node.js 升级到最新的 12.x,以便可以访问该模块。
错误是由于不受支持的节点版本 12.x 不支持此 require 语句...
var promises_1 = require("fs/promises");
但这行得通
var promises_1 = require("fs").promises;
这可以通过将节点更新到最新来解决。
在节点 v12.18.1 中对我有用的是:
import { promises } from "fs";
const { readFile, writeFile } = promises;
我可以在 nestJS/express 上下文中使用这两种方法。
我最喜欢的方案:
import { promises as fs } from 'fs';
async function main() {
await fs.writeFile('test.txt', 'hello');
}
我最近在使用打字稿和 fs/promises API 并在编译打字稿代码和 运行 时遇到此错误,我收到此错误消息
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
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"]
}
节点版本12.18.0
有人遇到同样的问题还是我做错了什么?
请帮忙
谢谢...
根据 documentation,在 Node.js 的使用版本中,还没有专用模块 fs/promises
。但是,应该可以将 Node.js 升级到最新的 12.x,以便可以访问该模块。
错误是由于不受支持的节点版本 12.x 不支持此 require 语句...
var promises_1 = require("fs/promises");
但这行得通
var promises_1 = require("fs").promises;
这可以通过将节点更新到最新来解决。
在节点 v12.18.1 中对我有用的是:
import { promises } from "fs";
const { readFile, writeFile } = promises;
我可以在 nestJS/express 上下文中使用这两种方法。
我最喜欢的方案:
import { promises as fs } from 'fs';
async function main() {
await fs.writeFile('test.txt', 'hello');
}