首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开玩笑地测试“意外令牌输出”

开玩笑地测试“意外令牌输出”
EN

Stack Overflow用户
提问于 2018-03-01 23:18:23
回答 2查看 2.4K关注 0票数 0

我在试着做些有趣的测试。我在“导出”一词的export default configureStore..specifically行处得到了错误..specifically。对我来说,这意味着redux-mock-store没有被Babel转移,所以我怎么才能强迫Jest这样做呢?我在用开玩笑-webpack

ContractsActions.test.js

代码语言:javascript
复制
import * as contractsActions from './contractsActions';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';

const middlewares = [thunk]
const mockStore = configureMockStore(middlewares);

describe('async actions', () => {
    const store = mockStore({})
    return store.dispatch(contractsActions.fetchAllContracts()).then(() => {
        //Do something
    })
});

package.json

代码语言:javascript
复制
...
  "scripts": {
    "test": "jest-webpack",
...
  "jest": {
    "transformIgnorePatterns": [
      "!node_modules/"
    ]
  }
...

webpack.config.js

代码语言:javascript
复制
module: {
    loaders: [
        {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query:
            {
                presets:['es2015', 'react', 'stage-2']
            }
        }
    ]
},
resolve: {
    extensions: ['.js', '.jsx'],
    alias: {
        react: path.resolve('./node_modules/react'),
    }
},
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-02 05:11:02

最后,我通过创建一个单独的.babelrc文件来解决这个问题,而不是试图在package.json中设置babel配置设置。我相信我尝试过的其他步骤可能会有所贡献,但这似乎是修复它的方法。

.babelrc

代码语言:javascript
复制
{
  "presets": [["es2015", {"modules": false}]],

  "env": {
    "test": {
      "plugins": ["transform-es2015-modules-commonjs"]
    }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2018-03-01 23:32:47

看看这个包中的package.json

https://github.com/arnaudbenard/redux-mock-store/blob/master/package.json

您可以看到它提供了不同的入口点:

代码语言:javascript
复制
"main": "dist/index-cjs.js",
"module": "dist/index-es.js",
"js:next": "dist/index-es.js",
"browser": "dist/index.min.js",

检查您的node_modules/redux-mock-store是否有dist文件夹。如果不是,启动适合您的需求的构建(也在package.json中列出):

代码语言:javascript
复制
"build:cjs": "babel src --out-file dist/index-cjs.js",
"build:umd": "cross-env BABEL_ENV=es NODE_ENV=development rollup -f umd -c -i src/index.js -o dist/index-umd.js",
"build:umd:min": "cross-env BABEL_ENV=es NODE_ENV=production rollup -f umd -c -i src/index.js -o dist/index-umd.min.js",
"build:es": "cross-env BABEL_ENV=es NODE_ENV=development rollup -f es -c -i src/index.js -o dist/index-es.js",
"build": "npm run build:umd && npm run build:umd:min && npm run build:es && npm run build:cjs",

我不知道哪一个版本适合你,但我想其中的一个版本会是合适的。最坏的情况是,在node_modules/redux-mock-store中启动node_modules/redux-mock-store并使用CommonJS require语法:

代码语言:javascript
复制
const configureMockStore = require('redux-mock-store/dist/index-cjs.js'); 

希望这能解决你的问题,至少这些是我会尝试的步骤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49060283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档