【发布时间】:2017-02-04 13:33:45
【问题描述】:
在 aliases.js 中,我试图从导入的 actionTypes 对象中访问“SELECT_HOST”属性值。但是,根据 Webpack,这会导致“SyntaxError: Unexpected token, expected ”错误。我无法确定actionTypes.SELECT_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;
aliases.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
};
Webpack 抛出错误:
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 | };
【问题讨论】:
-
相信你可能需要定义
out = {}; out[actionTypes.SELECT_HOST] = selectHost; export default out;... -
@NiettheDarkAbsol:在 ES2015+ 中不需要这两个步骤,如果那是 OP 想要做的。
-
你想对
actionTypes.SELECT_HOST做什么?是的,这是一个完全正常的属性访问表达式,但是在您执行此操作的地方,属性访问表达式无效(因此出现错误)。 -
@T.J.Crowder 感谢 cmets 和您的回答。我不知道不能在对象文字中使用属性访问表达式。我将某些常量定义为 actionTypes.js(用作枚举集合)中的对象值,然后导出这些值。然后,在其他文件中,我正在访问这些值。
-
@Agrim:很好(你确实说过你在最后使用了这个值,我只是想确定一下)。好消息是您现在可以使用这些表达式(在括号中)。 :-)
标签: javascript node.js webpack