Javascript 找不到导出--但名称仍然有效

Javascript 找不到导出--但名称仍然有效,javascript,vue.js,ecmascript-6,Javascript,Vue.js,Ecmascript 6,我确信这是显而易见的,但我不明白为什么这在此刻不起作用 我在Vue项目中有一个文件,它以两种不同的格式导出密钥码,一种用于常量(allCodes),另一种用于Vue(keycodes): 导出默认值{ 所有代码, 键码 }; 当我尝试像这样使用解构导入其中一个时,我得到一个错误: import { allCodes } from '@/helpers/keycodes'; 但是,导入然后按名称引用密钥是有效的: 从'@/helpers/keycodes'导入对象; console.log('

我确信这是显而易见的,但我不明白为什么这在此刻不起作用

我在Vue项目中有一个文件,它以两种不同的格式导出密钥码,一种用于常量(
allCodes
),另一种用于Vue(
keycodes
):

导出默认值{
所有代码,
键码
};
当我尝试像这样使用解构导入其中一个时,我得到一个错误:

import { allCodes } from '@/helpers/keycodes';
但是,导入然后按名称引用密钥是有效的:

从'@/helpers/keycodes'导入对象;
console.log('allCodes',object.allCodes);

给出了什么?

如果您想要命名导出,它应该是

export {
  allCodes,
  keyCodes
};
当前,您正在将对象导出为默认值

顺便说一句,“我试着像这样使用解构来导入其中一个”,如果你的意思是你试图在导入中使用解构赋值,那么它将不起作用。命名的导入语句不是对象分解语句,尽管它在最简单的情况下看起来很相似

如果希望有默认导出,则应在导入语句下方进行赋值

export default {
  allCodes,
  keyCodes
};

// importing side
import keycodes from '@/helpers/keycodes';
const { allCodes } = keycodes;

如果需要命名导出,则应该是

export {
  allCodes,
  keyCodes
};
当前,您正在将对象导出为默认值

顺便说一句,“我试着像这样使用解构来导入其中一个”,如果你的意思是你试图在导入中使用解构赋值,那么它将不起作用。命名的导入语句不是对象分解语句,尽管它在最简单的情况下看起来很相似

如果希望有默认导出,则应在导入语句下方进行赋值

export default {
  allCodes,
  keyCodes
};

// importing side
import keycodes from '@/helpers/keycodes';
const { allCodes } = keycodes;