Borislav Hadzhiev
Sun Feb 20 2022·2 min read
Photo by Jamie Street
To solve the "Cannot find module fs/promises
or its corresponding type
declarations" error, install the types for node by running the command
npm i -D @types/node
. You can then import fs
with the following line of code
import { promises as fsPromises } from 'fs'
.
Make sure to install the typings for node, by opening your terminal in your project's root directory and running the following command:
npm i -D @types/node
This will install the typings for node as a dev dependency in your project.
Now you are able to import the fs
module with the following line of code.
import { promises as fsPromises } from 'fs';
If your error has not been resolved, open your tsconfig.json
file and make
sure the types
array contains the string node
.
{ "compilerOptions": { "types": [ "node" ] }, }
fs
module.If the error is not resolved, try to delete your node_modules
and
package-lock.json
files, re-run npm install
and restart your IDE.
rm -rf node_modules package-lock.json npm install
Make sure to restart your IDE if the error still persists. VSCode glitches often and a reboot solves things sometimes.
Here is an example of how you would read the contents of a directory and the
contents of a file named another-file.ts
located in the same directory using
fs promises.
import { promises as fsPromises } from 'fs'; import * as path from 'path'; async function readFile() { try { // ✅ Read contents of directory const dirContents = await fsPromises.readdir(__dirname); console.log(dirContents); // ✅ Read contents of `another-file.ts` in the same directory const fileContents = await fsPromises.readFile( path.join(__dirname, './another-file.ts'), { encoding: 'utf-8' }, ); console.log(fileContents); } catch (err) { console.log('error is: ', err); } } readFile();
You could rename the import to something else if fsPromises
seems too long,
e.g. fsp
, etc.
Here is the output in my terminal, showing the files in the directory and the
contents of another-file.ts
.