簡體   English   中英

在節點js中使用@ babel / register時,如何轉換單個節點程序包?

[英]How to transpile a single node package when using @babel/register in node js?

我正在為SSR運行節點服務器。 為了能夠導入我的(ES6 +)React組件,我require('@babel/register')在文件頂部添加require('@babel/register') ,但是,其中一些組件依賴於ES6中的node_modules包(OpenLayers),而並非t由Babel轉譯。

我嘗試添加{ ignore: [/node_modules\\/(?!ol)/] }但是隨后我開始在顯然與babel相關的其他地方出現錯誤:

TypeError: Cannot read property 'from' of undefined
at Converter.toBase64 (<MY_PROJECT>\node_modules\convert-source-map\index.js:61:28)
at Converter.toComment (<MY_PROJECT>\node_modules\convert-source-map\index.js:65:21)
...

編輯:另一個選擇是完全模擬該模塊,因為我真的不需要SSR領域的功能。

這是我不使用寄存器就進行處理的方法:

  1. 軟件包安裝(dev)

    npm安裝@ babel / core @ babel / node @ babel / preset-env --save-dev

  2. 在項目根目錄中創建.babelrc文件,並用以下命令填充它:

    {“預設”:[“ @ babel / preset-env”]}

  3. 然后在包json文件(腳本對象)中,可以添加以下內容:

    “ dev”:“ nodemon --exec babel-node ./bin/www”,

那是因為我使用nodemon軟件包,而我的主文件是www(expressjs生成器)。 您可以運行:

npm start dev

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM