node.js - API-ul fs/promises în TypeScript nu se compilează corect în JavaScript
Lucram recent cu TypeScript și API-ul fs/promises și am primit această eroare când codul TypeScript a fost compilat și rulat. Am primit această eroare care spunea:
internal/modules/cjs/loader.js:968
throw err;
^
Error: Cannot find module 'fs/promises'
Când m-am uitat la codul compilat, asta am găsit...
var promises_1 = require("fs/promises");
Care a început să funcționeze schimbându-l în
var promises_1 = require("fs").promises;
Acesta este importul meu de fișier TypeScript:
import { readFile, writeFile, appendFile } from "fs/promises";
Fișierul meu 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"
}
Și fișierul meu tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"outDir": "dist",
"sourceMap": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
Versiunea Node.js: 12.18.0
Cum pot să repar asta?
Răspuns #1
Soluția care îmi place cel mai mult:
import { promises as fs } from 'fs';
async function main() {
await fs.writeFile('test.txt', 'hello');
}
Răspunsul #2
Eroarea a fost cauzată de versiunea Node 12.x neacceptată, care nu suportă această declarație require...
var promises_1 = require("fs/promises");
dar asta funcționează
var promises_1 = require("fs").promises;
Acest lucru poate fi rezolvat prin actualizarea Node la cea mai recentă versiune.
