internal/modules/cjs/loader.js:968
throw err;
^
Error: Cannot find module 'fs/promises'
when I looked at the compiled code this is what I found...
var promises_1 = require("fs/promises");
which started working by changing it to
var promises_1 = require("fs").promises;
This is my typescript file import
import { readFile, writeFile, appendFile } from "fs/promises";
my package.json file
"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"
}
and my tsconfig.json file
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"outDir": "dist",
"sourceMap": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
node version 12.18.0
Is there someone facing the same problem or am I doing something wrong?
please help
Thanks...
The error was due to unsupported Node version 12.x which doesn't support this require statement...
var promises_1 = require("fs/promises");
but this works
var promises_1 = require("fs").promises;
This can be solved by updating the Node to the latest.
The solution I like best:
import { promises as fs } from 'fs';
async function main() {
await fs.writeFile('test.txt', 'hello');
}
What worked for me in node v12.18.1 was:
import { promises } from "fs";
const { readFile, writeFile } = promises;
I could use both methods within nestJS/express context.
In the used version of Node.js, there's no dedicated module fs/promises
yet, according to the documentation. It should be possible, however, to upgrade Node.js to the latest 12.x, so that the module will be accessible.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With