如何导出默认对象中的所有命名导出?

问题描述 投票:0回答:2

我能做到:

import fs from 'fs'
//now use fs normally
fs.open('file')

但是我不能对我编写的模块做同样的事情:

import myModule from 'myModule'
       ^^^^^^^^
SyntaxError: The requested module 'myModule' does not provide an export named 'default'

我被迫这样做:

import * as myModule from 'myModule'
//now use myModule normally
myModule.do_something()

是否可以自动导出默认导出中的所有命名导出,这样就不需要导入

* as

javascript node.js es6-modules
2个回答
0
投票

您无法导出多个

default exports
。请使用
named exports
来代替。

此处的示例是从名为

Test.js
:

的文件中导出的模块
export const namedVar = "named1";

export const do_something = () => console.log("do something");

你可以这样使用它:

import { namedVar, do_something } from './Test'

console.log(namedVar);
console.log(do_something());

0
投票

我找到了解决办法。如果您的模块名为

mod.js
,请在文件中的任意位置添加此行:

export * as default from './mod.js';

现在以下两个语句是等效的:

import * as Mod from 'path/to/mod.js';
import Mod from 'path/to/mod.js';
© www.soinside.com 2019 - 2024. All rights reserved.