&引用;SyntaxError:意外标记,应为“1”;尝试访问javascript对象值时

&引用;SyntaxError:意外标记,应为“1”;尝试访问javascript对象值时,javascript,node.js,webpack,Javascript,Node.js,Webpack,在Alias.js中,我试图从导入的actionTypes对象访问“SELECT_HOST”属性值。然而,这会导致“SyntaxError:意外令牌,预期”错误,如Webpack所示。我无法确定actionTypes中的语法错误。请选择\u HOST,这是访问对象属性值的标准点表示法 actionTypes.js: const actionTypes = { SELECT_HOST : 'SELECT_HOST', INVOKE_ASSESSMENT : 'INVOKE_ASSE

在Alias.js中,我试图从导入的actionTypes对象访问“SELECT_HOST”属性值。然而,这会导致“SyntaxError:意外令牌,预期”错误,如Webpack所示。我无法确定
actionTypes中的语法错误。请选择\u HOST
,这是访问对象属性值的标准点表示法

actionTypes.js:

const actionTypes = {
    SELECT_HOST : 'SELECT_HOST',
    INVOKE_ASSESSMENT : 'INVOKE_ASSESSMENT',
    RETRIEVE_ASSESSMENT : 'RETRIEVE_ASSESSMENT',
    RETRIEVE_OPTIONS : 'RETRIEVE_OPTIONS',
    RETRIEVE_RESULTS : 'RETRIEVE_RESULTS',
    UPDATE_OPTIONS : 'UPDATE_OPTIONS'
};

export default actionTypes;
Alias.js:

import actionTypes from '../actions/actionTypes';

const selectHost = (host) => {
    chrome.tabs.query({currentWindow: true, active: true}, (tabs) => {
        host = new URL(tabs[0].url).hostname;
    });
    const action = {
        type: actionTypes.SELECT_HOST,
        host
    };
    return action;
};

export default {
    actionTypes.SELECT_HOST: selectHost
};
网页包抛出错误:

ERROR in ./src/aliases/aliases.js
Module build failed: SyntaxError: Unexpected token, expected ,     (15:12)

  13 | 
  14 | export default {
> 15 |  actionTypes.SELECT_HOST: selectHost
     |             ^
  16 | };

在Object literal内部,如果您试图使用actionTypes的值,则键名不能包含点(.)

。选择\u HOST作为要导出的对象中的属性名,您可以使用计算属性表示法来实现这一点(从ES2015开始新增,但是,您正在使用的许多其他东西也是如此,所以…),请注意
[]

export default {
    [actionTypes.SELECT_HOST]: selectHost
};

例如,如果
actionTypes.SELECT\u HOST
包含字符串
“foo”
,将生成一个名为
foo
的属性的对象,该属性的值为
selectHost

,我相信您可能需要定义
out={};out[actionTypes.SELECT\u HOST]=selectHost;导出默认输出
..@NiettheDarkAbsol:如果OP正试图这样做,那么ES2015+中不需要这两个步骤。你想用
操作类型做什么。选择主机
?是的,这是一个完全正常的属性访问表达式,但在您执行此操作时,属性访问表达式无效(因此出现错误)。@T.J.Crowder感谢您的评论和回答。我不知道属性访问表达式不能在对象文本中使用。我将某些常量定义为actionTypes.js(用作枚举集合)中的对象值,然后导出这些值。然后,在其他文件中,我正在访问这些值。@Agrim:很好(你最后说你在使用这个值,我只是想确定一下)。好消息是,您现在可以使用这些表达式(括号中)。:-)太好了,真的成功了!是的,我正在使用ES2015(尽管仍处于全面学习的过程中),因此每天都要学习新的东西。