导入,重命名和导出JavaScript中的函数?

时间:2019-03-25 14:02:46

标签: javascript

使用JavaScript导入命名导出,重命名并再次导出的最短方法是什么?

此代码有效,但感觉比应有的冗长

import { mock as myFunctionMock } from 'context/myFunction';
export const myFunction = myFunctionMock;

3 个答案:

答案 0 :(得分:4)

您可以像这样组合导入和导出:

export { mock as myFunctionMock } from 'context/myFunction';

请参见MDN Docs

请注意,由于您尚未导入代码文件,因此实际上将无法在代码文件中使用 myFunctionMock。在{em> this 模块中不会定义mockmyFunctionMock

这是在构建将由其他模块或最终用户使用的库时的有用快捷方式。

例如,如果您有一个要导出的utils库,但您希望跨多个较小的文件(例如stringUtilsobjectUtils,{ {1}}等,您可以在dataUtils模块中导出这些模块的内容,以创建单个整体访问点:

stringUtils.js

utils

objectUtils.js

export function toLower(){}

export function toUpper(){}

utils.js

export function propertyMap(){}

我一般不会为内部代码推荐这种方法,因为它在某些情况下会使您的依赖树变得有些奇怪。但是,在要从通用接口导入但实现取决于构建(prod vs dev,web vs node等)的情况下,它可能非常有用。

答案 1 :(得分:1)

import { mock as myFunction } from 'context/myFunction';
export { myFunction };

答案 2 :(得分:0)

在您的原始出口商中,执行:

module.exports = { mock: function () {...}}

导入时,请执行:

const myFunctionMock = require('file path of exporter');

然后在同一文件中重新导出:

module.exports = {renamedMock: myFunctionMock};

现在,对mock所做的任何更改都会传播到引用它的其他模块(注意,简而言之,这是node.js)。