當前正在學習製作關於ES6的文檔,我發現nodejs和babel都是使用新的es6特性和語法的方法,但真正的區別是什麼?在nodejs和babel上使用es6的差異
1
A
回答
3
Babel是一個轉錄庫。它需要ES6/7/Next代碼並將其編譯爲以前的標準。它允許你使用ES6,一些ES7和插件,這些東西還沒有正式成爲語言的一部分。 Babel通常用於轉換ES6 +代碼,以便它可以在瀏覽器中運行,其中許多仍然廣泛使用的僅支持ES5。
節點是服務器端JavaScript運行時,雖然您可以使用節點來運行babel'd代碼(它只是javascript!),但您並不需要作爲節點自己理解ES6。
「我該用哪個?」的基本答案在瀏覽器中是Babel,服務器上是Node。
1
- 巴貝爾可以用來製造ES6代碼工作在不 支持ES6儘可能節點做瀏覽器,
- 不是每個項目支持最新版本的節點,巴貝爾可以編譯代碼,這樣它在較舊版本的節點
1
- 是的NodeJS一個JavaScript的運行環境,在Chrome的V8引擎構建的。它本質上理解現代JavaScript。
- babel是一個polyfill庫,允許較舊的瀏覽器(或甚至較舊版本的nodejs)通過將較新的語法「翻譯」爲其較早的等效語言來運行現代JavaScript語法(ES6)。
相關問題
- 1. Babel無法使用ES6/Parser.pp.raise
- 2. 和的NodeJS差異Expressjs
- 3. typescript + babel + es6
- 4. 在NodeJS中使用es6 Promise
- 5. NodeJS差異請求的差異響應
- 6. componentDidUpdate prevProps在使用es6和Babel時顯示新值
- 7. 使用WebStorm配置babel使用ES6和WebStorm Node.js項目
- 8. 帶ES6模塊的babel-jest
- 9. Nodejs中的時間差異?
- 10. 的Javascript ES6差()=>()和()=> {}
- 11. 如何讓Babel在使用Rollup Babel插件時忽略es6導入?
- 12. Babel + Webpack不會執行ES6
- 13. 無法在Babel中使用es6`file``的導出模塊
- 14. 如何配置Webpack和Babel以在一個項目中使用ES5和ES6
- 15. 用ES6(Babel)導出一個類
- 16. 使用webpack與babel和babel-preset-react和babel-preset-es2015
- 17. Babel和將Nodejs部署到Google App Engine
- 18. 我如何使用babel傳輸React JSX和ES6模塊並使用瀏覽器本機ES6
- 19. 使用Node + ES6 +未定義的類方法+ Babel
- 20. 如何編寫可以由NodeJS和Aurelia使用的ES6 class \ module
- 21. 應該使用ES6和ES7功能的Javascript庫需要babel-polyfill嗎?
- 22. 差異使用克ifstream的++和MSVC
- 23. 使用xargs和xargs時的差異-i
- 24. 如何導入`babel-polyfill`允許使用ES6功能?
- 25. 使用ES6/Babel語法對systemJS進行相對動態加載
- 26. 如何使用Webpack/Babel/UglifyJS混淆ES6類方法名稱
- 27. 「ReferenceError:require is not defined」,同時使用ES6/Babel創建React組件
- 28. 如何使用babel以編程方式將es6轉換爲es5?
- 29. Grunt,Babel爲Es6設置外部幫手
- 30. 摩卡ES6 Babel「TypeError:undefined不是函數」
你有沒有關於它的文檔(比較)?人們何時應該使用babel或節點? –
這裏沒有真正的比較。其中之一是運行時環境,另一個是圖書館。沒有人必須選擇 - 或者,他們都可以共同生活。當人們想用javascript構建應用程序時,人們使用節點。當他們(或他們的用戶)的javascript編譯器/環境不是最新的時候,人們使用babel。 – AVAVT