[英]ES6 style imports in Node.js REPL
來自Python背景並且是Node.js的新手,我發現使用Node.js REPL交互式嘗試代碼非常困難。 我遇到的一個關鍵問題是imports
:
ES6樣式導入不能在Node.js REPL上運行,我必須使用require
使用CommonJS樣式導入。 示例:我無法在Node提示符下編寫import rxjs
並且必須使用require('rxjs')
。 這使得將粘貼腳本復制到Node REPL中以便快速測試它們變得更加困難,我必須首先將所有ES6樣式的導入轉換為需要導入的,這種導入感覺違反直覺。
有沒有簡單的方法可以使用Node.js REPL中的ES6樣式導入?
喜歡:
$ node
> import'rxjs';
>從'rxjs / operator / map'導入{map};
我甚至嘗試過babel-node
,它似乎不支持模塊導入。
我擔心答案是否定的 ,或者至少還沒有 。 我們知道它將來會得到支持,但ES2015的import
和export
不會作為CommonJS require
和module.exports
的就地替換。 這只是因為它們的工作方式不同。 您可以在此Node.js博客文章和此SO問題中找到更多信息。 特別是,人們已經可以在標志--experimental-modules
(相關的2ality博客文章 )下運行和導入Node.js中的標准模塊。 但是,REPL仍然無法使用此功能。
你使用babel-node
(現在稱為babel-cli
)的想法並不是那么糟糕: babel
實現了一個可互操作的require
函數,它是一種可以檢索為這兩種類型系統設計的模塊的墊片。 不幸的是, 官方網站聲稱在REPL中缺少對此功能的支持:
ES6樣式的模塊加載可能無法按預期運行
由於技術限制,在babel節點REPL中不完全支持ES6樣式的模塊加載。
盡管如此,這個問題並不適用於生產代碼,而生產代碼無論如何都不應該依賴於REPL。 您可以考慮在包含babel-cli
項目中編寫腳本,並創建用於運行轉換版本的腳本,而不是使用REPL:
{
"name": "my-test-chamber",
"private": true,
"scripts": {
"build": "babel src/main.js -o lib/main.js",
"start": "npm run build && node lib/main.js"
},
"dev-dependencies": {
"babel-cli": "^6.0.0"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.