此文章是翻译How to develop apps bootstrapped with Create React App 官方文档

系列文章

  1. 如何开发由Create-React-App 引导的应用
  2. 如何开发由Create-React-App 引导的应用(一)
  3. 如何开发由Create-React-App 引导的应用(二)
  4. 如何开发由Create-React-App 引导的应用(三)

Advanced Configuration

你可以通过在shell中设置环境变量或.env来调整各种开发和生产设置。

Variable Development Production Usage
BROWSER 默认情况下,Create React App 将打开默认系统浏览器,在Mac OS上支持Chrome。 指定浏览器来覆盖此行为,或将其设置为none以完全禁用它。
HOST 默认情况下,开发Web服务器绑定到localhost。 你可以使用此变量来指定不同的主机。
PORT 默认情况下,开发Web服务器将尝试在端口3000上侦听或提示你尝试下一个可用端口。 你可以使用此变量来指定不同的端口。
HTTPS 当设置为 true 时, Create React App 将以https 模式运行开发Web服务器。
PUBLIC_URL Create React App 假定你的应用程序托管在Web服务器的根目录或在package.jsonhomepage中指定的子路径。 通常,Create React App 忽略hostname。 你可以使用此变量强制将资源逐字引用到你提供的URL(包含hostname)。 当使用CDN托管你的应用程序时,这可能特别有用。
CI 当设置为true 时, Create React App 将警告视为构建中的失败。 它也使test runner 处于非观察者模式. 大多数CI 默认设置此标志。

Troubleshooting

npm start doesn't detect changes

npm start运行时保存文件,浏览器将刷新更新的代码。

如果没有发生这种情况,请尝试以下解决方法之一:

  • 如果你的项目在Dropbox文件夹中,请尝试将其移出。
  • 如果观察者看不到名为index.js的文件,并且你通过文件夹名称引用它,则需要重新启动观察者,这是Webpack错误导致的。
  • 一些像Vim和IntelliJ这样的编辑器有一个“安全写入”功能,目前会打断观察者。你需要禁用它。按照“使用支持安全写入的编辑器”中的说明进行操作。
  • 如果你的项目路径包含括号,请尝试将项目移动到没有它们的路径。这是由Webpack观察者错误引起的。
  • 在Linux和macOS上,你可能需要调整系统设置以允许更多观察者。
  • 如果项目在虚拟机中运行,如虚拟机(Virtual Vagrant),则在项目目录中创建一个.env文件,如果它不存在,并向其添加CHOKIDAR_USEPOLLING=true。这样可以确保下次运行npm start时,观察者会根据需要在VM中使用轮询模式。

如果这些解决方案没有帮助,请在此主题中留下评论。

npm test hangs on macOS Sierra

如果你运行npm test,并且控制台在打印react-scripts test --env=jsdom之后卡住,则可能是你的Watchman安装问题,如facebookincubator/create-react-app#713https://github.com/facebookincubator/create-react-app/issues/713中所述。

我们建议你先删除项目中的node_modules并运行npm install(或者yarn如果你使用的话)。 如果没有帮助,你可以尝试以下问题中提到的许多解决方法之一:

据悉,安装Watchman 4.7.0或更新版本可以解决此问题。 如果你使用Homebrew,则可以运行这些命令来更新它们:

watchman shutdown-server
brew update
brew reinstall watchman

你可以在Watchman文档页面上找到其他安装方法

如果仍然没有帮助,请尝试运行launchctl unload -F ~/Library/LaunchAgents/com.github.facebook.watchman.plist

还有报告说,卸载Watchman可以解决问题。 所以如果没有其他帮助,请从系统中删除它,然后重试。

npm run build silently fails

据报道,在没有swap space的机器上,npm run build 可能会失败,这在云环境中很常见。 如果症状匹配,请考虑为构建的机器添加一些swap space,或在本地构建项目。

npm run build fails on Heroku

这可能是文件名大小写敏感的问题。 请参阅本节

Someting Missing?

如果你在这个页面上有更多的"How To" 的想法,请让我们知道贡献一些!

