繁体   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