在本文中,我们将为您详细介绍用create-react-app开玩笑-意外的令牌错误的相关知识,此外,我们还会提供一些关于1.使用create-react-app创建react项目、Create-Re
在本文中,我们将为您详细介绍用create-react-app开玩笑-意外的令牌错误的相关知识,此外,我们还会提供一些关于1. 使用create-react-app创建react项目、Create-React-App构建-“未捕获的SyntaxError:意外令牌<”、JavaScript-create-react-app / react-native-elements错误、JSON.parse()意外的令牌错误的有用信息。
本文目录一览:- 用create-react-app开玩笑-意外的令牌错误
- 1. 使用create-react-app创建react项目
- Create-React-App构建-“未捕获的SyntaxError:意外令牌<”
- JavaScript-create-react-app / react-native-elements错误
- JSON.parse()意外的令牌错误
用create-react-app开玩笑-意外的令牌错误
我正在开发一个应用程序,该应用程序最近已从旧的Webpack构建转换为use create-react-app
。大部分过渡都进行得很顺利,但是我在先前的单元测试中遇到了一些主要问题。当我运行npmtest
带有标准package.json测试脚本的时"test": "react-scripts test--env=jsdom"
,它说我所有的快照测试都失败了。这很好并且可以预料,因为已经进行了很多更改,并且需要更新测试。
但是,当我刚运行jest
或时,我的jest --updateSnapshot
所有测试都立即失败,并显示SyntaxError:Unexpected token
错误,其中大多数与相关import
。这使我相信Jest没有使用Babel正确转换ES6语法。
以前,我们使用.babelrc文件进行以下设置:
{"presets": ["env", "react", "stage-0", "flow"],"plugins": ["transform-runtime", "add-module-exports", "transform-decorators-legacy"]}
但是由于Babel已包含在其中,因此create-react-app
我删除了此文件以及所有对Babel的引用。我的package.json也没有为Jest本身设置任何特殊的脚本。
我曾尝试重新添加一些以前使用过的Babel软件包,但是在进一步阅读之后,除非我退出,否则这些软件包似乎都无法正常工作create-react-app
,目前这不是一个选择。
是什么会导致npm test
运行正常但jest
失败的原因呢?
答案1
小编典典事实证明这是通天塔的问题。即使已create-react-app
预先配置,我们仍然必须添加自定义配置,因为我们的应用最初不是使用构建的cra
。我安装了一些新的dev依赖项:
"babel-cli": "^6.26.0","babel-jest": "^22.4.1","babel-preset-react-app": "^3.1.1",
并且还更新了.babelrc
:
{ "presets": ["babel-preset-react-app"]}
现在,这两个jest
和npm test
两个工作,因为他们应该。
1. 使用create-react-app创建react项目
create-react-app
全局安装create-react-app
npm install -g create-react-app
使用create-react-app创建一个项目
$ create-react-app your-app 注意命名方式
Creating a new React app in /dir/your-app.
Installing packages. This might take a couple of minutes. 安装过程较慢,
Installing react, react-dom, and react-scripts...
如果不想全局安装,可以直接使用npx
$ npx create-react-app your-app 也可以实现相同的效果
这需要等待一段时间,这个过程实际上会安装三个东西
- react: react的顶级库
- react-dom: 因为react有很多的运行环境,比如app端的react-native, 我们要在web上运行就使用react-dom
- react-scripts: 包含运行和打包react应用程序的所有脚本及配置
出现下面的界面,表示创建项目成功:
Success! Created your-app at /dir/your-app
Inside that directory, you can run several commands:
npm start
Starts the development server.
npm run build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm run eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!
We suggest that you begin by typing:
cd your-app
npm start
Happy hacking!
根据上面的提示,通过cd your-app
命令进入目录并运行npm start
即可运行项目。
生成项目的目录结构如下:
├── README.md 使用方法的文档
├── node_modules 所有的依赖安装的目录
├── package-lock.json 锁定安装时的包的版本号,保证团队的依赖能保证一致。
├── package.json
├── public 静态公共目录
└── src 开发用的源代码目录
代码的入口是项目目录下的index.js
Create-React-App构建-“未捕获的SyntaxError:意外令牌<”
我意识到这个问题已经被问过多次了,但对我来说却无济于事。
我正在尝试创建create-react-app
项目的静态版本,但出现以下错误:
Uncaught SyntaxError: Unexpected token < 1.ca81c833.chunk.js:1Uncaught SyntaxError: Unexpected token < main.7ced8661.chunk.js:1
由于这些文件已缩小,因此我不确定从哪里开始调试它们。
根据其他SO响应,这是我尝试过的一些事情:
//Original index.html file, which gets included in the built file:<script type="text/babel" src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js"></script>//package.json"babel-preset-es2015": "^6.24.1","babel-preset-react": "^6.24.1",//.babelrc file{ "presets": ["react", "es2015", "stage-1"]}
不知道这是否相关,但是我在我的Express服务器上有这个,我认为这是标准的:
if (process.env.NODE_ENV === "production") { app.use(express.static(''client/built'')); app.get("*", (req, res) => { res.sendFile(require(''path'') .resolve(__dirname, ''client'', ''build'', ''index.html'')); })}
假设这实际上是一个JSX问题,那么整个过程就很混乱-不create-react-app
应该自动处理JSX吗?
更新 :我刚刚发布了这个问题,但是已经有了相关的更新。通过运行pm2 servebuild
,我可以通过pm2为页面提供静态服务,因此我认为问题可能出在我的服务器配置上。
答案1
小编典典我最终在这里找到答案:https :
//github.com/facebook/create-react-
app/issues/1812
我从上方修剪了完整的解决方案,但我进行了更改:
app.use(express.static(''client/build''));app.get("*", (req, res) => { res.sendFile(require(''path'') .resolve(__dirname, ''client'', ''build'', ''index.html''));})
至:
const root = require(''path'').join(__dirname, ''client'', ''build'')app.use(express.static(root));app.get("*", (req, res) => { res.sendFile(''index.html'', { root });})
我对第一个程序段不起作用肯定感到有些奇怪。我认为这与我的React项目中的相对链接有关,因为index.html
尽管出现了错误,但确实将文件传递给了浏览器。也许一个完全静态的文件可以与第一个块一起使用,但是我想知道那是否正确。
JavaScript-create-react-app / react-native-elements错误
使用create-react-app启动了一个项目.已安装的react-native:“ ^ 0.57.8”,react-native-elements:“ ^ 0.19.1”和react-native-vector-icons:“ ^ 6.1.0”.为了能够在项目中的本机元素中使用组件.
当我运行npm start时,我得到下面粘贴的错误代码.我已经阅读了react-native-elements文档,但似乎找不到任何可以帮助我的东西
./node_modules/react-native-elements/src/avatar/Avatar.js
SyntaxError: D:\Location-Map\Neighborhood-Map-2-\location-
app\node_modules\react-native-elements\src\avatar\Avatar.js: Unexpected
token (92:8)
90 |
91 | return (
> 92 | <TouchableHighlight
| ^
93 | style={[
94 | styles.editButton,95 | editButtonSizeStyle,
我建议您将material-ui
作为React的组件库.
JSON.parse()意外的令牌错误
$scope.Feeds = JSON.parse('[{"id":"212216417436_10152811286407437","from":{ "category":"Movie","name":"The Lord of the Rings Trilogy","id":"212216417436"},"story":"The Lord of the Rings Trilogy shared The Hobbit\'s photo.","picture":"https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xaf1/v/t1.0-9/s130x130/1912397_736719376363670_7288336626443028501_n.jpg?oh=a7e83093f61fafa7909ff84263f989e4&oe=54B4481D&__gda__=1420472696_dbd6462629a00e218c849c5ed7b49c44","link":"https://www.facebook.com/TheHobbitMovie/photos/a.291674244201521.63650.160617097307237/736719376363670/?type=1","name":"Timeline Photos","caption":"\"I have the only right.\" \n\nWhat is your favorite Thorin quote from #TheHobbit?","properties":[ { "name":"By","text":"The Hobbit","href":"https://www.facebook.com/TheHobbitMovie?ref=stream"}],"icon":"https://fbstatic-a.akamaihd.net/rsrc.PHP/v2/yD/r/aS8ecmYRys0.gif","actions":[ { "name":"Comment","link":"https://www.facebook.com/212216417436/posts/10152811286407437"},{ "name":"Like","link":"https://www.facebook.com/212216417436/posts/10152811286407437"}],"privacy":{ "value":""},"type":"photo","status_type":"shared_story","object_id":"736719376363670","application":{ "name":"Photos","id":"2305272732"},"created_time":"2014-10-12T21:35:41+0000","updated_time":"2014-10-12T21:37:17+0000"},{ "id":"21785951839_10152794856921840","from":{ "category":"App page","name":"9GAG","id":"21785951839"},"message":"Must NOT let my girlfriend see this!\nhttp://9gag.tv/p/a9OrlY?ref=fbl9\n\nWatch more awesome videos on your phone:\nAndroid ► http://goo.gl/Rbi9FP\niPhone/iPad ► http://goo.gl/NFMm9p","picture":"https://fbexternal-a.akamaihd.net/safe_image.PHP?d=AQCee84KqIBIdnIX&w=158&h=158&url=http%3A%2F%2Fd1d4324mp0stc8.cloudfront.net%2Fmedia%2Fphoto%2FpPgXmO5QJ_600w_v1.jpg","link":"http://9gag.tv/p/a9OrlY?ref=fbl9","name":"This \"Marry Me\" Lip-Sync Proposal Is So Touching And Amazing | 9GAG.tv","caption":"9gag.tv","description":"This sets the bar pretty high!","link":"https://www.facebook.com/21785951839/posts/10152794856921840"},"link":"https://www.facebook.com/21785951839/posts/10152794856921840"}],"type":"link","created_time":"2014-10-12T21:15:00+0000","updated_time":"2014-10-12T21:15:46+0000","shares":{ "count":160}}]');
扩展的字符串对象:
{ "id":"212216417436_10152811286407437","from":{ "category":"Movie","id":"212216417436" },"properties":[ { "name":"By","href":"https://www.facebook.com/TheHobbitMovie?ref=stream" } ],"actions":[ { "name":"Comment","link":"https://www.facebook.com/212216417436/posts/10152811286407437" },{ "name":"Like","link":"https://www.facebook.com/212216417436/posts/10152811286407437" } ],"privacy":{ "value":"" },"application":{ "name":"Photos","id":"2305272732" },"updated_time":"2014-10-12T21:37:17+0000" },{ "id":"21785951839_10152794856921840","from":{ "category":"App page","id":"21785951839" },"link":"https://www.facebook.com/21785951839/posts/10152794856921840" },"link":"https://www.facebook.com/21785951839/posts/10152794856921840" } ],"shares":{ "count":160 } }
var jsonStr="your json string"; var json=JSON.stringify(jsonStr); json=JSON.parse(json)
今天的关于用create-react-app开玩笑-意外的令牌错误的分享已经结束,谢谢您的关注,如果想了解更多关于1. 使用create-react-app创建react项目、Create-React-App构建-“未捕获的SyntaxError:意外令牌<”、JavaScript-create-react-app / react-native-elements错误、JSON.parse()意外的令牌错误的相关知识,请在本站进行查询。
本文标签: