我有一些功能,我想将它们保存在外部js文件中。例如。
在functions.js
中var double = function(x) {
return x + x;
}
export { double };
然后在我的主js文件中:
import double from './functions';
...
double(2)
我收到此错误:
Uncaught TypeError: (0 , c.default) is not a function
at bundle.min.js:44
当我读到第44行时:
(0, _functions2.default)(2);
任何想法为什么?我错过了什么?
答案 0 :(得分:10)
您将默认和命名导出混淆。
如果您export { double }
,则必须import { double } from './functions';
如果您只有一个导出,则最好使用默认导出:
export default double;
然后你可以import double from './functions':
原因是命名导出允许您仅导入模块的一部分。例如:
export function add (a, b) { return a + b; }
export function subtract (a, b) { return a - b; }
然后,您可以import { add } from './math.js';
而无需导入subtract
。
但是,如果您只是从模块导出一个函数,则默认导出更方便。
答案 1 :(得分:2)
使用:
var double = function(x) {
return x + x;
}
export {double};
和
import {double} from './functions';
或强>
导出默认双倍;
和强>
从" ./ functions.js";
导入double