gpt4 book ai didi

javascript - Module.exports 和 es6 导入

转载 作者:行者123 更新时间:2023-12-02 09:48:17 25 4
gpt4 key购买 nike

与 babel 进行 react 。我对导入和 module.exports 感到困惑。我假设 babel 在将 ES6 代码转换为 ES5 时将导入和导出分别转换为 require 和 module.exports。

如果我从一个模块导出函数并在另一个模块中导入该函数,则代码可以正常执行。但是,如果我使用 module.exports 导出函数并使用“import”导入,则会在运行时抛出错误,指出它不是函数。

我编了一个例子。

// Tiger.js
function Tiger() {
function roar(terrian){
console.log('Hey i am in ' + terrian + ' and i am roaing');
};
return roar;
}

module.exports = Tiger;

// animal.js
import { Tiger } from './animals';

var animal = Tiger();
animal("jungle");

我使用babel和预设的es2015来转编译它。这给了我以下错误

Uncaught TypeError: (0 , _animals.Tiger) is not a function

但是如果我删除 module.exports = Tiger; 并将其替换为 export { Tiger }; 它工作正常。

我在这里缺少什么?

编辑:我使用 browserify 作为模块 bundler 。

最佳答案

export { Tiger }相当于 module.exports.Tiger = Tiger .

相反,module.exports = Tiger相当于 export default Tiger

所以当你使用module.exports = Tiger时然后尝试 import { Tiger } from './animals'您实际上是在要求 Tiger.Tiger

关于javascript - Module.exports 和 es6 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34278474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com