[英]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.