为什么我的文件夹名称会影响`npm test`,Jest和Babel?

时间:2018-03-13 18:10:37

标签: babeljs jestjs nextjs

我在我的设置文件中获取了SyntaxError: Unexpected token import以进行我的Jest测试。我知道修复是通过.babelrc文件。这实际上适用于一些案例。我从https://github.com/zeit/next.js/tree/canary/examples/with-jest复制粘贴。

当我运行npm test时,它失败了。当我运行npm run test时,它也会失败。当我运行npm run test:coverage时,可以运行。我的脚本是:

"test": "NODE_ENV=test jest",
"test:coverage": "NODE_ENV=test jest  --coverage --coverageDirectory=coverage",

如果我将test:coverage更改为NODE_ENV=test jest,则会失败。因此,以某种方式请求报道报告可以神奇地解决问题。

奇怪的是,当基本的工作正在进行时,覆盖范围失败了。我删除了我的包锁,删除了模块,然后再次尝试npm install。然后失败的情况与我上面写的相反。

我的设置文件是:

import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import jestFetch from 'jest-fetch-mock';

configure({ adapter: new Adapter() });
global.fetch = jestFetch;

我已将Nextjs示例应用修改为几乎相同,但错误并未显示。我不知道差异可能是什么。

更新

我真的复制了样本的所有内容,但它仍然无法正常工作。然后我将我的文件夹从my-app重新命名为my-appy,它确实有效。我回去了所有原始代码,包括文件夹名my-app,但它失败了。我重命名了该文件夹并且它有效。该文件夹如何影响我运行npm test

时发生的情况

更新2

下载我的回购的其他人没有问题。从来没有遇到像这样的文件夹名称的问题。

更新3

克隆到/Users/dstein/Repositories/my-app失败。克隆到/Users/dstein/my-app有效。克隆到/Users/dstein/Repositories/abc/my-app有效。不确定什么可能针对失败的一个随机路径,特别是假设重命名my-app本身的文件夹正在工作。

1 个答案:

答案 0 :(得分:2)

我想到了我的计算机上唯一可能有所不同的东西 - 缓存。我试过"test": "NODE_ENV=test BABEL_DISABLE_CACHE=1 jest",无济于事。然后我在Jest代码库中搜索了cache babel并找到了https://github.com/facebook/jest/blob/6ee2a14b83393c9e3e3408beb5c4848489f04cf6/docs/Troubleshooting.md。使用--no-cache运行笑话有效。然后我找到了How to clear Jest cache?。所以我清除了缓存,问题完全消失了。

https://github.com/facebook/jest/issues/5796

处提交了可能的错误或文档问题