reactjs - 无法在 webdriverio 测试文件中导入 redux 存储
问题描述
我正在尝试导入我的 redux 商店,以便确保正在访问并正确设置商店,但尝试导入 redux 商店会给我以下错误:
ERROR: Unexpected token import
firefox
/Users/Name/Desktop/project/internal-dashboard/dashboard/src/store.js:1
(function (exports, require, module, __filename, __dirname) { import rootReducer from './reducers/rootReducer';
^^^^^^
Syntax at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:607:28)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/Name/Desktop/project/internal-dashboard/dashboard/test/login.js:2:15)
不知道为什么它告诉我这是一个意外的令牌。该应用程序在我启动时可以正常运行,那么为什么在我运行 webdriverio 测试时,它在存储文件中使用的导入令牌有问题?
这是商店文件:
import rootReducer from './reducers/rootReducer';
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';
const store = createStore(
rootReducer,
composeWithDevTools(applyMiddleware(thunk))
);
export default store;
这是我的登录测试
let assert = require('assert');
import store from '../src/store';
describe("Login Page", () => {
console.log(store.getState());
it('should tell user to enter a username', () => {
browser.url('./');
let loginHeader = $('p=SIGN IN');
loginHeader.waitForExist(20000);
browser.setValue('#username', '');
browser.setValue('#password', '');
browser.click('.ui.button');
let enterUsernameDiv = $('div=Please enter a username');
enterUsernameDiv.waitForExist(10000);
});
}
解决方案
请注意,与 Redux 本身不同,Redux 生态系统中的许多包不提供 UMD 构建,因此我们建议使用 Webpack 和 Browserify 等 CommonJS 模块捆绑器以获得最舒适的开发体验。
在没有反应的节点中单独使用 redux 时执行以下操作将解决问题
import { createStore, applyMiddleware } from 'redux';
成为
const { createStore, applyMiddleware } = require('redux');
推荐阅读
- c# - c# 如何异步更新列表框?
- python - 根据python中的多个分段函数生成一个新的分段函数
- javascript - 一个异步函数中的多个等待
- fullcalendar - dayGridMonth 视图未显示日期范围事件中所有日期的点制造商
- html - 设置元素的高度
- jquery - 如何在jQuery中获取下一个复选框选中的值
- julia - BigFloat 没有给出任意精度
- javascript - 如何在两个集合之间建立关系?
- flutter - 当我尝试在我的颤振应用程序中添加网络图像时,它会显示无效的图像数据。我该如何解决这个问题?
- c# - 错误 MSB4064:使用 PostSharp 时“PrepareForReadyToRunCompilation”不支持“NETCoreSdkRuntimeIdentifier”参数