node.js - fs/promises API u TypeScriptu se ne prevodi ispravno u JavaScript
Nedavno sam radio s TypeScriptom i fs/promises API-jem te sam dobio ovu grešku kada je TypeScript kod kompajliran i pokrenut. Dobio sam ovu grešku koja kaže:
internal/modules/cjs/loader.js:968
throw err;
^
Error: Cannot find module 'fs/promises'
Kad sam pogledao sastavljeni kod, ovo sam našao...
var promises_1 = require("fs/promises");
Koji je počeo raditi tako da ga promijeni
var promises_1 = require("fs").promises;
Ovo je moj TypeScript datoteka uvoz:
import { readFile, writeFile, appendFile } from "fs/promises";
Moja package.json datoteka:
"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 moja tsconfig.json datoteka:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"outDir": "dist",
"sourceMap": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
Node.js verzija: 12.18.0
Kako mogu to popraviti?
Odgovor #1
Rješenje koje mi se najviše sviđa:
import { promises as fs } from 'fs';
async function main() {
await fs.writeFile('test.txt', 'hello');
}
Odgovor #2
Pogreška je nastala zbog nepodržane verzije Node 12.x koja ne podržava ovu naredbu require...
var promises_1 = require("fs/promises");
ali ovo radi
var promises_1 = require("fs").promises;
Ovo se može riješiti ažuriranjem Node-a na najnoviju verziju.
