javascript - node - Usando import fs desde ''fs''
node js examples (4)
Quiero usar import fs from ''fs''
en JavaScript. Aquí hay una muestra:
import fs from ''fs''
var output = fs.readFileSync(''someData.txt'')
console.log(output)
El error que recibo cuando ejecuto mi archivo usando el node main.js
es:
(function (exports, require, module, __filename, __dirname) { import fs from ''fs
''
^^^^^^
SyntaxError: Unexpected token import
¿Qué debo instalar en el nodo para lograr importar módulos y funciones desde otros lugares?
Para las exportaciones predeterminadas debes usar:
import * as fs from ''fs'';
O en caso de que el módulo haya nombrado exportaciones:
import {fs} from ''fs'';
Ejemplo:
//module1.js
export function function1() {
console.log(''f1'')
}
export function function2() {
console.log(''f2'')
}
export default function1;
Y entonces:
import defaultExport, { function1, function2 } from ''./module1''
defaultExport(); // This calls function1
function1();
function2();
Además, debes usar webpack o algo similar para poder usar es6 import
Para usar la import { readFileSync } from ''fs''
, tendrás que hacer lo siguiente:
- Estar usando el
node 10+
- Utilice el
--experimental-modules
(en el nodo 10), por ejemplo, nodo --experimental-modules server.mjs (consulte la explicación # 3 para .mjs) - Cambie el nombre de la extensión de archivo de su archivo con las declaraciones de
import
, a.mjs
, .js no funcionará , por ejemplo server.mjs
Las otras respuestas llegan a 1 y 2, pero 3 también son necesarias. También tenga en cuenta que esta función se considera extremadamente experimental en este punto (estabilidad 1/10) y no se recomienda para la producción ... pero probablemente la usaré en prod: D
Aquí está la documentación del nodo 10 esm , por favor agradezca y acepte mi respuesta ya que es la única correcta: D: D
Todavía no está soportado ... Si quieres usarlo, deberás instalar babel
El soporte de módulos ES6 en node.js es bastante reciente; Incluso en las versiones de vanguardia, todavía es experimental. Con el nodo 10, puede iniciar el nodo con el --experimental-modules
, y es probable que funcione.
Para importar en versiones de nodo más antiguas, o en el nodo estándar 10, use la sintaxis de CommonJS:
const fs = require(''fs'');