Using Import Fs from 'Fs'
I Want to Use Import Fs from 'Fs' in Javascript. Here Is a Sample: Import Fs from 'Fs' Var Output = Fs. readFileSync('someData. Txt') Console. Log(Output) the...
I want to use import fs from 'fs' in JavaScript. Here is a sample:
import fs from 'fs'
var output = fs.readFileSync('someData.txt')
console.log(output)
The error I get when I run my file using node main.js is:
(function (exports, require, module, __filename, __dirname) { import fs from 'fs
'
^^^^^^
SyntaxError: Unexpected token import
What should I install in Node.js in order to achieve importing modules and functions from other places?
9 Answers
For default exports you should use:
import * as fs from 'fs';
Or in case the module has named exports:
import {fs} from 'fs';
Example:
//module1.js
export function function1() {
console.log('f1')
}
export function function2() {
console.log('f2')
}
export default function1;
And then:
import defaultExport, { function1, function2 } from './module1'
defaultExport(); // This calls function1
function1();
function2();
Additionally, you should use Webpack or something similar to be able to use ES6 import
ES6 modules support in Node.js is fairly recent; even in the bleeding-edge versions, it is still experimental. With Node.js 10, you can start Node.js with the --experimental-modules flag, and it will likely work.
To import on older Node.js versions - or standard Node.js 10 - use CommonJS syntax:
const fs = require('fs');
In order to use import { readFileSync } from 'fs', you have to:
- Be using Node.js 10 or later
- Use the
--experimental-modulesflag (in Node.js 10), e.g.node --experimental-modules server.mjs(see #3 for explanation of .mjs) - Rename the file extension of your file with the
importstatements, to.mjs, .js will not work, e.g. server.mjs
The other answers hit on 1 and 2, but 3 is also necessary. Also, note that this feature is considered extremely experimental at this point (1/10 stability) and not recommended for production, but I will still probably use it.
Here's the Node.js 10 ESM documentation.
Building on RobertoNovelo's answer:
import * as fs from 'fs';
is currently the simplest way to do it.
It was tested with a Node.js project (Node.js v10.15.3), with esm, allowing to use import.
Go to package.json file and add:
"type": "module"
This worked for me!
The new ECMAScript module support is able natively in Node.js 12 🎉
It was released on 2019-04-23 and it means there is no need to use the flag --experimental-modules.
To read more about it:
If we are using TypeScript, we can update the type definition file by running the command npm install @types/node from the terminal or command prompt.
It's not supported just yet... If you want to use it you will have to install Babel.
hey friends node js use commonjs not modaljs so use alawys use const fs = require('fs') for file system if we use modaljs import fs from 'fs' its give error se in termile import {fs} from 'fs'; ^^^^^^ SyntaxError: Cannot use import statement outside a module