繁体   English   中英

使用create react app,并具有ES6依赖性

[英]Using create react app, and having ES6 dependencies

我写了一个使用ES6语法的npm包blokus

我使用create-react-app来启动一个项目web-blokus ,这取决于blokus

我可以在没有错误的情况下运行npm start ,并在我的浏览器中查看我的web-blokus应用程序,它具有使用blokus包的所有功能。

问题是我在运行npm build时遇到了UglifyJS错误。

static/js/main.8afd34e2.js from UglifyJs
SyntaxError: Name expected [./~/blokus/blokus/blokus.js:3,0]

似乎有一种已知的情况,UglifyJS不支持ES6依赖( 这里这里有一些相关的问题线程)。 但是我通读了这些主题以及其他一些主题,我对于计划更新的内容和人们正在做的工作方式感到非常困惑。

所以我想

1)确认如果你的应用程序有任何ES6依赖项, create-react-app将无法开箱即用(一旦你进入npm build

2)询问人们正在做什么来修复/绕过问题(我是否必须弹出,并为UglifyJS换掉一些东西?)

由于create-react-app和ES6现在如此受欢迎,我认为我要么误解了限制,要么讨论并知道处理这个限制的标准方法。

您不能将ES6代码与create-react-app或大多数构建系统一起使用。

由于现有工具,npm包不应该导致ES6代码,并且在较小程度上,不应该导致旧节点版本。

要设置包,假设ES6代码位于src目录中:

npm install --save-dev babel-core babel-cli babel-preset-latest

.babelrc

{
  "presets": ["latest"]
}

的package.json

  "main": "./lib",
  "scripts": {
    "build": "babel src --out-dir lib"
  }

然后在发布之前执行npm run build


创建一个带有'lib'的.gitignore,以及一个空的.npmignore。 .npmignore需要存在。

您可以在src目录(或lib,无关紧要)上运行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM