bir*_*d03 40 javascript es6-modules
我想import fs from 'fs'在JavaScript中使用.这是一个示例:
import fs from 'fs'
var output = fs.readFileSync('someData.txt')
console.log(output)
Run Code Online (Sandbox Code Playgroud)
我运行文件时遇到的错误node main.js是:
(function (exports, require, module, __filename, __dirname) { import fs from 'fs
'
^^^^^^
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
我应该在节点中安装什么才能从其他地方导入模块和功能?
Rob*_*elo 60
对于默认导出,您应该使用:
import * as fs from 'fs';
Run Code Online (Sandbox Code Playgroud)
或者如果模块已命名导出:
import {fs} from 'fs';
Run Code Online (Sandbox Code Playgroud)
例:
//module1.js
export function function1() {
console.log('f1')
}
export function function2() {
console.log('f2')
}
export default function1;
Run Code Online (Sandbox Code Playgroud)
然后:
import defaultExport, { function1, function2 } from './module1'
defaultExport(); // This calls function1
function1();
function2();
Run Code Online (Sandbox Code Playgroud)
此外,您应该使用webpack或类似的东西来使用es6 import
phi*_*hag 39
node.js中的ES6模块支持是最新的; 即使在最前沿的版本中,它仍然是实验性的.使用节点10,您可以使用--experimental-modules标志启动节点,它可能会起作用.
要在较旧的节点版本(或标准节点10)上导入,请使用CommonJS语法:
const fs = require('fs');
Run Code Online (Sandbox Code Playgroud)
小智 19
基于 RobertoNovelo 的回答:
import * as fs from 'fs';
Run Code Online (Sandbox Code Playgroud)
是目前最简单的方法。
它用Node.js的项目(Node.js的v10.15.3),以测试ESM,允许使用import。
nom*_*mis 14
要使用import { readFileSync } from 'fs',您必须执行以下操作:
node 10+--experimental-modules标志(在节点10中),例如节点--experimental-modules server.mjs(有关.mjs的解释,请参阅#3)import报表,以.mjs,.js文件将无法正常工作,如server.mjs其他答案分别为1和2,但3也是必要的.另请注意,此功能在此时被认为是非常实验性的(1/10稳定性),不建议用于生产...但我仍然可能在产品中使用它:D
这是节点10 esm文档,请喜欢并接受我的答案,因为它是唯一正确的答案:D:D