为什么我的文件夹名称会影响 `npm test`、Jest 和 Babel?
Why would my folder name impact `npm test`, Jest, and Babel?
我的 Jest 测试设置文件中有 SyntaxError: Unexpected token import
。我知道修复是通过 .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
其他人下载我的repo没有问题。从来没有 运行 遇到过像这样的文件夹名称的问题。
更新 3
克隆到 /Users/dstein/Repositories/my-app
失败。克隆到 /Users/dstein/my-app
有效。克隆到 /Users/dstein/Repositories/abc/my-app
有效。不确定是什么导致了那条随机的失败路径,特别是考虑到重命名 my-app
的文件夹本身是有效的。
我想到了我的计算机上唯一可能不同的东西 - 缓存。我试过 "test": "NODE_ENV=test BABEL_DISABLE_CACHE=1 jest",
无济于事。然后我在 Jest 代码库中搜索了 cache babel
并找到了 https://github.com/facebook/jest/blob/6ee2a14b83393c9e3e3408beb5c4848489f04cf6/docs/Troubleshooting.md. Running jest with --no-cache
had it work. I then found 。所以我清除了缓存,问题就完全消失了。
提交了可能的错误或文档问题
我的 Jest 测试设置文件中有 SyntaxError: Unexpected token import
。我知道修复是通过 .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
其他人下载我的repo没有问题。从来没有 运行 遇到过像这样的文件夹名称的问题。
更新 3
克隆到 /Users/dstein/Repositories/my-app
失败。克隆到 /Users/dstein/my-app
有效。克隆到 /Users/dstein/Repositories/abc/my-app
有效。不确定是什么导致了那条随机的失败路径,特别是考虑到重命名 my-app
的文件夹本身是有效的。
我想到了我的计算机上唯一可能不同的东西 - 缓存。我试过 "test": "NODE_ENV=test BABEL_DISABLE_CACHE=1 jest",
无济于事。然后我在 Jest 代码库中搜索了 cache babel
并找到了 https://github.com/facebook/jest/blob/6ee2a14b83393c9e3e3408beb5c4848489f04cf6/docs/Troubleshooting.md. Running jest with --no-cache
had it work. I then found