簡體   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