如何开发由Create-React-App 引导的应用(四)的更多相关文章

  1. 如何扩展 Create React App 的 Webpack 配置

    如何扩展 Create React App 的 Webpack 配置  原文地址https://zhaozhiming.github.io/blog/2018/01/08/create-react-a ...

  2. 深入 Create React App 核心概念

    本文差点难产而死.因为总结的过程中,多次怀疑本文是对官方文档的直接翻译和简单诺列:同时官方文档很全面,全范围的介绍无疑加深了写作的心智负担.但在最终的梳理中,发现走出了一条与众不同的路,于是坚持分享出 ...

  3. 在 .NET Core 5 中集成 Create React app

    翻译自 Camilo Reyes 2021年2月22日的文章 <Integrate Create React app with .NET Core 5> [1] Camilo Reyes ...

  4. tap news:week5 0.0 create react app

    参考https://blog.csdn.net/qtfying/article/details/78665664 先创建文件夹 安装create react app 这个脚手架(facebook官方提 ...

  5. 使用create react app教程

    This project was bootstrapped with Create React App. Below you will find some information on how to ...

  6. Create React App

    Facebook开源了React前端框架(MIT Licence),也同时提供了React脚手架 - create-react-app. create-react-app遵循约定优于配置(Coc)的原 ...

  7. Create React App 安装less 报错

    执行npm run eject 暴露模块 安装 npm i  less less-loader -D 1.打开 react app 的 webpack.config.js const sassRege ...

  8. [React] Use the Fragment Short Syntax in Create React App 2.0

    create-react-app version 2.0 added a lot of new features. One of the new features is upgrading to Ba ...

  9. [React] {svg, css module, sass} support in Create React App 2.0

    create-react-app version 2.0 added a lot of new features. One of the new features is added the svgr  ...

  10. create react app遇到的问题

    我现在想的是吧 static 资源和动态 api 来分开处理, static 资源开启 nginx 服务器,api 请求由 express 完成, 现在的问题是开发的时候 proxy 设定将所有的请求 ...

随机推荐

  1. HTML学习 框架

    iframe 在原来的页面嵌入其他页面 <iframe src="其他页面地址" width="宽" height="高" frame ...

  2. Jenkins 学习笔记(二):很简单的发布一次

    发布思路:从 github 拉取一些文件,然后推送到 Target server 的某个目录. 准备 1. Jenkins 需要安装的插件:『 Publish over SSH 』 2. 全局配置:系 ...

  3. Python 实现网页截屏、查库、发邮件

    本文介绍了使用 Python(2.7版本)实现网页截屏.查库.发邮件的 demo.用到了 selenium.phantomjs.mailer.jinja2.mysqldb 还有 image,都是比较典 ...

  4. jQuery 属性操作方法(五)

    方法 描述 addClass() 向匹配的元素添加指定的类名. attr() 设置或返回匹配元素的属性和值. hasClass() 检查匹配的元素是否拥有指定的类. html() 设置或返回匹配的元素 ...

  5. Python入门-数据类型

    一.变量 1)变量定义 name = 100(name是变量名 = 号是赋值号100是变量的值) 2)变量赋值 直接赋值 a=1 链式赋值  a=b=c=1 序列解包赋值  a,b,c = 1,2,3 ...

  6. ES6 Generators基本概念

    ES6 Generators系列: ES6 Generators基本概念 深入研究ES6 Generators ES6 Generators的异步应用 ES6 Generators并发 在JavaSc ...

  7. js获取指定时间的前几秒

    最近项目上有一个需求是:根据一张图片的拍摄时间获取到这个时间前二后三的一个五秒钟的视频信息,通过查找相关资料写了一个方法拿来记录分享一下. //指定时间减2秒function reduceTwoS(d ...

  8. 【转载】LINUX上MYSQL优化三板斧

    现在MySQL运行的大部分环境都是在Linux上的,如何在Linux操作系统上根据MySQL进行优化,我们这里给出一些通用简单的策略.这些方法都有助于改进MySQL的性能. 闲话少说,进入正题. 一. ...

  9. CentOS7配置静态IP

    确保是在root用户下进行操作,首先进入network-scripts目录 cd /etc/sysconfig/network-scripts/ 通过ls列出该目录下的所有文件,其中"ifc ...

  10. MYSQL:插入记录检查记录是否存在,存在则更新,不存在测插入记录SQL

    我们在开发数据库相关的逻辑过程中, 经常检查表中是否已经存在这样的一条记录, 如果存在则更新或者不做操作, 如果没有存在记录,则需要插入一条新的记录. 这样的逻辑固然可以通过两条sql语句完成. SE ...