使用JavaScript导入命名导出,重命名并再次导出的最短方法是什么?
此代码有效,但感觉比应有的冗长
import { mock as myFunctionMock } from 'context/myFunction';
export const myFunction = myFunctionMock;
答案 0 :(得分:4)
您可以像这样组合导入和导出:
export { mock as myFunctionMock } from 'context/myFunction';
请参见MDN Docs
请注意,由于您尚未导入代码文件,因此实际上将无法在代码文件中使用 myFunctionMock
。在{em> this 模块中不会定义mock
和myFunctionMock
。
这是在构建将由其他模块或最终用户使用的库时的有用快捷方式。
例如,如果您有一个要导出的utils
库,但您希望跨多个较小的文件(例如stringUtils
,objectUtils
,{ {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)。