我正在使用jest和酶与我的create-react-app项目.当我运行时npm test,我得到一个输出,显示传递的测试文件的名称,但我希望输出还包括测试的名称.
例:
Button.test.js
it ('renders button', () => {
const button = shallow(<Button type="save"/>);
expect(toJson(button)).toMatchSnapshot();
});
Run Code Online (Sandbox Code Playgroud)
现在当我运行npm test时,输出只是:
通过src/Button.test.js"
以及通过和失败的测试次数(测试成功时).我希望输出包含"渲染按钮"和任何其他测试描述(例如运行rspec测试时输出的外观).
我在创建 React 应用程序时遇到错误。我如何解决它?
Microsoft Windows [Version 10.0.19044.1586]
(c) Microsoft Corporation. All rights reserved.
C:\Users\Olususi Victor>cd documents
C:\Users\Olususi Victor\Documents>cd react folder
C:\Users\Olususi Victor\Documents\React folder>npx create-react-app blog
You are running `create-react-app` 5.0.0, which is behind the latest release (5.0.1).
We no longer support global installation of Create React App.
Please remove any global installs with one of the following commands:
- npm uninstall -g create-react-app
- yarn global remove create-react-app
The latest instructions for creating a new app can be found here: …Run Code Online (Sandbox Code Playgroud) \n\n这就是我所拥有的!!
\n
PS C:\\My Files\\Software Development\\netflix-clone> npx create-react-app ./\nnpm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.\n\nCreating a new React app in C:\\My Files\\Software Development\\netflix-clone.\n\nnpm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.\nInstalling packages. This might take a couple of minutes.\nInstalling react, react-dom, and react-scripts with cra-template...\n\nnpm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.\n\nadded 1392 packages in 11m\n\n194 packages are looking for funding\n run `npm fund` for details\n\nInitialized a git repository.\n\nInstalling …Run Code Online (Sandbox Code Playgroud) OP编辑:如果有其他人遇到这个:该应用程序是使用create-react-app创建的,它限制导入到src文件夹中.但是,如果将react-scripts升级到v1.0.11,则允许您访问package.json.
我想在我的应用程序中从package.json获取版本号.
我已经尝试过这些建议,但是没有一个能够工作,因为我无法从src文件夹外部访问package.json(可能是由于React,我是新手).移动的package.json到SRC那么意味着我不能跑npm install,npm version minor和npm run build从我的根文件夹.我尝试过使用process.env.npm_package_version但结果是未定义的.
我正在使用Jenkins,我还没有设置它来提交提交,但我唯一的想法是从GitLab中的标签获取版本,但我不知道如何做到这一点,它会给回购添加不必要的依赖,所以我真的想找到一个替代方案.
编辑:我的文件结构如下:
--> RootAppFolder
|--> build
|--> node_modules
|--> public
|--> src
|--> Components
|--> Root.js
|
|--> package.json
Run Code Online (Sandbox Code Playgroud)
所以要从Root.js访问package.json我必须这样做import packageJson from './../../package.json',然后我收到以下错误:
./src/components/Root.js
找不到模块:您试图导入位于项目src /目录之外的./../../package.json.不支持src /之外的相对导入.你可以在src /中移动它,或者从项目的node_modules /中添加一个符号链接.
我通过create-react-app创建了一个新的React应用程序,我想对我在应用程序中创建的名为"MessageBox"的组件编写单元测试.这是我写的单元测试:
import MessageBox from "../MessageBox";
import { shallow } from 'enzyme';
import React from 'react';
test('message box', () => {
const app = {setState: jest.fn()};
const wrapper = shallow(<MessageBox app={app}/>);
wrapper.find('button').at(0).simulate('click');
expect(app.setState).toHaveBeenLastCalledWith({modalIsOpen: false});
});
Run Code Online (Sandbox Code Playgroud)
我还在'src'文件夹下添加了一个名为'setupTests.js'的文件,其中包含以下内容:
import * as enzyme from 'enzyme';
import * as Adapter from 'enzyme-adapter-react-16';
enzyme.configure({ adapter: new Adapter() });
Run Code Online (Sandbox Code Playgroud)
我通过以下方式运行:
npm测试
我收到了错误:
酶内部错误:酶需要配置适配器,但没有找到.要配置适配器,您应该调用
Enzyme.configure({ > adapter: new Adapter() })
你知道什么可以解决这个问题吗?
几个月前我使用create-react-app启动了一个react项目,我很有兴趣将项目从Javascript迁移到Typescript.
我看到有一种方法可以使用标志创建使用typescript的react应用程序:
--scripts-version=react-scripts-ts
Run Code Online (Sandbox Code Playgroud)
但我没有找到任何解释如何将现有的JS项目迁移到TS.我需要它以递增方式完成,这样我就可以使用.js和.ts文件,这样我就可以随着时间的推移进行转换.有没有人有这种迁移的经验?为使这项工作,应该采取哪些必要步骤?
我尝试使用节点版本 12.1.0 创建 React 应用程序,但它警告我,我的最低节点版本应至少为 14.0。我曾经nvm将节点版本更改为 14.0 并创建了 React 应用程序。但是,我想在节点版本 12.1.0 上使用我的应用程序。所以我更改为节点版本 v12.1.0 但我得到:
“Module.createRequire 中的错误不是函数”错误。还有“错误中的错误:子编译失败:Module.createRequire 不是函数”
今天突然我开始在使用 Typescript 构建的项目中遇到构建错误。在数周内未更改的文件(或其引用的任何内容)中,我开始得到:
./path/to/my/file.ts
Line 0: Parsing error: Cannot read property 'name' of undefined
Run Code Online (Sandbox Code Playgroud)
这个错误首先出现在我们的 CI 上,可以通过在服务器上手动构建来复制,我终于可以在更新所有包后在我自己的计算机(运行完美)上重现。现在,即使我拉动项目的旧(构建)提交,我也无法构建它。我已经yarn.lock承诺使用我的 repo,但即使使用旧的package.json和yarn.lock(我删除node_modules并执行yarn),我也无法构建。
这个错误今天突然开始了。
可能是什么原因?
我的(可能相关的)版本:
yarn 1.22.4,
node v13.11.0,
typescript 3.7.5
react 16.12
react-scripts 3.4.0
macOS 10.15 Catalina
Run Code Online (Sandbox Code Playgroud) typescript reactjs react-scripts create-react-app react-typescript
我正在尝试使用create-react-app文档 ie 上给出的命令创建一个新项目,npx create-react-app my-app但它不包含public src和script.
我用create-react-app引导我的应用程序,当我运行我的应用程序时,它编译时发出警告,并在浏览器上引发错误。
编译时出错
./node_modules/rc-picker/node_modules/moment/src/lib/locale/locales.js
Module not found: Can't resolve './locale' in '/Users/macbook/Desktop/projects/pizza/Yummi-fend/node_modules/rc-picker/node_modules/moment/src/lib/locale'
Run Code Online (Sandbox Code Playgroud)
浏览器出错
Error: Cannot find module './locale'
? 2 stack frames were collapsed.
__webpack_require__
/Users/macbook/Desktop/projects/pizza/Yummi-fend/webpack/bootstrap:784
781 | };
782 |
783 | // Execute the module function
> 784 | modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
| ^ 785 |
786 | // Flag the module as loaded
787 | module.l = true;
View compiled
fn
/Users/macbook/Desktop/projects/pizza/Yummi-fend/webpack/bootstrap:150
147 | );
148 | hotCurrentParents = [];
149 | } …Run Code Online (Sandbox Code Playgroud) create-react-app ×10
reactjs ×10
enzyme ×2
javascript ×2
node.js ×2
npm ×2
react-redux ×2
typescript ×2
jestjs ×1