从 'fs' 使用 import fs
Using import fs from 'fs'
我想在 JavaScript 中使用 import fs from 'fs'
。这是一个示例:
import fs from 'fs'
var output = fs.readFileSync('someData.txt')
console.log(output)
当我 运行 我的文件使用 node main.js
时出现的错误是:
(function (exports, require, module, __filename, __dirname) { import fs from 'fs
'
^^^^^^
SyntaxError: Unexpected token import
Node.js需要安装什么才能实现从其他地方导入模块和功能?
对于默认导出,您应该使用:
import * as fs from 'fs';
或者如果模块已命名导出:
import {fs} from 'fs';
示例:
//module1.js
export function function1() {
console.log('f1')
}
export function function2() {
console.log('f2')
}
export default function1;
然后:
import defaultExport, { function1, function2 } from './module1'
defaultExport(); // This calls function1
function1();
function2();
此外,您应该使用 Webpack or something similar to be able to use ES6 import
ES6 modules support in Node.js 是相当新的;即使在最前沿的版本中,它仍处于试验阶段。使用 Node.js 10,您可以使用 --experimental-modules
标志启动 Node.js,它可能会起作用。
要导入旧 Node.js 版本 - 或标准 Node.js 10 - 使用 CommonJS 语法:
const fs = require('fs');
目前还不支持...如果您想使用它,您必须安装 Babel。
要使用 import { readFileSync } from 'fs'
,您必须:
- 正在使用 Node.js 10 或更高版本
- 使用
--experimental-modules
标志(在 Node.js 10 中),例如node --experimental-modules server.mjs
(有关 .mjs 的说明,请参阅#3)
- 使用
import
语句将文件的文件扩展名重命名为 .mjs
,.js 将不起作用,例如server.mjs
其他答案都命中了1和2,但是3也是必须的。另外,请注意,此功能目前被认为是非常实验性的(1/10 稳定性),不推荐用于生产,但我仍可能会使用它。
新的 ECMAScript 模块支持在 Node.js 12
中原生可用
发布于2019-04-23,表示不需要使用flag --experimental-modules
。
阅读更多相关信息:
基于 RobertoNovelo 的回答:
import * as fs from 'fs';
是目前最简单的方法。
已使用 Node.js 项目(Node.js v10.15.3)进行测试,esm,允许使用 import
。
如果我们使用的是 TypeScript,我们可以在终端或命令提示符下通过 运行 命令 npm install @types/node
更新类型定义文件。
转到 package.json 文件并添加:
"type": "module"
这对我有用!
嘿朋友们 node js 使用 commonjs 而不是 modaljs 所以请使用 alawys
const fs = require('fs') 对于文件系统,如果我们使用 modaljs import fs from 'fs'
它在 termile 中给出错误 se
从 'fs' 导入 {fs};
^^^^^^
语法错误:无法在模块外使用导入语句
我想在 JavaScript 中使用 import fs from 'fs'
。这是一个示例:
import fs from 'fs'
var output = fs.readFileSync('someData.txt')
console.log(output)
当我 运行 我的文件使用 node main.js
时出现的错误是:
(function (exports, require, module, __filename, __dirname) { import fs from 'fs
'
^^^^^^
SyntaxError: Unexpected token import
Node.js需要安装什么才能实现从其他地方导入模块和功能?
对于默认导出,您应该使用:
import * as fs from 'fs';
或者如果模块已命名导出:
import {fs} from 'fs';
示例:
//module1.js
export function function1() {
console.log('f1')
}
export function function2() {
console.log('f2')
}
export default function1;
然后:
import defaultExport, { function1, function2 } from './module1'
defaultExport(); // This calls function1
function1();
function2();
此外,您应该使用 Webpack or something similar to be able to use ES6 import
ES6 modules support in Node.js 是相当新的;即使在最前沿的版本中,它仍处于试验阶段。使用 Node.js 10,您可以使用 --experimental-modules
标志启动 Node.js,它可能会起作用。
要导入旧 Node.js 版本 - 或标准 Node.js 10 - 使用 CommonJS 语法:
const fs = require('fs');
目前还不支持...如果您想使用它,您必须安装 Babel。
要使用 import { readFileSync } from 'fs'
,您必须:
- 正在使用 Node.js 10 或更高版本
- 使用
--experimental-modules
标志(在 Node.js 10 中),例如node --experimental-modules server.mjs
(有关 .mjs 的说明,请参阅#3) - 使用
import
语句将文件的文件扩展名重命名为.mjs
,.js 将不起作用,例如server.mjs
其他答案都命中了1和2,但是3也是必须的。另外,请注意,此功能目前被认为是非常实验性的(1/10 稳定性),不推荐用于生产,但我仍可能会使用它。
新的 ECMAScript 模块支持在 Node.js 12
中原生可用发布于2019-04-23,表示不需要使用flag --experimental-modules
。
阅读更多相关信息:
基于 RobertoNovelo 的回答:
import * as fs from 'fs';
是目前最简单的方法。
已使用 Node.js 项目(Node.js v10.15.3)进行测试,esm,允许使用 import
。
如果我们使用的是 TypeScript,我们可以在终端或命令提示符下通过 运行 命令 npm install @types/node
更新类型定义文件。
转到 package.json 文件并添加:
"type": "module"
这对我有用!
嘿朋友们 node js 使用 commonjs 而不是 modaljs 所以请使用 alawys const fs = require('fs') 对于文件系统,如果我们使用 modaljs import fs from 'fs' 它在 termile 中给出错误 se 从 'fs' 导入 {fs}; ^^^^^^ 语法错误:无法在模块外使用导入语句